Marco.org

I’m : a programmer, writer, podcaster, geek, and coffee enthusiast.

A Partial List of Questions About the Native Apple Watch SDK

Jeff Williams confirmed yesterday that Apple is releasing the SDK for native Watch apps at WWDC. This is a pleasant surprise a few months earlier than I expected. I have many questions, most of which I hope will be answered in two weeks:

This is very soon after Watch OS 1.0. Will it be stable but limited, powerful but immature, or the worst of both? (The best of both — stable and powerful — seems unrealistic this early for the platform.) I’m guessing it’ll be stable but limited.

The Apple Watch is much more constrained than any iPhone in screen size, battery life, connectivity, and practical interactivity. App interactions must be as fast and simple as possible, and the screen can’t be on for very long without a significant battery impact. I think designing Watch 1.0 software to be good, useful, and responsible with the most limited resources (battery power and user patience) will be harder than writing apps for the first iPhone.

Background operations and multitasking are significant battery drains. Will any be possible? If so, what new limitations will apply? (My guesses: No background refresh, no background URL sessions, aggressive termination of backgrounded apps after a brief task-completion window, and maybe continuous background operation for audio and GPS apps.)

Which Foundation APIs will be available? Will any of UIKit be available, even if it’s just the lower-level bits and pieces like UIColor and UIImage? (My guess: Most of Foundation and some of UIKit, but no stock iOS view controllers or UI controls, which will be replaced with Watch-native, simpler alternatives.)

AVFoundation, Core Image, and Core Audio are huge and complex, but required for lots of app types. Will any audio, video, or image APIs be available? Will they only be possible through limited, high-level interfaces?

WebKit appears to be missing from the Watch. What other major APIs are missing or will be unavailable in the public SDK?

Will apps be permitted that must leave the screen on for long periods, like video playback or action games?

How fast is the Watch? How much of the 512 MB of RAM will be available to apps? (My guess: A4-class performance, and maybe a third of the RAM available.)

How much storage can Watch apps use?

Presumably, Watch apps will be bundled with iOS apps. How can Watch apps communicate with their iOS counterparts? Will they be able to read shared containers, presumably only when the phone is within range? Will there be any built-in methods to sync data between an iPhone app and its Watch app?

How quickly can data be transferred to a Watch app? Can it transfer over Wi-Fi even within Bluetooth range to speed up large transfers, or will it be Bluetooth-only when possible to save power?

Will a Watch app be able to fetch data from its iPhone app whenever it wants, or only during user-initiated times such as Handoff? Will Watch apps be permitted to download large files or stream data continuously from the internet, their iPhone app, both, or neither?

I’m assuming native Watch apps can present all three current WatchKit views — apps, glances, and custom notifications. Can our glances have buttons and controls on them, like Apple’s, or not, like WatchKit glances?

Can we make third-party watch-face complications? (I assume we won’t be able to make faces.) If so, how will the many shapes, sizes, and colors be enforced for a consistent look? How often will they refresh their data? Can they make network requests?

Can Watch apps include in-app purchases?

Can our apps become locked as the “active” app that shows immediately on wake instead of the face, like Workout and Remote? (I assume not.)

Will most people’s battery life take a big hit after native apps are widespread, since more apps will likely be in frequent use, the screen will likely be on more often and for longer spans, and some background updating may be happening?

A new platform is an opportunity for Apple to advance internal political goals. Will Watch apps be required to be written in Swift? Will ads be allowed? Which app types and features that are allowed on the iPhone will be prohibited on the Watch?

On all of these, I have no idea. This will be an interesting summer.