Apple's Swift and CloudKit: Mainstreaming BaaS
Last week’s Apple Worldwide Developers Conference was a momentous one. Particularly relevant for developers, Apple announced a new language, dubbed Swift, which attempts to take the best parts of static and dynamic languages while making it much easier to write apps. The company also announced CloudKit, a service to let developers use Apple’s iCloud for app-specific storage rather than requiring them to spin up their own back-end.
Microsoft made a similar move last year by offering Azure Mobile Services, a Microsoft-centric BaaS designed to work well with Windows Phone, but open to others via HTTP APIs. Microsoft now says that they are a "devices and services company” with emphasis on both: if you use their devices, great; if you use their services, great; if you use both, even better.
Apple’s move reflects their core business model: it’s a hardware company. Apple typically is a late mover in the markets it enters, and then it uses outstanding hardware and operating system design, coupled with consumer marketing, to take over the more profitable mass consumer segments of the market.
CloudKit is a solid implementation of Apple’s strategy: make it easy for wealthier consumers to surround themselves with iOS and MacOS hardware for all their needs. CloudKit enables workflows where users start an action on one device and flow to others to complete their interactions (watching a movie or editing a document, for example). As long as every device is an Apple device, it works perfectly.
The structure of the CloudKit software itself is an SDK that implements a set of Objective-C functions to use iCloud to store app data, including some user information, object and file storage, notifications, and queries. It is, in effect, a very simple BaaS. A beneficial side effect of making developers’ lives easier and their apps better across devices is that more Apple users will consume iCloud services as a result of this indirect channel.
It is crucial, however, to observe what CloudKit is not. It has no HTTP APIs. It is not a general-purpose service like Apigee Edge API Services (available as UserGrid in the open source universe) or Azure Mobile Services. These decisions are perfectly aligned with Apple’s business strategy: grow the Apple ecosystem of apps to sell more Apple hardware.
We view the strategic impact of this in two ways:
mainstreaming the core BaaS concept that apps should run on multiple devices and need cloud storage
reinforcing the need for cross-platform (hardware-independent) BaaS for cross-platform apps
It’s further evidence that there has never been a better time in history to be a software developer: more demand for more apps leads to better infrastructure and tools to support them.
Image: Kate Haskell/Flickr