Client Server approach for Android application - android

I currently have a working implementation using GAE and servlets to communicate with my android application. The app will create json objects and send/receive them using the httpclient. I then was looking at the 2.4 beta plugin for using C2DM and noticed that they use GWT along with a RequestFactory for communication. I was wondering if this approach is worth the time switching? Is it easy to setup and configure? Seems like this would be a nice approach if i want to say develop a mobile site along with the app?

If you use C2DM you will need your users to use a google account. I personally don't feel 100% confortable with that.
The best thing about C2DM is that you avoid polling your GAE server. If you have an already working solution, why would you change it?

I would recommend android - appengine combination. However if you want your app to be on non google-play device, you need to think around C2DM/LVL or google wallet API(a mandatory on google play). RequestFactory is great but it is tightly coupled, imho. I would recommend Rest which is platform agnostic, very loosely coupled, thus support GWT, android, iOS, BlackBerry, WebOS, desktop ...

Related

Architecture for cross platform messaging app

i am looking to build a mobile messaging app firstly in android and then ios later, and am struggling with the backend architecture and need some advice on what would be best in my circumstance. Basically i am used to just developing apps through a basic web server and using mysql with php, but now i think and want to create something that not only is very reliable and fast but is also scalable and can be used by both the android and ios platforms.
I am thinking about developing it on google cloud platform using either their google app engine or google compute engine depending on what other architectures i use. Also i was going to use google cloud messaging as my main way of handling the messages, however i am now not sure of that as it is only supported by apps that run on android and not ios, also i have heard it can be unreliable in some messages getting lost.
My main problem is that i have heard so many things about different architectures like ejabberd, xmpp, socket i.o and databases like redis that all work well with messaging apps, however i am not sure which to go that will work well together.
Sorry if this seems a bit of a confused situation, but i dont want to start developing something that i am later going to have to change. Thanks for the help
Announced last week: Engage your users across Android, iOS and Chrome via Google Cloud Messaging 3.0:
https://developers.google.com/cloud-messaging/
https://www.youtube.com/watch?v=gJatfdattno
You are asking about many different things.
Storage: can be a mysql database or something like mongo db
Transport protocol: XMPP is a chat protocol with many chat features included but it is not supported in browsers. WebSocket is more low level and more general but works inside the browser
webserver software: you basically need access to the database and be able to transmit XMPP or WebSocket. I'd recommend node.js for this. PHP is more for web pages

Building mobile app derivative of Rails web app

How does one approach building the mobile app version of one's Rails app, with little to no mobile development experience? iOS, Android, one or the other, or both.
First, you might want to create (private) APIs for services your web app provides. The de facto standard for Android apps is REST-like endpoints that accept/return JSON. You can use whatever Ruby REST framework works best. Then you need to consider how you would authenticate Android apps, if needed. Do you use the same authentication database? Can you allow anonymous access, what parts of the app do you expose, etc.
Finally, you need to build the frontend. A few options here:
learn Android
hire someone to do it
use a framework that lets you develop using Web(-like) technologies: Thitanium, Rhodes, etc. The upside is that you get to use what you know and might also get an iOS app for free.
The downside is that you can never get the native performance, and look-and-feel might not be completely Android-like (never used Rhodes, so maybe it does this well enough, but still)
Consider using http://www.rhomobile.com/.

Is it possible to use GWT and App Engine together with and android app for commercial use?

I tried to give the main idea in the title as good as i could. I am a good programmer in Java and i studied the android sdk. I posted my question here because i believe you can guide me.
Two companies need to send text messages(not sms) in the same android app. The number of users of this app is not known but it could be 500 to 200k. Can Gwt and app engine help me to make it possible. To make it clear i didn't studied these services, but i know if i use them it will have no cost.
The other solution is to make my own server and a web app with another language.
Your answers will save me time.
Thanks in advance.
GWT and App Engine are front end and backend platforms which can be used to build use cases which fit a different need.
App Engine provides a PAAS stack with limitations of hardened sandbox, GWT takes the pain out of Javascript programming but restricts the customization.
If you are using http to communicate with servers then GAE should do the job

The simplest way to use C2DM?

It has been a couple of weeks and I am having so much trouble making C2DM work. I've read a million guides and watched video tutorials but have had no luck. I just need a way to communicate with my server and my phone in the simplest way. Any help?
If you're still interested in trying C2DM, try installing the Google Plugin for Eclipse and use it to generate the Android / App Engine sample project. It should be able to generate a skeleton project that is able to communicate between AppEngine and a basic Android application. You could verify that the sample works and use it as a basis to debug your custom application.
There was also a related AppEngine + Android session at Google I/O this year.
The easiest way to get push into your app is to use a third party push provider like Urban Airship or Xtify. Instead of writing the code to interface with google directly you integrate the third party SDK into your app and they handle the messy stuff.
Additionally, you don't have to worry about scaling if your app gets (or already is) big. And going cross-platform (iOS, Blackberry) is that much easier.

How should I approach making server-side software for an Android application?

In the past I have used Python for backend stuff along with Django for frontend stuff, but I don't know how well those two work with Android.
Can anyone recommend a good way to go about making server-side software that works well with Android?
Please take into account that I also want a web application as a frontend, so the backend should work with both the web app and the Android app.
Thanks for the help!
You might start by developing an HTTP API using Django, tornado, cherrypy, or any other web framework. This API may then be used by both your web frontend and your Android application.
In general, separating out the API from the application serves to clean up the code and make future changes easier. In this case, it also makes it easy for you to have multiple frontends without having to replicate the backend functionality.
If it's possible to create a web application version of your project, consider that it may be easiest just to create a version of that application which is formatted for the android screen, and allow Android users to use the same web application with appropriate styling.

Categories

Resources