With such a huge international frenzy around Apple Watch, it is certainly early days for iOS developers like me. However with my endeavor to stay ahead of the learning curve, I have done a fair bit of tinkering with aspects related to development for Apple Watch. My thoughts are that it is not very different from standard iOS app development except for an additional layer of integrating the watch with an Apple Device (iPhone iOS8 and above). Here are my initial thoughts on the development aspect around Apple Watch.
The first thing to know is that you need two SDKs that are bundled together –
WatchKit app (to process the Apple Watch app functionality) – Contains the layout and resource file used with the app
WatchKit Extension (that utilizes the resources of iPhone) – Contains the code to integrate iPhone responses to Apple Watch’s triggers
These extend the functionalities and user interface of iPhone on to the watch. Two types of user interfaces are possible with these bundles –
Full functionality – Users can access the full range of functionalities and navigation just like a standard app
Read-only functionality – Much like a regular notification or alert, the read-only functionality named ‘glance’ provides a glimpse of timely updates and information from the app.
This app resides on the watch’s home screen and facilitates a medium to interact with the main app stored on the iPhone and paired with the watch. It has the ability to display full data or subset of the data depending on the programming. While the WatchKit app is the ‘face’ of the watch, the WatchKit extension is the ‘brain’ of the watch. It contains the program to control content and multimedia, and give apt response to a particular trigger or user action.
This is an exciting Apple Watch-only user interface presented keeping in mind the small screen space. These ‘glances’ fit the screen and aren’t navigable. They cannot be scrolled and do not have any buttons, menus or switches. Tapping a glance will bring up the WatchKit app that you can use for further action.
The main thing to note from a development point of view is that instead of using separate executables, the ‘glance’ functionality can be crafted inside the WatchKit app and extension development space. With help of the same classes or methods, you can create a glance as well as a WatchKit app.
Another interesting area is the ease with which custom interfaces can be built for local as well as remote notifications on Apple Watch paired with an iPhone. While initially any notification starts off as a one line brief glimpse, on user action, it can expand to display further information. You get to customize the interface to add graphics, change the details appearing in the notifications or even give it a look distinct from the full app interface of iPhone.
Apple Watch offers in-built actionable notification support through iOS8. This will help us developers to create buttons depicting possible set of actions on the interface. For example, a notification for a vote can have a ‘Vote For’ and ‘Vote Against’ button. With automatic support on actionable notifications, you can get appropriate buttons added to your app’s interface with help of the WatchKit extension.
To conclude, the development landscape is in a pretty nascent stage for wearable technology. However, I am pretty sure these pointers will provide a good starting point in the world of developing for Apple Watch.