Assuming that we want to develop a simple app – e.g. the Shopping list app example that triggered my previous post – and make it available for multiple platforms (Android, iOS, and also Web to cover other devices including Windows and macOS), how do we develop the backend services nowadays? (As P2P-Web is just a dream, and cloud is all we have?)
One idea is to develop the backend ourselves, and expose it using a REST API. Fairly easy to do with ASP .NET WebAPI and Visual Studio. Even on a Mac. Then host it either on our server or in the cloud.
Yet, better choices must exist – easier to implement and skip both the development complexity and the deployment hustle – ain’t it? Indeed, there are a few good choices out there:
Studying them a bit, I think that personally I would go with Google Firebase if I needed to make a selection today, although it includes fewer cloud products overall. Because of these small reasons:
- Microsoft Azure offers a database for free too, but as I understand this is only for a year, and maybe my app won’t be successful and I would forgot about the subscription and therefore free for life is better. Besides that it offers good features, including data syncing and working offline (with Cosmos DB).
- AWS does have a Free tier that includes a NoSQL database (DynamoDB) but it seems their pricing system is more complicated in case we’d eventually need to scale up or use other products; moreover, syncing between client app instances and the cloud, change notifications, and working offline don’t seem to be core concerns in their SDKs (although the number of supported platforms is the highest at Amazon.)
But it’s highly possible that I missed something! I admit, I didn’t have much time to do the hypothetical analysis and offers change so often in this cloudy world (today’s picture is highly different than that of two years ago when I last checked.)
Maybe you can help with further suggestions if you have experience with some of these tools: what would you choose, and why?