Best Practices for developing on the Apple Watch

With the release of the Apple Watch just around the corner, and developers frantically working to get their apps ready in time for the launch, Apple have released their best practices guidelines toward getting the best out of your apps and of course the watch. The main theme throughout the guidelines is to ensure that the longer-running background tasks are done on the iPhone and not on the Watch. 

Don't bug users with meaningless notifications

Whether it's on the watch or iPhone, make proper use of proper notification etiquette and only send contextual, personalized notifications, whilst allowing the user a convenient way of turning off notifications, or calibrating the types of notifications received. This will allow users to expect only notifications they would appreciate, rather than turning off your notifications completely, or even deleting your app as a consequence.  

Delegate Tasks to the Phone

The limited capacity of the Apple Watch battery means you should be a good developer citizen and defer all long-running background tasks to the iPhone, using the openParentApplication:reply method, returning the data to your WatchKit when needed, intelligently. 

Handoff is Your Best Friend

The Handoff feature should be utilized extensively, to deep link from a glance on the watch to a contextual part of your app, rather than to the root. This provides a greater UX experience for users, which would encourage them to continually switch between their watch and phone.

Lazily Load Content and Update Precisely

To present a more optimized experience for your users, with greater responsiveness, load content lazily when needed, rather than the entire content. That is, don't load what isn't going to be displayed immediately on the device's screen. Also, you should't be updating the entire screen but rather only values that have changed. In a table view, only update the table rows that have changed rather than spend resources updating the entire table.

Assets and Images should be stored on Watch

Whether you are animating a sequence of images, or simply presenting static images, pre-bake them into the Watchkit app bundle or image cache to be stored at compile-time, allowing you to call and load them when needed. Better yet, try and reduce the number of images you need for your sequence of animations, to make the visualization snappier.