How to create a full-featured Android app for a website? - android

This is my website: http://www.stustu.co.uk..
I want to create an app that can pull down the listings from this website and display the entries in the form I want; enable users to manage their online accounts conveniently within the app; post new entries. Basically, a similar app to Amazon and eBay.
But I've no clue about how to query the information from the website in the app...
The website itself is WordPress based (quite simple, therefore), and my initial thought was to find some API from WordPress. I did find the official WordPress app, which comes with the source code, but it helps little as its code mainly deals with blogging.
So here's my question:
What are the normal ways a web developer would use on the server side to achieve my aim?
Is that achievable for WordPress?
If not, are there workarounds?
I'm a new self-taught developer, sorry that the question is a bit broad.

The most common approach when you're trying to communicate between an app and a website is to use a web service. Popular architectures include using REST or SOAP to communicate with your server.
This video will teach you how to use REST interface properly on your Android application, while in this link you will find that using SOAP has its disadvantages over REST especially on Android(or mobile in general).
I personally recommend using REST APIs with responses in JSON format for your web service. Twitter did the right thing with their own rest api, and you can structure yours similarly.
Other links you will be finding useful as you develop your application:
google-gson
jackson JSON
http://blogs.developerforce.com/developer-relations/2011/02/rest-api-android-awesome.html
Sorry about not answering your question about Wordpress, as I never had the opportunity to use it. For my apology, have this potato.

How much experience do you have with android? If you have none you should go find the getting started tutorials on the developer site and complete a few of them to familiarize your self with the structure of an android application before you attempt something like this.
The next thing to consider is: does your site look and act nicely on mobile? If so do you want your application to simply be a dedicated browser that pulls up your site? Or do you want to create the entire application natively? In the latter case you'll have to build (or find) some sort of APIs that allow you to tie in to the functionality of your site from within the java in the application.
My experience is mostly on Android so I cannot suggest any strategies or examples for how you'd go about setting up your APIs. But I do know if you attempt to build something that sophisticated natively on android with little experience you'll likely get frustrated early.

Related

How can i build native android apps from any website (Not Website convert into apps)

