Siri, iCloud, and Swift on the Server

WWDC kicks off in just a few days, which means it’s prediction time. This year I’ve got one that’s a little off the wall: Not only will there be an API for Siri, but it’ll be iCloud-based and take advantage of Swift on the server.

Implementing a Siri API this way would solve a number of potential problems, and fits with several converging trends from Apple.

Siri exists on an ever-growing list of Apple devices. It started out as a feature specific to the iPhone 4S, then gradually expanded to subsequent iPhones and the iPad. Then came the Apple Watch and Apple TV, and rumors strongly indicate Siri will arrive on the Mac soon. Users expect Siri to have more or less the same feature set on all these devices, which is pretty much what happens now with its core features.

That gets a little tricky when you consider how and where third-party apps and services could integrate with Siri. Unlike the Apple Watch, which is paired to one and only one iPhone, Siri isn’t a good fit for apps that pair to extensions in their iOS counterparts. For example, if Uber creates a Siri app that allows you to request a car, you’d expect that to work from Siri on your iPad or your Mac just as much as on your iPhone where the Uber app is installed.

To me, the most logical solution is to make the apps server-based. Installing a Siri app would create an association between Siri and your Apple ID. Then Siri could provide that app’s functionality from any device where you’ve signed in with your Apple ID. The app could store your personal data in your private iCloud storage, allowing it to remember things like login credentials. From the user’s perspective, Siri apps might be installed through some kind of Siri App Store, or through a prompt in a native app. Either way, the main logic of the app itself would live on the server, perhaps interacting with local native apps on each device through new API.

Storing Siri app logic on the server also ties in to the steady progress Apple has made in advancing services like CloudKit. Last year Apple added CloudKit JS, which allows developers to connect to CloudKit through other web services. It’s not hard to imagine additional expansion that lets developers configure server-side logic within CloudKit itself, logic that might be perfect for Siri.

Finally, Apple has been working on getting Swift running on Linux, which suggests at least a passing interest in running Swift on the server. Given the company’s strong push to drive Swift adoption, it wouldn’t be a huge surprise to see Apple use Swift as the language of choice for cloud-based Siri apps. Even better, it could provide the start of a framework for running Swift in server environments elsewhere.

This prediction is a wild guess, but if Apple does something along these lines it would create some pretty cool opportunities. Finding a way to coordinate a voice-driven assistant across multiple devices is a problem that most other companies haven’t tackled. It would also be a very Apple-y way of moving further into cloud-based services and pushing developers to adopt Apple’s cloud technologies. I can’t wait until next week to find out whether I’m right or wrong.