Anticipating WWDC 2016: What's in store for iCloud and CloudKit
Apple is often thought of as a hardware company, but an increasingly important segment of its business now relates to online services. Here's a look at what we're likely to see about the future of iCloud and CloudKit from Apple at this year's Worldwide Developer Conference.
Apple's Swift invite to WWDC 2016
Apple is notoriously secretive about its future plans right up to the point where it is ready to release new hardware at its Apple Event launches, or alternatively, new software and cloud services at its annual Worldwide Developer's Conference in June. Here's what to look forward to at next month's developer event, focusing specifically on Apple's cloud-based services and platforms. Previous articles examined Apple's Mac, iOS, tvOS and watchOS platforms
WWDC is all about software, as it is the company's annual meeting with app developers, accessory partners and others who interface with Apple's platform APIs. While the company as occasionally debuted new hardware at WWDC, in recent years the event has focused almost entirely on new software releases (iOS, Mac OS, watchOS and iCloud) and ways developers can make the most of Apple's platforms.
Apple, late to the cloud
Apple is often regarded as being late to recognize the value of remotely-hosted online services: the cloud. It's fun to talk about Apple being late. In the late 1990s, Apple was late to adopt the "modern OS features" of Unix, but then subsequently became the world's largest Unix vendor.
Apple was late to smartphones until iPhone almost immediately became the world's most popular smartphone. Apple was late to appreciate video games, before iOS became the largest viable platform in the new world of mobile gaming. Apple was late to NFC payments and smartwatches, until Apple Pay and Apple Watch made the company a payments and wearables leader.
Today, Elon Musk is portraying Apple as being late to the car industry. But not so long ago, Apple was seen as being late to embrace the cloud, leaving pundits to wonder how the company could ever hope to enter a the market and expect to gain any cloud clout after having earlier experienced problems with— and a lack of unbridled enthusiasm for— its .Mac and MobileMe services.
Apple's initial efforts with iCloud— rebranded as an important new initiative by Steve Jobs at WWDC 2011— were initially troubled with reliability issues, limited capabilities and other flaws and deficiencies. Many users and developers had hoped Apple would simply copy existing cloud based storage services instead.
Apple introduced Photo Stream, Apps/iBooks/iTunes in the Cloud and Documents and Data, three new initiatives that emphasized simplicity in how users could interact with cloud storage. When it worked, "it just worked."
Five years of iCloud development
Over the last five years— despite lots of pleas to give up on its new model and instead just copy DropBox and other firms offering commodity online storage presented as a remote file system— Apple kept working on its idea for creating sandboxed, app-centric storage that could be secured from rogue apps and malware while remaining effortlessly easy to use across devices.
Over the same period, Apple has also rapidly worked to build out its own server capacity, with investments of multiple-billions of dollars in server farms across the U.S., Europe and Asia.
The next year, Apple introduced CloudKit, a new framework providing developers with access to secure storage on Apple's backend servers. Apple also delivered its own new Photos app built on this technology.
The company also introduced iCloud Drive (below) for manually copying files to iCloud on both iOS and Macs.
After celebrity accounts were exploited by password thieves, Apple introduced two factor authentication for iCloud that required verifying password changes using a known device.
CloudKit goes cross-platform, server-side
CloudKit— and Apple's servers behind it— allows developers to focus on the unique design and features of their client app, rather than having to roll their own complex data syncing code and provision their own servers to sync user data to.
CloudKit is a strategically important platform for Apple. It essentially sets up server capacity for developers to use— virtually for free— and it has built the tools for keeping users' data secure and up to date (so if a user updates things in one app, apps on another device get notified of the change). This encourages developers to build apps that can work seamlessly across multiple devices.
For developers, one of the only things worse that users not finding any interest in their app would be having a sudden surge of interest that they can't cope with. If developers have to provision their own servers, this means buying and building support for an unknown amount of interest. Overbuilding is expensive and underbuilding would risk seeing their app abandoned as unreliable.
While Apple has experienced temporary service outages on occasion— as it just did yesterday— it has the capacity to quickly address issues and bring services back online in ways (and with resources) that smaller developers don't have.
Another feature Apple recently brought to CloudKit is the ability for developers to perform server-side operations on data, rather than only accessing stored data from their client app the user's device. This allows a script to process data on the server side without necessitating moving large amounts of data back and forth between the server and a client app on the user's device.
A CloudKit App Store
Apple's iCloud web site is currently limited to its own iCloud web apps (such as Mail, Calendar, Reminders, Notes and Find My iPhone), but with the work it has put into developing these— as well as CloudKit— it looks like it is laying the foundation for an App Store for web apps and services.
Opening up the development frameworks it used to create iWork and its other data-based apps like Notes, Apple could enable third party developers to host their web apps on iCloud
By opening up the development frameworks it used to create iWork and its other data-based apps like Notes (which has a web client based on CloudKit JS), it could enable third party developers to host their web apps on iCloud, providing users with browser access to their iCloud data.
This could allow for free web app counterparts to existing iOS or Mac apps, create a market for new cross-platform web apps sold as a subscription or one-time fee, or enable web Universal Apps that bridge the gap between Apple's iOS and Macs and other platforms, enabling an Apple ID login to securely access data from anywhere.
In addition to web apps, an iCloud App Store could also create a market for server-based web services that work on user data stored in the cloud. IBM already has an SDK for its Watson services, ranging from text to speech to language translation to visual recognition and other analysis.
iCloud media, shared data & Apple ID
Another feature currently missing from CloudKit is the ability to stream data, such as video. While video can be stored in CloudKit, to play it back the user has to download it first. Being able to store large media and stream just the part being watched (a core feature of Apple's HTTP Live Streaming) would open the value of CloudKit to broader uses, potentially making it useful to developers on Apple TV.
CloudKit also currently has only two kinds of data records: public data available to all users, and private data stored by a user that's only available to them. With finer permissions, CloudKit could enable developers to offer access to containers of iCloud-based content on a fee or subscription basis, or alternatively to set up collaborative shared containers of data between users, such as groups of employees or a family of users. That could solve a current issue with how to share content without copying it, or to share some but not all of your iCloud data.
Apple's push notification architecture currently requires developers to maintain their own server for sending notifications. Apple could add hosted Notification support to CloudKit to solve a common issue in provisioning faced by smaller developers.
In the other direction, for users to login to a developer's website or web service (including many services on Apple TV) they need to set up an account for each one. Twitter and Facebook provide OAuth services to provide a universal login for these types of requests, but Apple ID could provide a more seamless way to login, without exposing the user's history of social media interactions or contacts. Using Apple ID would require that users have iCloud turned on, but this would also give them another incentive to activate it on their phone.
Twitter's Digits tvOS login
Finally, Apple could create an App Extension architecture for its CloudKit-based Notes app that would allow apps to piggyback their storage of small bits of data directly in Notes, resulting in a central repository of clippings, sketches, receipts, media clips, PDFs and other content that could be organized by the user, providing clear and obvious ways to access, search and share Notes originating in various other apps.