Suppose , i have a website and its running well . Now i want to make an android apps using website information or My apps will contain all the information of that website already contain or how can i connect an android apps with any website.
Some solution :
1. convert website into android apps (i don't need this).
2. JSON API (i think this is best option for me ).
May be there has so many option but this time i can't remember. option is best for me if it is possible . but i don't how to create a JSON API from website .
but i don't know how to do it. please let me know share something for better understand.
or if has any other better solution for this problem please let me know .
You could create a web app, using android native web view or some technologies like ionic, etc..., or create a comprehensive API endpoint in your backend/website and start build an android app from scratch.
creating a web app is a simpler approach but has so many shortcomings in design, functioning and flexibility aspect, so if you want a competitive app with a fine extendibility feature the best option is native android development. but it could be more costly as it needs both backend and android development.
If your website is already implemented and running, you can just create an Application using a https://developer.android.com/reference/android/webkit/WebView. Basically, this is an injected Browser, allowing the user to access your Website without actually open chrome/firefox etc. on the smartphone.
To improve the usability, the layout of your website should be able to dynamically resize the content.
If you wish to actually implement an application (Activities/Fragmets...) you need to connect to your backend server the same way your website is retrieving the information.

Android To Web Database Connection

Can someone give me a broad overview of what pieces would have to be in place to implement a user-content-driven Android app with a web-based database? Or, link me to some helpful relevant articles on web and app architecture to study?
Further, if II already have a website where people can add content and others can vote on it, and I want to have the same capabilities available via an app, utilizing the same central database, how would I proceed?
I'm guessing I could provide remote authentication into the site via the Android app, and then enable the user's content submissions and votes to sync with the database (and website), but how is that handshake process done? And what elements of the site have to be exposed for the app to "connect to"?
Where are lines drawn between a website just being presented inside an Android web view and being made mobile friendly, versus a stand-alone app having the web/database functionality?
I know if I already have a mobile-friendly website, it might seem logical to simply direct people to the mobile site, but obviously a lot of people use apps and there are some benefits over mobile web.
Sorry for such a general question, but I can't seem to find any good examples of people doing this to learn from, even though I imagine it must be very common.
Thanks!
The best practice is to build REST API on server side to manage content from database, and just hook to it with mobile apps. There is a lot of different libraries to do that on both Android/iOS
create your rest api and make it return json.
i think that the better way is to use okhttp http://square.github.io/okhttp/
for http connection,
retrofit and gson http://square.github.io/retrofit/
for parsing json results;

Android app fetching Joomla website with DB

My client has Joomla website with plugins (Mosets tree and JSE events) that basically lists business an events. He wants an android app developed to fetch these info. Immidiately what came to mind, is I create php scripts that query the Database and I call those scripts from my app. In my app, I display the information collected.
Another idea that occurred to me, is to enable RSS feed and then I read this RSS feed.
Is my approach above the right approach? Is there a different way or standard way when developing apps that fetch information from the Joomla website backend?
Please note the website is already mobile friendly but the requirement is to create an app for part of the website. Any pointers are helpful
Building one or more PHP scripts that query the db and returns the data is definitely the faster and simpler solution.
If you want to build a more robust / compatible solution, you may extend your set of PHP scripts into a full blown REST API application. In that case take a look frameworks like SLIM or SILEX which are very good at this.
There are more complete and elegant solutions but they are probably overkill for your needs.
Edit: why query directly the database
In theory, it seems to be better to NOT access directly the database, and interact with the Mosets Tree component instead; because in that way you will not have to duplicate any logic.
But in my experience, with a very few exceptions, Joomla components are coded so that it's very hard to interact with them programmatically.
I answered a similar question regarding Joomla RESTful APIs here:
REST API for Joomla 3.0
Basically, I ended up developing a solution which meshes the Slim PHP micro-framework with the Joomla Framework / CMS (requires Joomla 3.4.3+).
Why?
Well, the main reason is that while using the Slim framework would be OK as a one-off solution, I realized that one would still need to develop all the accompanying ACL and access security, not to mention the actual CMS that might store and manage all the important data in the first place.
Basically, I did the work so you don't have to. Yes, it's a commercial component (must pay to download) but I think it's WELL worth it for what you end up getting out of it.
It's brand new, so the service routes in the cAPI ("Constant API") Core package are still limited, but those are being built-out over time (all included in the core package of course). The component/plugin/library package is architected to allow for easy integration of add-on plugins which will introduce new service routes to add functionality like RESTful JSON APIs for MySQL, MSSQL, MongoDB, LDAP, etc. I already use an alpha version of the LDAP add-on in a an enterprise environment, so I expect that to be available for purchase/download soon.
The point of all this is that you can use an existing Joomla site to drive mobile apps (with some development for Mosets), while taking advantage of built-in user management and ACL, along with token auth (via cAPI).
Let me know if you have any questions.

How should I design the backend for my twitter app on android? - Could use some info

Some may feel that this is a general question, but I don't believe that. I believe that this is a very important aspect of development and I am trying to learn from others.
Let's say I am making a clone of the twitter app.
Now, the front end is very do-able through traditional android code, however I don't know how to design the backend of the app.
I could use a database - but that seems better suited for older more traditional in house software applications.
I read a little about google app Engine, but I am not sure if that is a solution that should really be used for something like this. Realistically I do not know what options I have and I could use some direction for my research - because I don't want to make a mistake in my architecture only to have to go back and redesign the backend.
I would like to know what types of things I should be researching so that I can evaluate my options appropriately.
Thanks
In this case, you are looking at accessing the Twitter APIs to meet your functionality. You should look at an approach like the following:
Do you want to clone the Twitter App as is ? or certain functionality of it ? Identify that stuff.
Research the Twitter API in detail. For all your Twitter app needs, the requirement could be met directly by your API. Any local functionality for composing, replying, offline, etc can be met by your Android client itself and you do not necessarily need any backend functionality.
If you are looking at providing more value added services (some examples are below) :
Analyze the Tweets to provide enhanced information
Combine Twitter Data with information from other data sources
Provide metrics for all users of your Twitter App
Set User Preferences such that you can sync these preferences to multiple devices if the user logs in from anywhere
In such scenarios, doing work on the Server side will make things easier. Google App Engine is a great backend with which you can achieve a lot of the above functionality. It provides you a PaaS where you can use various services (datastore, networking, email) to boost your productivity, along with choices of languages (Java, Python, PHP and Go).

Using content management system with iOS or Android

I want to develop a application where part of the data is dynamic like picture , show timing etc.Their are many content management system that use HTML5 and CSS but i want to also use the native iOS or Android Ui like the UISplitView for iPad.How is this possible ? whats the best way to manage and use dynamic data ?
I have been digging into this very exact answer. The best answer I can come up with is called parse.com. Which may not be 100% of what you are looking for. However. What it does is serve as a central database that talks to multiple platforms(windows 8, iOS, Android) and offers up an api for use with every platform with lots of documentation to make programming super easy. http://deployd.com/ also This site is something Ill be looking into which uses a simplified node.js desktop for programming easy objective based functions with a database. Definitely am still looking. Either way the bast thing is to call your view...bring in a few objects...and have these databases feed your objects to specifically answer your question.
As a developer Im used to Joomla and magento. These arent necessarily ios friendly. Anyway, best of luck.
I'd suggest taking a look at Cloud CMS (http://www.cloudcms.com).
Cloud CMS is a cloud content management system that is built around JSON schema. Unlike traditional web content systems, Cloud CMS works with JSON and binary files (either through MongoDB GridFS or Amazon S3). It provides full-text search, structured query and an entire suite of enterprise features for things like workflow, analytics, users and groups and more.
From an iOS or Android viewpoint, you really only need to interact with the REST API. You can do that directly or use one of the client libraries.
Disclaimer: I'm one of the founders of the company. Would love to find out what you think and learn what we can do to improve things. We're having a great time reinventing CMS for mobile.

Categories

Resources