Swift, Swift, Apple Watch, Limits

I’m building an app with Swift 3 and running on Apple Watch. It’s been so much fun and a great way to dive deeper into some of the specifics of watchOS SDK. Also, a great way to improve my Swift 3 knowledge.

Since the app isn’t finished and I don’t have a permission to talk about the code, I will leave that part for some other time. Today, I would like to write about my experiences managing the project, working with watchOS 3 and testing the code on a device.

  • Before you commit to a feature, check the limits of the watchOS SDK. It doesn’t matter that it might sound basic or if features like that already exist on iPhones. WatchOS is a different story and there are lots of limits you need to be aware of. Read the documentation before writing code.
  • Writing apps for watchOS is slow. Allow yourself at least twice as much time as you normally would for iOS testing and debugging.
  • I’ve lost the whole day trying to debug code on a watch and nothing worked. If possible, keep testing the app on the simulator. If you have to test it on a watch, be aware of the fact that you might need to reset your watch from time to time.
  • Keep in mind that Apple Watch is a companion to the iOS app. It means two things. First of all, most tasks (entering data, signing in, enabling features, etc.) should be done on a phone. Secondly, you will need to build a robust iOS app in order for your Watch app to be functional. That means that the time and the effort you need doubles.
  • Be aware of changes and obstacles. Remember that you’re working with a maturing platform and using a language that might slightly change in a few months. SDK’s available for watchOS 3.2 might not be there on the next version of the platform. Also, current limits might be lifted by a new SDK.

Last but not least, keep releasing builds. Like with any other platform, it is easy to focus on bugs and limitations without getting enough feedback about the overall direction. This is something I’m definitely guilty of.

Leave a Reply

Your email address will not be published. Required fields are marked *