How To Choose the Best Backend Provider for your iOS App: Parse vs Stackmob vs. Appcelerator Cloud and More!
This is a post by Tutorial Team Member Antonio Martínez, a mobile software developer currently working as an iOS Developer in London.
It’s quite common for apps to require a web backend. This allows you to have a central database where users can share content with each other, like photos, messages, or restaurant reviews.
However, there are several challenges with this:
- Heavy Time Investment. It takes a huge amount of time to develop the front-end of the app already. Developing a back end just about doubles the work involved!
- Heavy Skill Investment. If you’re an experienced front-end iOS developer, it doesn’t mean you have a lot of skills developing back-ends. They’re completely different technologies, and it takes a lof of time to learn which you might not have.
- Scalability Issues. The nature of iOS apps and the App Store means you’ll never know whether your app will only have limited usage, or become a huge hit with millions of users. Developing your back-end so it scales efficiently with usage is quite a challenge!
Luckily, these days you no longer have to develop a back-end yourself! Several companies are now offering premade and highly configurable web backends that you can integrate into your app. These are known as Backend as a Service, or BaaS for short.
These services provide you with a package of backend storage and other functions that can be leveraged from your app, usually with a handy iOS library to make integration nice and easy. Most of them offer free accounts — with a surprisingly generous usage allowance — as well as priced tiers for apps that need to scale up.
The only problem is there are a great many BaaS providers out there! Which should you choose?
That is exactly what this article is for! :] I surveyed the major players in the BaaS market, chose my favorite three, and developed the same exact app in all three servies so you can compare them on an equal level. This will help you choose which one is best for your app!
What Does a Back-End Provider Do For You?
Before taking a look at the providers, let’s take a look at the common features that BaaS providers supply so you have a better understanding of what they can do for you.
For sake of discussion, let’s think about a hypothetical application where you store lists of sports players who belong to various teams. What support would you need from the back end?
- Custom objects: Arguably the most important feature of a back end is the ability to store your app’s information into a database. Typically you have model objects in your app that represent data (like a sports player object, and a sports team object), and relationships between the objects (like what team a player is in). BaaS providers typically give you an easy way to take this data from object format, and store/retrieve it from the central database.
- File storage: In addition to storing plain old data, sometimes you need to store files – such as images, large documents, and the like. In your hypothetical sports app, maybe you need to store a profile portrait for each player. Most backend services will provide file storage that you can use to associate a file with a custom object.
- Geolocation: In mobile apps, it’s often useful to be able to perform queries of objects near a certain location. For example, maybe you want to find the sports team in the area near the user’s phone. Backend services often provide the ability to tag your objects with a specific location so the user can make queries on objects based on location.
- Users: You’ll certainly need some sort of access control for your objects, and establish which object particular users have access to. Almost of all the BaaS offerings allow you to create your own users, and most of them users login via Facebook or Twitter so that the user doesn’t need to create a new account.
- Push notifications: What if you want to send a push notification when a sports game is about to start? BaaS offerings often provide the ability to send a push notification to all your users, or to a selective subset of your users.
Now that you better know what BaaS providers do, let’s take a closer look at the major players in the field!
Back in the Game: The Major Players in the Backend Service Market
Here are the major players in the BaaS market at the time of writing this article:
StackMob: Perhaps the most popular and customizable of all the current BaaS offerings. You can upload your own back end code and create your own web service, which is quite unique among the various backend service providers.
One disadvantage is that if you want to serve up binary assets, like the images mentioned above in your theoretical players app, you will need an Amazon S3 account. You can’t maintain binary assets directly in StackMob. Their free plan is one of the best in the market, it’s completely free for basic features and you can purchase new features in their MarketPlace
Appcelerator Cloud Service: Without a doubt, this is the most complete of all BaaS in terms of features — and the free plan is really good. It’s clearly designed to work with the Titanium SDK, so the documentation is a little bit obscure and there are some hoops to jump through if you are not using Titanium.
On the other hand, they have a good Q&A webpage for any issues you may have, and response time on support issues seems reasonable.
Parse: Has one of the best free plans out there. The documentation is the easiest to understand, and the service is one of the easiest to work with, especially for beginners.
Parse has sample projects that you can download, as well as custom UIViews that you can add to your project, such as Facebook and Twitter login views. Additionally, there is a large collection of 3rd party libraries offered for use with the service. While the free plans are very good, the price does seems to ramp up more quickly than other services if you exceed your free allocation.
- Applicasa: Offers the same functionality as the others, but it offers a drag & drop functionality to create your own tables and custom objects. Once your data structure is designed to fit your needs, you can download the custom SDK adapted to work with your app. Applicasa charges based on active users. If you are a startup, they will give you a free account with up to 100,000 users per month if you contact them and ask them for it.
- Kinvey: Also a popular service which is based on active users. You can have 200 active users for free per month without going to a paid account, although its prices are a little bit higher compared to Applicasa. Its support service is very good, and they seem like a very promising BaaS provider.
For this article, I decided to pick three of these services and perform an in-depth comparison of them. Here’s the services I picked and why:
- Parse, based on its ease of use, good and clear documentation and free service;
- Appcelerator Cloud Service, based on the amount of features they offer; and
- StackMob, based on its popularity and ease of customization.
Keep reading to find out how I tested these out – and how you can compare them for yourself! :]