Cloud services for mobile developers: Google vs. Amazon vs. Azure vs. Parse
Cloud-based back ends for mobile applications combine key services with varying degrees of complexityFollow @peterwayner
The documentation comes with a warning that is meant to scare off the casual coders: "Prospective Search is an experimental, innovative, and rapidly changing new feature for Google App Engine. Unfortunately, being on the bleeding edge means that we may make backward-incompatible changes to Prospective Search. We will inform the community when this feature is no longer experimental."
What does this mean? App Engine itself is still listed as a "preview" in some screens. Will things really change? No doubt Google will do its best to make sure the platform remains as stable as possible, but some elements of the cloud are clearly a work in progress.
Using any of the additional Mobile Backend features is a good lesson in why Java development remains an expensive process privy to only those with plenty of time and money. The tools are complex, and the code is long and elaborate. The code for deleting a blob from Google Cloud Storage, for instance, includes a loop that will try deleting five times in case the API is overwhelmed or unavailable. It's laden with blocks to handle many types of exceptions. The richness will be useful for larger teams building reliable software with high availability, but it's not a simple process.
Of course you don't need to dig this deeply to enjoy the riches. There are dozens of APIs -- Maps, Calendar, Contacts, Drive, Hangouts, and so on -- and most of them have some real value for the mobile world. All of these different elements should be considered part of the mobile offerings even if they're not in the official list of so-called mobile services.
AWS Mobile Developer Center
While the other clouds have specific products aimed at mobile developers, Amazon's Mobile Developer Center is little more than a pointer to regular services for any machine on the Internet. There are dozens of APIs for Amazon Web Services; a few of them are also ideal for mobile devices.
Amazon lists its federated log-in system, databases, and push notifications as the services for mobile apps, but I think it's selling itself short. Amazon Web Services has a number of different databases that aren't even listed here, and some, like SimpleDB, are good matches for the kind of lightweight apps that often live in the mobile space. If you're a fan of Postgres, Amazon is now offering that in the cloud too. I'm not sure mobile users on the go have the patience to wait for Amazon's Glacier, a supercheap storage service that measures its service guarantees in hours, but maybe some users would want it. My suggestion is to skim the Mobile Developer Center and look at the entire list of Web services.
The Mobile Developer Center does highlight several ways to enhance the services for mobile apps. Amazon's Geo library adds location-based queries to its NoSQL database service, DynamoDB. This saves you the trouble of hacking up the different schemes for testing proximity to latitude and longitude pairs, which can be a bit of a pain.
The docs also show how the simple notification service can be used for sending push notifications to smartphones. Amazon's Simple Notification Service is a wrapper around Google Cloud Messaging, Apple's Push Notification Services, or Amazon's own Device Messaging. You write to one place, and the text goes out to all subscribers, be they iPhones, Android phones, or Kindle Fires. It's one way for Amazon to promote its devices by supplying the glue code.
High scores for a SimpleDB-backed game app running on the Android simulator.
It's worth noting there are quite a few options in the messaging stack, including the ability to deliver notifications to Web servers and email accounts. You can even format a message in JSON and send it to an email account. Oddly enough, if you confirm your email subscription delivered in JSON, the response will be in XML, but I'm sure there's a way to sort that out.
It's almost impossible to cover all of Amazon's offerings here. While some are geared more toward servers, most have some application to the mobile world because the mobile world is filled with Unix boxes that fit in our pockets masquerading as phones.