Facebook Parse has now been much discussed in both mobile application development and facebook application development ecosystem. Hence, I decided to pen down for you some more intricacies which are associated with Facebook Parse. Having discussed in detail about Parse acquisition by Facebook in my previous blog, its merits and its applicability, now I will be getting into writing about when not to use Facebook Parse, its comparative analysis against its likely(and unlikely) competitors.
If you are ready to incur the losses both of tangible (pricing) and intangible (scalability) kinds which Parse offers in terms of pricing and scalability, then you can take the courage of using its extensibility with maybe a bumpy ride now but a cakewalk later.
A break down of this blog’s content:
- Demerits of Parse – When NOT to use Parse!
- Challenges faced by application developers for choosing BaaS
- Comparative Analysis among various BaaS service providers
- Choosing the right BaaS
- Algoworks – Unleashing the power of Parse
1 Demerits of using Parse: When not to use Parse?
No doubt Parse can suffice as a larger back end system to application developers by taking complete care of your back-end, yet there are certain drawbacks in technical and coding parts of Parse. Such flaws were first and more popularly noted by the Premium Account Customers of Facebook Mobile Application Developers.
- 1. The queries are limited to 1000 records. In the beginning it does not seem like an issue until you will deal with the queries later on. The sub-queries return some strange data and cuts records off without warning or error.
- 2. For some strange reason there is a limit to the number of times you can issue a count query per minute and this limit appears to be really low.
- 3. Background Jobs do not run reliably. For example, for a background job set to run every 5 min, there are times it can take up to 20+ min before the job will kick in.
- 4. Lots of Timeouts.
- 5. There is a general instability with the system. Issues lasts for about an hour or so where timeouts happen more frequently.
Also, the pricing is one of the biggest constraint which provokes a second thought to many application developers before actually considering Parse as their BaaS service provider.
Parse changed their pricing plans since May 2014
The old plans says…
- Free version of Parse gives you 1 million requests per month, 1 million pushes a month, and the burst limit is 20/second.
- Another version of Parse costs $199/month, where you get 15 million requests a month, 5 million pushes, and the burst limit is 40/second.
This means for each person who accesses database 5 times a day would roughly mean 150 requests a month and therefore it takes 6,666 people until a user can consider to upgrade to the paid plan. And that’s not much.
The free version of Parse SDK gave mobile application developers a good amount of scope to experiment with extensive features of Parse. This also eases Facebook application development process earlier. The paid Parse developers get a bit intimidated to use the same for experimentation or maybe educate about it for the purpose of expanding their knowledge base. And then take-off from there.
Besides of course the current plans says…
- In the free plan, it permits 30 requests per second in a 20 GB file storage space, another 20 GB of database storage space, 2 TB of file transfer bandwidth in an environment where 1 concurrent jobs are being run. For each of the app besides this, you get 1 million unique recipients per month in Parse Push while Parse Analytics absolutely free.
1.3 Creation and Maintenance
Another thing to consider is, difficulty in creating and maintaining following things:
- Server side code
- Database management and security
- Push notifications
- Set up a host
- Session management and security
2 Alternatives as competitors of Parse: If not Parse then?
Mobile application development process including that of Facebook application development requires a web back-end. Web back-end allows you to have central database where users can share their content with each other like photos, messages, or restaurant reviews. Gone are those days when you have to develop them on your own using technologies like Ruby on Rails or PHP.
Use of Backend-as-a-Service (BaaS) application developers can have a hassle-free development infrastructure and also can reduce development cost and time-to-market. It can be best termed as a system in which investing significantly can simply get you a highly scalable back-end solution. This avoids the technical risks associated with a typical application development. Even the app developers developing Facebook Apps can get rid of technical issues while Facebook application development process. You can also scale up with the growing demands as your user base and you can compete in various app stores where millions of apps are hitting the top charts.
Certainly there are some challenges faced by someone in the capacity of an application developer while trying to pick an apt back-end service provider:
- Huge Investment: Developing a back-end just doubles the work as the front-end development is a time taking process.
- Skill Required: No matter how great a tech giant you are in, developing front-end applications, it takes skills and efforts to develop an organized back-end system. They’re completely different technologies, and it takes a lot of time to learn.
- Scalability Issues: One database can serve over various systems such as Android, iOS, Facebook apps, Website app etc. When you have an idea to materialize, you definitely want it to have an implementation that is scalable plus you are dicey what kind of response you will get from your iOS apps on App store etc At the end of the day, satisfaction matters as per your vision and dreams in the long run.
Several companies are now offering pre-made and highly configurable web back-ends that you can use and integrate with your apps. This is termed as Back-end as a Service or BaaS in short.
These services come up with following offerings:
- a handy iOS library to make integration nice and easy.
- offer free accounts — with a surprisingly generous usage allowance.
- various pricing for apps that may need to scale up.
2.1 Comparative Analysis
Having surveyed the major players in the BaaS market, below is a comparative analysis on the basis of features, pricing and libraries on various BaaS offerings which are readily available with application developers:
|Name of BAAS||Criteria|
|Appcelerator Cloud Services||AS3, JS, iOS, Android, REST||1- Offer free plan also.
2-The following is on a Per Month Per App basis:
3- For an Additional 10$/Month you can increase your Tier 1 Calls to 1 Million OR increase your Tier 2 Calls to 500’000 OR increase your Push Notifications (& Emails) to 5 Million.
|1- The most complete of all BaaS in terms of features.
2- The free plan is really good.
3-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.
5- Tier 2:
|Applicasa||Only iOS & Android.||
|1- Offers a drag & drop functionality to create your own tables and custom objects.
2-Once your data structure is designed to fit your needs, download the SDK which could adapt to work with your app.
|Parse||Lua, AS3, JS, iOS, Android and REST.||Cost
1-For the Free Plan you get on a Per Month Per App basis:
2-An Enterprise Plan will run you 199$/month and provide you with 15 Million API calls + 5 Million Push Notifications and 10 GB of storage.
|1. Simplified documentation which is easy to understand.
2. Easy to use service working especially for beginners.
3. Parse has sample projects which you can download. You can add custom UIViews in your projects, such as Facebook and Twitter login views.
4. Parse offers most of the features that you’d expect from a back-end service provider, including the following:
|StackMob||iOS, Android & Java. Also have an SDK with the option to upload your custom server code.||Their full Price Plans.
1- For the Free Plan you get on a Per Month basis:
|1. StackMob stands out from the other services as being extensible and holds various helpful features:
2.2 Which to Choose?
How can this information be used to help you make the best choice for your idea? Some salient points are discussed below to assist you in considering the right one for your needs.
- Check for each service’s features and their usefulness to you.
- Services which offer just “users” might initially seem more difficult, until you can realize that substantial flexibility comes indeed in a user-based approach.
- Documentation is important .Take a close look at the documentation. Read it thoroughly, even if the sample projects might have given you enough to get started.
- Consider the costing which you will incur in using the service- short term and long term both.
- If your app is going to require a paid plan from the start but if it fails, will it be worth. Evaluate risks and let your assessment phase be given enough time.
These questions can probably help you in choosing the right BaaS for your mobile or Facebook application development process.
It should also be noted that the above questions need convincing answers and it is recommended that you let experts analyse your system by observing the latest trends, studying in detail your requirements and how it best fits your plan to generate the best ROI.
If you are considering Facebook Parse for your application development process, read my previous blog which discusses in detail the great features of Parse.
3 Parse SDK- Unleashed By Algoworks
Algoworks has developed a scalable and an innovative inventory tool management application for its in-house purpose. This Device Manager Application uses push notification features and acts as a great back end database service for innumerable devices which is required in the mobility department of the company.
The app is responsible for managing all devices in the company. Users can request devices using push notification and all the required data is saved in Parse Cloud. With the increasing use of mobile devices, it is imperative to maintain a complete track record of all devices operating in the premises. Device Manager Application offers features like backup of data storage and updates on status of the device. The application sends notification on other devices in case the user requires that device. With the help of Parse Cloud data, the information is well-managed and kept updated on back-end which can be retrieved/changed based on the service request messages given by database administrator. This customizable back-end is well-knitted and well-integrated in the application.
I believe this is where I end my type on Parse after having discussed about its history, its acquisition by Facebook, its advantages(previous blog) and disadvantages at firm and developer-level, its competitors and how you should go about choosing the best fit for your system.
Though this article has highlighted few shortcomings in terms of pricing and scalability but they cannot be generalized nor should contribute in stereotyping Facebook Parse in the bigger picture. The scalability and technicality issues are majorly faced when Facebook application development process get initiated.
At the end of the day, it is not about whether Parse is the best, or whether Parse is not good enough for you. It is simply about answering the question whether it serves your purposes, what requirements you got and how it can benefit you. There is neither a need to get biased in favor of it since its acquisition by Facebook, nor a reason to get biased against it because of its limitations. So get going now and if necessary get in touch with experts to study your requirements to help you decide if you would like to go for Parse or not!