I'm designing a service that will comprise a cloud-based database (with a UI for us to manage the data), and then a mobile app for end-users that displays the data to people who want it (primarily read-only). The end-users will be anonymous.
The cloud database / app server needs to provide:
A solid, scalable, cloud-based database
A nice easy API, REST, and ideally an Android SDK
A UI on the web to manage data (including creating forms across tables)
Sensible pricing, but not free
My options include Google App Engine, Microsoft Azure, hosted Couchdb, Salesforce's forthcoming database.com, and Amazon SimpleDB. But my third requirement, web-based forms for internal data management, are proving the biggest hurdle.
Database.com (or more specifically the force.com product) make it VERY easy to create online forms to run reports, and add and edit data. But Salesforce are a pain in the backside to deal with, and the database.com pricing looks expensive.
People are suggesting I code up a UI myself for the data editing & management, and yes I could, but it's a lot of work (especially as I don't know Azure, Python etc), and I'd much rather put that effort into the app, which is what my customers will use. I'm new to Android this year, so have my hands full learning the one platform.
One option is for me to use force.com to manage the data, but then replicate it somewhere else, where the API calls come in, best of both worlds perhaps.
Which option suits my needs best? I'm sure I'm far from alone in looking for a nice back-end service to sit behind mobile apps.
Well.
I cannot tell you what is the best for your needs, however, i do know that Restlet (http://www.restlet.org/) has both a GAE and Android SDK, perhaps this could be interesting?
In my experience this works pretty smooth.
Django is worth a look for App Engine - it comes with built in admin console support, which makes it easy to modify your datastore interactively. Check out django-nonrel if you're interested.
If you go the Amazon SimpleDB route you'll also need a server to sign the requests.
There is no secure way to embed your Amazon access credentials into an application, so you'll need a web/application server as a 'middle man'.
In fact, I think you'll have this issue with most of the cloud based databases.
SQL Azure has this that might help with your third requirement: http://blogs.msdn.com/b/sqlazure/archive/2010/08/25/10054230.aspx
Thought I'm not sure if it is out of CTP yet.
You mentioned "web-based forms for internal data management, are proving the biggest hurdle" caught my attention, I think you should take a look at online database builders like Ragic.