A few years ago the biggest problem with our phone’s data was to have contacts in sync. But much has changed since then to the point where we can do nearly any kind of task with a smartphone, so we want to be able to send data back and forth between devices. Even more, if you have multiple devices of various types, such as a phone, a tablet or a computer, it might happen that you have the same application on all of them. Wouldn’t it be great if you could start a document on your PC, where you can write more comfortably, edit it in your smartphone, where you have your pictures, and show it to your family, friends or coworkers on your tablet? Turns out it is not just great, it is what users expect.
Apple’s marketing towards its iCloud platform has made data synchronisation between devices something that any app released nowadays must have. This is great for us as consumers, because even if we only have one device, we can be safe knowing that we have a backup somewhere of our precious data, and if anything happens to that device, we can recover it very easily. But for ourselves as companies, it has made launching an app more difficult and expensive.
In terms of infrastructure, data synchronisation requires a backend that has to be available at all times, that has to be able to manage high amounts of traffic and that must be backed up so that if something happens to one of the databases, we can recover our users’ data. In terms of development, this requires a system that can retrieve and store data from that backend as fast as possible and that has to be able to deal with data corruption and network loss. These requirements translate into longer development times and recurring bills to be paid in order to keep everything up and running.
In summary, users expect data synchronisation so you must provide it, and it will likely add, at least, an extra zero to your project’s budget. It might seem unbelievable, but trust us, we’ve developed custom backends for our clients and it is a very complex task. Thankfully there are products out there that offer all the required infrastructure at a very small price or even for free.
We’ve mentioned iCloud before which is an example of one of these products, and probably the best known by the consumers due to Apple’s marketing campaigns. It is free, it comes with every iPhone, iPad and Mac and is very easy to integrate into your application if you’re targeting either iOS or OS X. But its biggest problem is that it cannot be used in any non-Apple system. So, do we have any option if we want to release our application for multiple platforms?
Say hello to Parse
a model for providing web and mobile app developers with a way to link their applications to backend cloud storage while also providing features such as user management, push notifications, and integration with social networking services.
Basically, they take care of all the infrastructure needed to sync data, keep the service available all the time and make sure that if anything happens to their systems it can be solved. Additionally, they provide the tools needed by the developers to retrieve and store the data from the cloud.
And they offer all of this at a very reasonable price, so reasonable that you won’t pay anything until you start having thousands of users when it will cost you about 200 USD per month. So it is a product that allows you to launch your idea and validate it before having to spend big amounts of money on infrastructure. And additionally to data storage, you get nice additions such as push notifications, user management, cloud code and analytics. We think it’s not a bad deal.
Nothing is perfect and Parse also has its counterparts
Be aware that if you start growing, you’ll reach the limit for the paid plan quite fast and then you’ll have to negotiate a price directly with them. Moreover, they already changed their price plans before, so no one can guarantee you that they’ll keep the current prices in the future.
Their tools aren’t open-sourced, so there is no way to know how they work. This might seem trivial, but when considering that they charge you based on the number of API requests your application makes, you should be able to check that you are not making more of them than needed.
Finally, by choosing their product and integrating it with your application, your are tying yourself with them for the long run. This means that if they ever change their product and you don’t like it, you’ll need to spend time and resources to change use another service. So you should think it through before taking this decision.
There are some alternatives out there, both open-source and proprietary, each with its pros and its cons. We recommend that you check them before you settle for one of them:
deployd – An open-source platform in early stages of development but with a bright future in front of it, even if its development has stalled recently.
helios – A Ruby open-source framework, maybe too iOS oriented to be suitable for multi platform development.
StackMob – A Parse competitor with who is been around for some time. Unfortunately it has been acquired by PayPal and will shut down in a few months.
kinvey – Another Parse competitor that charges based on the amount of users instead of API requests.
Apache usergrid – An open-source framework with multiplatform support maintained by the Apache foundation.
Adding data synchronization between devices to your application is something that will increase its complexity and prices. Luckily there are services that will simplify this task a lot, and even if they are not perfect, they can be a very helpful when you have a business idea that you want to validate.
Here at Mobile Jazz we have experience working with both, custom backends and with these services. We tend to use Parse for prototyping and developing MVPs, because we think it’s fast, cheap and reliable, and its counterparts can be solved in the future when your idea has proved to be successful. If you’re curious to learn more about these services or even interested in working with us feel free to contact us