Backend is a common thing for apps aiming at creating a central database to manage user data most efficiently. But hiring a backend developer isn’t the only solution we suggest to our clients. Depending on the customer needs and the product itself, we try to look at all the possible scenarios and choose one that works best to meet the expectations and fit the project like a glove.
There are many players on BaaS market, among the best ones are Stackmob, AppceleratorCloudService, Applicasa, Kinvey and Parse, which we decided to pick for this article.
Read also: Event applications dev in USA
What is Parse?
If we take a look at Parse website we can see that it’s a complete platform for mobile apps that works by the model Backend as a Service (BaaS). In other words, Parse is a cloud that provides certain capacities for apps. Let’s imagine that we are developing a chat app. With the help of Parse technology we can save correspondence and user data on the server, which in this case is Parse. All we need is create a client app.
Parse helps developers store their apps data in the cloud, perform autorization, deliver push notifications and deploy custom code from the cloud. Maybe that was the reason why Facebook felt attracted to it and eventually bought the platform getting their foot on the B2B service ladder. After this lucky purchase Parse quickly became popular and even launched web hosting to make it possible for developers to start their projects or pages using the same system as the one they used for applications and easily share user data between those.
Parse is well-known for being fast and easy to work with. Their documentation is pretty comprehensive and doesn’t cause any difficulties with understanding.
IMPORTANT UPDATE: NOW Parse has quite an attractive free plan with unlimited API calls (30req/sec, before it was 1M total), 1M pushes with $0,05 per 1,000 recipients extra and free analytics — something for a good start.
Read also: Mobile apps development price
Breaking the seal of Parse
Essentially Parse has everything you would expect from a backend provider and even more. So let’s take a brief look what Parse can do once you turn to it:
- Unity mobile backend to the Unity game engine developers
- Built-in analytics + traffic analytics in the form of graphs
- Push Notifications
- Different Cloud Modules to integrate Parse app with third party libraries and services
- Binary assets for data storing
- Users (Facebook or Twitter login)
- Custom objects — gives you an easy way to take data from object format and store/retrieve it from the central database
- Social Integration
- The Data Browser is your web UI where you can update and create objects in each of your apps
- App ID and Client key for every app
- Connections are made with HTTPS and SSL
- Class-Level Permission
- Object-Level Access Control — controls lists that assign permissions to users for every object.
NOTE: Even though Parse put much effort into protecting the data stored in their the cloud, it still is a third party service you put in charge with you information. That said, your hand-made backend gives a better control of the data and is more reliable.
IMPORTANT UPDATE: They just added a new service - Parse Local Datastore when your app isn't connected to a network!
Something to point out
It seems Parse has it all for your mobile app and eliminates the need to write a server, which can cause a headache caused by time and money spent on its development and maintenance as well as a challenge to make it efficiently scalable with future usage.
On Parse, you create an app for each of your mobile applications. Each app has its own application id and client key that you apply to your SDK install. Your account on Parse can accommodate multiple apps. After all, only one iPhone app isn’t enough when Android keeps growing in functionality and users.
Parse capacity to room many apps is useful even if you have one application, since you can deploy different versions for test and production.
NOTE: In case changes are introduced to Parse API, it may lead to the necessity of bugfixing to avoid an unexpected app performance. For example, there was a case when they changed names of Objective-C methods and I had to adopt my source code to the current version.
Parse supports several platforms. What is more, official SDK provides an easy way to create your models, request for them, support callbacks functions or blocks.
Going datawise, with SDK you can create new objects, set necessary relations between them and send requests to Parse. Also, you can view entire database in DataBrowser and edit some details if needed.
Support for Objective-C blocks for requests is something of an advantage as it is a useful and simple enough approach to working with data and requests. But at the same time too many blocks can make the code too confusing, so it’s important to keep the thing readable.
Separate solution for push notifications on Parse provides a good cross-platform alternative to native iOS/Android services.
Also, Parse provides a set of APIs to work with In-App Purchases in iOS which addresses the problems developers have to deal with when setting up IAP.
Parse has its own built-in analytics with custom features that lets you «track arbitrary events with an arbitrary set of dimensions».
In addition, Push Analytics and Parse Push Console give developers access to advanced targeting which can be a great tool for perfect push campaigns. Through the use of its updated SDK, Parse says developers can monitor the number of times their apps have been opened in real-time as a result from their overall push strategy within a specific date range.
When to use Parse
Taking into account Parse tendency to grow and enhance with all the useful features it already has, we may definitely say that it does look attractive. Among the evident disadvantages is the price that grows thick and fast. 1M free requests a month just looks like a lot. It’s not that many indeed.
We tried to experiment with Parse by creating our own product — a wallpaper app, that was launched to App Store and sat there for a while enchanting users with beautiful parallax effects. It didn’t turn out exactly the way we expected it.
The moral of this story is 1M requests was surpassed on the third day after the app’s release (now luckily things changed in pricing). We were neither inclined to pay for the Parse Pro package nor create our own backend. The thing is, a wallpaper app isn’t the case for backend as a rule, so we just turned to Amazon Web Service — Amazon S3, also not free but cheaper than Parse and just as suitable for us.
Parse is wonderful for things like MVP or a small product with limited database. However, if your goal is extensive user base and fast growth horizons, it might be a better idea to develop a backend once and for all and rest your head afterwards. With Parse you are going to be obliged to pay forever.
You need to remember, that Parse is a service, which means it has some limitations in the possibilities notwithstanding its fast development and enhancement. In addition, you don’t have access to the inside of Parse and can never know what exactly can be done in case of a breakage or other unexpected behavior. Not mentioning the fact that there is always a threat of «out of service» scary mode.