An Analyzation of Parse MBaaS
The explosive growth of Mobile Backend as a Service (MBaaS) is proof that a significant percentage of mobile application developers prefer the easy way out. It is one thing to design a great app. Quite another to muster the enviable skills of stacking multiple languages such as MongoDB, Couch, Cassandra, MySQL and etc…, to form a serviceable, updateable mobile back end.
In this third in a series of posts on the new breed of companies offering MBaaS, InfoQ examines what makes Parse tick. Begun in 2011 with the assistance of startup funder Y Combinator, Parse, like its growing list of competitors, saves mobile app developers the time and hassle required to create one’s own efficient mobile backend.
As we look closer at MBaaS providers, the FAQ’s, features and benefits of each service begin to look the same. What is different is the implementation of those attributes. The unique coding styles, servers and programming of each MBaaS provider ultimately yields quite different results.
Take the earlier reviewed Kii Cloud for instance. That service and Parse offer somewhat similar UI looks, with point and click simplicity. They both enable developers to easily plug in a MBaaS to their app for all major mobile phone platforms as well as the non-mobile oriented ones.
Distribution is one major difference. Through its strategic partners Kii Cloud delivers a network with millions of potential customers from mobile consumers in Asian markets. While Parse does not appear to offer anything like Kii’s distribution channels, their partners do offer an interesting collection of bells and whistles.
Each MBaaS provider is likely to have their own unique variables. Parse, for example, requires data models to conform to their method for conducting searches: “…string matching queries that don’t match an exact prefix of the string won’t be able to use an index. This makes these types of queries very likely to fail due to timeout errors as your app grows.”
Parse serves all mobile software developers from the indie newbie to massive enterprises with a choice of three pricing schemes. Those on the proverbial shoestring budget can go with the free plan. That includes one million each of requests and pushes per month with a gigabyte of cloud storage.
When it comes to push technology, Parse features an array of options. Devs can compose, schedule, segment and target their push notices and then examine them with a fine tooth analytical comb.
I don't like that subclassing generally doesn't work. You can subclass PFObject no problem, but you lose it when you are doing a lot of PFQuery'ing. PFUser would be a prime candidate for subclassing but that really doesn't work without a lot of shim'ing.
PFObject subclassing and a more comprehensive offline solution are both very high on our list of features we would like to add. We're just taking our time to make sure we get them right.
Parse user Huzell:
how can you keep the query getting all objects…?
was able to stump the Parse guru:
It is not supported behavior to get large numbers of results- Fosco Marotto.
The community at large is also often able to find a solution. Alex Fish was able to provide one, for iOS at least.