I decided to test the Apple Watch waters by adding WatchKit support to my app Time Until. Time Until is a simple app that let’s you track how long it is until an event happens. You can track how long it is until Christmas or your spouses birthday, for instance. I thought it would be a good test app to learn the basics of WatchKit and the app submission process.
I decided to price the app at $2.99. If it were a more complex app, I would have started at $4.99. I don’t think anyone has a good idea of how well apps that have the WatchKit extension will do. I could see a nice bump in sales or nothing. I’m sure whatever I do, I’ll feel like I left money on the table.
What I Learned
- The WatchKit extension does not share the same NSUserDefaults as the base app. You will have to make a shared NSUserDefaults group. You do this in ‘App Groups’ in the capabilities section of you target. Xcode will automatically create the group and handle the entitlements. Here’s a nice stack overflow response I found.
- You don’t have to have a ‘Glance Interface’ if your app doesn’t need it. Time Until just needs a table view with a refresh button, so I only implemented the ‘Home Interface’ view controller. At first I thought I would have to have a glance interface too, so it was nice to find documentation that I didn’t need that.
- When you add the WatchKit extension, you will probably have a few classes or third party frameworks you want to share. Just like all different targets, you have to link them in the build phases tab of the WatchKit extension for the class to be available to your WatchKit extension.
- If your icon has much detail, you are going to want to create a simpler version for the WatchKit extension. It will also use a different asset catalog. See the link below for more details.
- You will need a screenshot for iTunes Connect. You can save screenshots the same way as you do in the regular simulator. Command-S
Apple has a nice landing page for preparing your app for submission. I ran into your typical Xcode validation errors regarding icon sizes, etc. Other than those frustrations, adding the extension was mostly painless and didn’t take much time.