We'd like to introduce you to one of the awesome development teams building apps on the Parse platform, Inkstone. With clients like Priceline.com and KIA, we were honored to hear they wrote a post about what brought them to use Parse and thought we'd share their thoughts with you.
Written by Ryan Bruels, who works on iOS development at Inkstone, the original post (reprinted below) can be found here. Ryan spent five years on Apple’s software engineering team before leaving in 2008 to start DevToaster, an award-winning iOS app development studio. Now at Inkstone, he leads their iOS engineering team. When not at the office, Ryan can be found hacking electronics or hiking the beautiful Pacific Northwest with his camera.
I’m going to take a moment to toot the horn for one of our favorite companies. Here at Inkstone, we connect all our apps with Parse, the rock-solid backend app platform. I want to explain a bit about why we chose them, and how we integrate our apps, but first I think it’s important to tell you a bit about “the cloud” and how it relates to mobile apps.
When Jay and I started our first iPhone development startup in 2008, we mostly built apps as standalone units—the user would launch the app, do his or her thing, and close the app. Many of them connected to network services, but largely in a read-only or “accessory to the web” fashion: checking the weather, reading a company’s catalog, etc. This was the way of things. A brief look at the top apps of 2008 validates the trend we saw. A lot of novelties and a lot of mobile clients to bigger services, but nothing terribly intelligent. But hey, virtual beer!
Flash forward a year and two billion apps (!) later. Quickly the world realized what a mobile app really was destined for—this wasn’t “just another client”. The smartphone was to become a platform unto itself, and in order for that platform to succeed, it needed to be much smarter. And given the constraints—processing power, network connectivity, memory, storage space—many of us realized the need to offload intelligence to backend servers that could handle the increased demands. And at least for mobile devices, “the cloud” was born.
In 2009 our company was tasked to build an ambitious social networking app. But existing systems to interlink mobile devices simply didn’t exist at the time, not with the features we needed. This was way beyond “data store”. So we called up our buddies, who were building huge Facebook apps at the time, and together we built a backend platform called Reservoir to handle storage, media processing, and real-time communication between iOS clients.
In 2009 we were pretty far ahead with Reservoir: We started right away with geo-loc and geo-search capabilities. We enabled iOS push notification support almost right as it launched, and had written a fairly robust iOS SDK by the end of the year. The data model was schemaless and easy for the iOS client to search and retrieve from. We were among the first companies to build these features and connect them into mobile apps. At the same time we were building Reservoir, many companies starting building similar systems. And within two more years, tons of apps had become very smart—push notifications, geo-location, rich data and high-performance queries all became standard and expected parts of the most popular apps.
In mid 2012 we discovered Parse, and have simply been blown away by it, again and again. It has everything we wished we’d implemented in Reservoir, and has lots we didn’t know we needed. No joke: within 3 months of writing our first Parse demo project, we set the shutdown date for Reservoir.
Parse enables all the features we need “in the cloud”, and does them across every platform we’d ever hope to touch. Just a brief sample of what they offer to developers like us:
- Parse is exposed through a dead-simple SDK that minimizes complexity and promotes good design patterns. They also have a REST API when you want to get down to the metal.
- Security is handled strongly, simply and elegantly through class and object-level ACLs and judicious siloing of the various app & secret keys.
- It supports user accounts—with all the bells and whistles you expect like custom accounts, account creation, password recovery, linking accounts across networks—and allows login via Facebook and Twitter. And it does all this in a way that takes up about ~10 lines of code in your app. Astounding.
- Native features such as push notifications are tightly integrated, targetable to certain groups of users, and are wrapped on the backend with a solid analytics and management dashboard.
- You can deploy custom server-side code modules to do important, secure, and/or expensive work outside the relatively insecure mobile app. We use this to handle date/time validation and security validation to protect transactions from anyone trying to hack the mobile apps.
- There is a simple and pleasant web interface to manage your Parse instance that stays out of your face as much as possible.
- Parse is extraordinarily cost-effective, particularly when comparing to building and rolling your own cloud solutions.
The Parse crew launches great new features almost weekly it seems, and they squash bugs with no mercy or quarter. While we have minor complaints about the system here and there, it’s no understatement that we’re in love, and that Parse has transformed the way we build apps.
Inkstone’s vision is centered around connecting mobile devices in the cloud, and we’re thrilled to have such an excellent platform to help us realize that. Contact us if you have questions about how we use Parse, or how we can use the cloud to make your mobile app even better!