The term backend as a service or BaaS is currently mentioned a lot among mobile application developers.
Multiple storage options exists for HTML5 applications, like the local storage or filesystem. But these will only allow application to store data locally, on the mobile device.
If your mobile app has to store data outside the device, in order to sync across different platforms for example, application creators have to make a decision on how this will be achieved.
One option is to build a simple backend service which could handle requests from mobile application running on multiple mobile clients and provide data storage functionality.
This usually sounds easier then it is to implement, because while building such backend service you have to take many factors into account. Authorisation and authentication, performance and operations support among many others.
Another option is to look into multiple and already built backend services. These are available in the cloud (and most likely are exposing REST APIs). Number of such options is increasing these days. Some of cloud BaaS services provide very good pricing models and even not asking you to start paying until mobile application reaches certain number of API requests per month.
In this post I want to briefly take a look at what cloud based BaaS solutions are currently available for HTML5 application developers. I have summarised some points about these services, and we are preparing few more detailed tutorials.
Parse is one of the most popular cloud backend service solutions among app devs. Parse provides Core functionality for storing data in the cloud, Push notifications and Parse Analytics. And this company was recently acquired by Facebook. It has introduced social login management since.
Usergrid is the most popular open source mobile BaaS out there. With many community contributed SDK’s for popular programming languages, it is easy to integrate to mobile projects.
Usergrid provides user management, in built OAuth, data collection storage, binary file storage, geo location search and some other services.
One thing which is different with Usegrid – you have to install and run it on your own infrastructure.
The positive side of this – you get full control of open source software running in your environment. Negative side – you still have to maintain and monitor Usergrid application which can become time consuming if your user base grows.
Using Firabase is quick and painless. The main focus of this product creators is to provide near real time synch options between mobile applications who run on different platforms or different mobile operating systems.
The concept of not only storing mobile data but synching it instantly is very interesting and promising for real time mobile applications. We are preparing short tutorial for HtmlCenter readers about implementing Firebase in mobile projects.
Kinvey is more enterprise mobile applications oriented service. It can provide you scheduled business logic, backend scripts and also deliver mobile push notifications to Apple and Google services.
Up to 100 application users and 5 million pus notifications are free of charge if you want to try Kinvey service. However after you hit 100 users it becomes quite expensive to run, unless you are developing enterprise applications and do not care about the pricing to much.
Recently I was involved in the project with one of German technology companies and had a chance to try Apiomat BaaS for their mobile apps. We can call it European mobile BaaS service as Apiomat is a company from Germany. They are using MongoDB as database layer and have built multiple services on top.
Apiomat provides somewhat overloaded and complex UI after you register and first time login.
But all the required functionality is there – push notifications, custom data collection support, integration with Google analytics etc. They provide modules for integrating to online payment systems as well.
Overall, from 3rd party module integration perspective Apiomat provides most custom options compared to other BaaS in this list.
They also support different environments, live, staging and dev. If you are not fussy about UI being complex and have some time to spend while understanding complex to navigate documentation you can give this service a try. They have free tier for up to ~1500 active users.
Much better then Kinvey for example.
App42 cloud mobile BaaS is used by many mobile game developers.
In addition to usual cloud backend service offerings, App42 provides gaming backend with user score and leader board storage functionality.
As well as interesting off line caching solutions supported via its mobile SDK’s. At the moment of writing this was only available for Android with iOS version to come soon.
Again free tier is available for developers to try and implement. 1 million free API requests per month can actually be a good start for your apps.
What is the future of Mobile BaaS?
To finish off this post, a couple of thoughts on the future of mobile BaaS services in the cloud.
We can clearly see the competition being high for providing such services – all providers have free tiers, and good support for most used mobile BaaS functionality like push notifications, custom collection support etc. This is of course good for application developers as its drives the cost down and quality of services up.
For companies who provide mobile BaaS services in the cloud its a challenging time though.
Recently Amazon’s technology arm has introduced product called Lambda. Its a service to add the custom logic to popular Amazon services like S3 data storage solution. Custom logic only runs one the event is triggered (data uploaded to Amazon S3 storage for example).
It looks like a direct competition to many existing cloud BaaS solutions. And if companies like Amazon are entering this space, there will surely be some changes soon!
And most likely the changes be good for us, mobile application developers.
Let me know if this post is missing some great BaaS solution I have overlooked. Happy to add it to the post. Comments are open!
“One thing which is different with Usergrid – you have to install and run it on your own infrastructure.”
That is true, but there are BaaS providers that run Usergrid for you. For example, you can use Apigee’s API BaaS product, which is basically a hosted version of Usergrid. Apigee runs the service for you, but because Usergrid is open source, you still have the option of taking your data and leaving if you don’t like the Apigee service.
Disclaimer: I’m a Usergrid committer and Apigee employee.
Hi Dave, thanks for comment
Usergrid is useful open source project. Great to see its being actively developed