clever/you - thoughts about mobile

  • Archive
  • RSS
  • Ask Me

Parse & StackMob: Some Thoughts

(Update: Since writing this, Parse have been acquired by Facebook, which I’ve blogged about here. I’ve also posted a follow up to this which talks about some changes both Parse and StackMob have made to their platform - you can find the new post here.

I think Parse is great: I have said as much before - but I also wanted to know a bit about the alternatives that were out there. StackMob seems to be Parse’s main competitor: there are others around, but they are either rather small or part of a much bigger ecosystem (e.g., Appcelerator Cloud Services): Parse and StackMob have both staked their claim as the mobile back-end provider.

Outsourcing your app’s backend is quite a big decision: the last thing you want is your provider to disappear into the dead of night never to be seen again. In the interest of fairness I thought I’d do an objective comparison of Parse and StackMob - hopefully this will prove useful to those looking to use a cloud provider for their next app. If you think I’ve made a mistake or omission in this comparison please do get in touch - it’s just my personal opinion, and perhaps you disagree.

Introduction

Parse and StackMob are backend as a service, or ‘BaaS’, providers who specifically target mobile apps (both native and web). They provide APIs for account management, object storage, file uploads, and push messaging amongst other things.

Parse has been around for just under a year, and is backed by $7 million in funding.

StackMob was founded over two years ago, and has a similar amount of capital behind it ($7.5 million).

Both companies have similar goals, but as we’ll see go about it in very different ways.

The Basics

First off, here’s what you get out of the box with both providers:

  • User management with social (Facebook & Twitter) integration
  • Object storage and retrieval (with GeoSpatial support)
  • Push messaging
  • Native SDKs
  • REST APIs
  • Built-in scaling

There’s a significant amount of overlap, but the proof is in the details. As a mobile app developer I’m particularly interested in the native SDKs that are available, so let’s tackle that first.

Native Clients

Both Parse and StackMob offer platform SDKs for Android and iOS. From the outset, I feel Parse has considerably better documentation and I find their SDK much easier to integrate and use. Parse also have the killer saveEventually feature, which will automatically push data back to Parse when the user is next online, and will keep trying until it succeeds. This can save a lot of code, because you don’t have to worry about the user being offline or the request failing - the next time your app is running with connectivity the Parse SDK will automatically complete the operation.

To get a feeling of how the two SDKs operate here’s the Android code you’d use to save a single object with a single property:

Parse
    ParseObject gameScore = new ParseObject("comment");
    gameScore.put("body", "Hello world!");
    gameScore.saveEventually();
StackMob
    Map args = new HashMap();
    args.put("body", "Hello world!");
    StackMobCommon.getStackMobInstance().post("comment", args, new StackMobCallback() {
        @Override public void success(String responseBody) {
        //POST succeeded
    }
        @Override public void failure(StackMobException e) {
        //POST failed
        }
    });

The iOS code is broadly similar: I have cheated a little, because as far as I know there’s no like-for-like saveEventually method in StackMob - regardless, I personally find Parse’s implementation to be cleaner.

If you’re an iOS developer Parse also provides a series of native UI components for you to quickly integrate into your app, such as log-in and sign-up views. I don’t find these particular useful myself, but I can see their value for those looking to get something together in a quick-and-dirty environment like a hackathon. Parse also update their SDK regularly (weekly, and sometimes daily), although it is closed source (in contrast to StackMob, but more on that later).

File Uploading

Amazon S3 is the name of the game here, and it’s used by both providers to store binary data. However, Parse encapsulates files in a PFFile object, and makes retrieving files as easy as retrieving normal data objects. StackMob does not: you’ll be given the Amazon S3 URL, and it’s up to you to figure out how to download it. For native apps this can add a fair amount of code, particularly if you need to sign and authenticate your Amazon S3 URLs.

You’ll also need to set-up your own Amazon S3 account with StackMob, whereas Parse take care of the actual storage process for you. Parse’s free-tier includes 1GB of storage, and 20 cents per additional GB. Their Pro package offers 10GB, and a reduced rate of 15 cents per GB. Out of the two, Parse appears to offer the quickest and easiest way to deal with binary file storage for native app development.

Server-side Logic & Versioning

Parse doesn’t currently support custom server-side code, so this is a clear win for StackMob. For many developers this will make StackMob the obvious choice, in which case there’s probably not much point reading on! I would suspect this is fairly high on Parse’s most-wanted list, as for many people it’s going to be a big deal.

StackMob also offers versioned APIs, a feature I’m not using so won’t go into too much detail on: suffice to say, this potentially could be quite important for you depending on your requirements.

Free Tier

There’s no competition here: Parse’s free tier goes way beyond what StackMob offer:

Parse StackMob
API Calls 1,000,000 60,000
Push Notifications 1,000,000 60,000
File Storage 1GB n/a
Additional Calls 7¢ per 1,000 $1 per 1,000


Of course, there’s no guarantee these tier limits won’t be adjusted in the future…you’d be rather foolish to plan your business model around it. But if you’re looking for something to power your ‘weekend-app’ Parse’s free tier is very hard to beat.

Portability

The ability to bulk export your data is very important: who knows what lies around the corner. It wouldn’t be unknown for a service to be acquired and disappear into the night. Fortunately, both StackMob and Parse will export your data should you ever want to migrate away. StackMob’s native SDKs are also open-source, and available on GitHub, which could be very helpful should you wish to move onto a different platform or internal solution. Note, however, that StackMob require you to request a data export through support, whereas Parse will let you generate exports through their web interface at-will.

Summary

Doubtless by now you’ll have drawn your own conclusions, and you might not agree with mine. From my own perspective:

Parse wins on…

  • Price: Parse’s free tier is sixteen times larger than StackMob’s, and their Pro package is similarly better priced for the number of API calls you get.
  • File storage: if your app needs to support things like photo or video sharing you’ll find Parse’s PFFile support much more intuitive than StackMob’s integration with S3
  • Speed: in my own experience, getting up and running on Parse is a lot easier than StackMob. Parse also seem to be rapidly iterating, with new platform features going in every month. I started using Parse for my apps in January: in just over four months a number of hugely helpful features have been added
  • Simplicity: features like saveEventually and native UI components make Parse highly accessible.

StackMob wins on…

  • Maturity: features like server-side code and versioned APIs show what a year’s head start can achieve (although I’d place even money on Parse catching up)
  • Enterprise: A number of StackMob’s platform features such as analytics and distinct development/production environments lend themselves well to an enterprise buy-in.
  • Web apps: I haven’t touched upon StackMob’s hosted HTML feature because I’m primarily a native app developer, but it’s a nice feature that may be useful to you if web is your thing.

If you came here hoping for a clear-cut winner you’ll doubtless be disappointed. StackMob is very attractive for those building apps that require complex business logic, and if you’re trying to sell a BaaS provider into your company you’ll probably have more success with StackMob.

On the other hand, I’ve never felt the same kind of joy and happiness using StackMob as I have with Parse, and the rapid roll-out of new platform features makes me excited to see what the future will bring. I will be using Parse at the next Hackathon I’m at, simply because it’s the quickest way I know to get a backend up and running.

In the end, both services have much to offer mobile app development, and I’ll be revisiting this post in the next few months to see how much has changed.

    • #parse
    • #stackmob
    • #API
    • #app development
    • #mobile app
  • 1 year ago
  • 4
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

About

I'm Nick, by day a mobile software engineer in London. Mainly I work on iOS and Objective-C, with some dabbling in Android. My views here are my own, not my employer's.

Me, Elsewhere

  • @objclxt on Twitter

Twitter

loading tweets…

  • RSS
  • Random
  • Archive
  • Ask Me
  • Mobile
Effector Theme by Pixel Union