WatchKit Development Tips - ** updated 4/8 **

This thread has been locked by a moderator.

If you're looking for a few good tips when developing your WatchKit apps, you may be interested in this new page we put up:


https://developer.apple.com/watchkit/tips/


Additionally, be aware of the following:


There is a known issue where table row indices may not be what you’re anticipating and can cause incorrect rows to be updated or a crash.


When inserting and/or deleting rows alongside performing updates to existing rows, please insert and/or delete rows before you perform any updates to existing rows. This will ensure that the indices are correct when you attempt to update rows.


Update 4/7:

- For notifications (static and dynamic), the controller's background color should be set to 14% white and the insets should be set to custom values of 0 for all sides. This will give the intended system default look.


- If you are using openParentApplication:reply:, make sure you create a background task immediately upon entering application:handleWatchKitExtensionRequest:reply:. This will make sure that the iPhone app gets time in the background instead of being suspended again. Additionally, wrap the call to endBackgroundTask: in a dispatch_after of 2 seconds to ensure that the iPhone app has time to send the reply before being suspended again.


Update 4/8:

- For any WatchKit app that relies on the iPhone app getting continous background location updates, please read the WatchKit section of the iOS 8.3 Release Notes. Only raise the deployment target on the WatchKit extension. You will get an error if you attempt to raise it on the WatchKit app itself, but setting the deployment target of the extension will handle things properly.

Up vote post of Documentation Engineer
3.9k views