
It’s finally here, we’ve been waiting a long time since we heard the rumours of an iWatch, and now with the release of Xcode 6.2 and the iOS 8.2 SDK Apple has included WatchKit so we can begin developing for it at last. What kind of watch app are you going to make?
Let’s look at the three kinds of watch interfaces you can include in your app.
WatchKit Apps
A Watch app is the basis for interacting with your content on Apple Watch. Watch apps are accessible from the home screen and usually provide only a portion of the functionality of their containing iOS app. The purpose of a Watch app is to give the user quick but more in-depth access to app-related data.
The Watch app works in tandem with a corresponding WatchKit extension running on the user’s iPhone. The Watch app contains no custom code and is used only to store the storyboards and resource files associated with your user interface. The WatchKit extension is the brains of the operation. It contains the business logic and code you use to manage your content, respond to user interactions, and update your user interface. And because it runs on the user’s iPhone, the WatchKit extension can easily coordinate with your iOS app to gather location updates or perform other long-running tasks.
Learn how to make a Watch App, Tutorial: Building an Apple Watch App
Glances
A glance is a focused interface for presenting important information that the user needs right now. Glances are aptly named because they are intended to be looked at quickly by the user. Glances do not scroll, so the entire glance interface must fit on a single screen. Glances are read-only and cannot contain buttons, switches, or other interactive controls. Tapping a glance launches your Watch app.
The code for managing a glance resides in your WatchKit extension. The classes you use to manage your glance interface are the same ones you use for your Watch app. Even though the classes and basic behaviour are the same, a glance is simpler to implement because it does not respond to user interactions.
Learn how to make a Glance, Tutorial: Building an Apple Watch Glance
Actionable Notifications
Apple Watch works with its paired iPhone to display local and remote notifications. Initially, Apple Watch uses a minimal interface to display incoming notifications. When the user’s movement indicates a desire to see more information, the minimal interface changes to a more detailed interface displaying the contents of the notification. Apps can provide their own customized version of this detailed interface and add custom graphics or arrange the notification data differently than the default interface provided by the system.
Apple Watch supports the interactive notifications that were introduced in iOS 8. Interactive notifications are a way to add buttons to a notification that reflect immediate actions the user can take. For example, an incoming calendar event might include buttons to accept or reject a meeting invitation. When your iOS app registers support for interactive notifications, Apple Watch automatically adds appropriate buttons to both the custom and default notification interfaces. All you need to do is handle the actions selected by the user in your WatchKit extension.
Learn how to make a Dynamic Notification, Tutorial: Building an Apple Watch Notification
Getting Started with WatchKit video
Apple has made a great video to help us understand the architecture, the APIs available and how the interface works.
Development Resources
- Apple Watch Human Interface Guidelines
- Xcode 6.2 beta, including iOS 8.2 SDK with WatchKit
- iOS 8.2 beta in iOS Dev Center
- WatchKit Programming Guide
- WatchKit Framework Reference
- WatchKit Catalog: Using WatchKit Interface Elements
- Lister: A Productivity App (Obj-C and Swift)
- WatchKit Catalog: Using WatchKit Interface Elements