Mobile application developers have plenty of things to worry about. As mobile devices become more powerful, end users expect more out of their devices. For every PC/Mac application they expect an equivalent mobile app (and it better look good). Mobile applications have evolved from simple games (remember Snake?) and utility apps (everything from a handy flash light, to a calculator, an alarm etc etc) to full fledged applications that do everything from helping you manage your money, taking and editing photographs, video chatting, browsing the internet, recommending music, keeping you healthy and helping you find a date. As the gap between PC and mobile devices decreases, mobile app developers now face unique challenges at every stage of development. They have to worry about different platforms, between native and web, different screen sizes, different frameworks, complex backend processing, backend algorithms etc etc.
The complexity of developing mobile apps is compounded by the difficulty of back-end processing. Mobile backend services (Baas) help relieve the some of the responsibilities from app developers. This area is now the new venue for the eco system wars, with both established companies and several startups competing for developer attention. Some popular BaaS solutions include:
The complexity of developing mobile apps is compounded by the difficulty of back-end processing. Mobile backend services (Baas) help relieve the some of the responsibilities from app developers. This area is now the new venue for the eco system wars, with both established companies and several startups competing for developer attention. Some popular BaaS solutions include:
What does a BaaS include?
- Data : Store app data on the cloud
- Push Notifications: Send notifications to a user's phone
- Social Media Integration : Login through Facebook, Twitter, Live
- Custom Code Deployment : A very important feature. Deploy your own custom logic to the cloud
- Hosting : Most mobile apps need a landing website.
- Third Party Data Integration : Again, a very critical feature.
Surprisingly, Microsoft and Google are relatively new players, and with Facebook's acquisition of Parse things are getting heated up. Kinvey, StackMob and Parse appear to the most mature providers with most number of features provided. I will update this post soon, with my personal experience using Parse and Azure.
How to pick the right Backend?
- Flexibility: If you're main criteria is flexibility (you have a large team of developers for example) then its best to go for Windows Azure or the Google App engine (GAE). They put a lot of emphasis on custom code. With Azure and GAE, you setup code that runs on every requests and can fire off additional requests, read more data, send push notifications and control the request as a whole. They offer the capability of running your own backend on a cloud instance (at a price). Hence larger higher-end enterprise customers will pay more for additional flexibility/protection.
- Ease of Use: If you're short of time, money and other resources, Parse or Kinvey is the way to go. They have a mature API and offer a lot of off-the-shelf features that can get you started in no time. Both of them now provide the ability to run custom code, but you will not have access to the raw instance like Azure or GAE.