Getting started with building a WatchKit app for Apple Watch

Over the last week or so, I took a deep dive into building my own standalone WatchKit app for Apple Watch. Here are some of the things I’ve learned.

If you’re already building iOS apps, taking the dive into building a standalone WatchKit app is really straightforward with the help of SwiftUI. Apple has done a great job of giving developers the tools to integrate a WatchKit app into their existing iOS app, or create a new standalone WatchKit app from scratch, it’s as easy as creating a new project in Xcode, and you’re off to the races!

After choosing a template for your project, you’re presented with a .xcodeproj with two folders, a “WatchKit App” folder and a “WatchKit Extension” folder. All of the code for the project template is contained in the “WatchKit Extension” folder, this is described in more depth in Apple’s documentation but the separation is defined as follows.

Xcode divides the watchOS app into two sections:

WatchKit App

An app bundle that contains your watchOS app’s storyboard and any assets used by the storyboard.

WatchKit Extension

An extension that contains your watchOS app’s code.

After you’ve generated a project template, make sure to also be aware of how the bundle IDs for the project are handled.

Xcode sets the bundle IDs for both of the watch targets based on the container’s ID. For a watch-only app, this ID is the bundle ID for the root target. For a watchOS app with an iOS app, this ID is the iOS app’s bundle ID. The root of the WatchKit app and WatchKit extension’s bundle IDs must match the container’s bundle ID. If you change your iOS app’s bundle ID, you must update the other bundle IDs accordingly.

Your “WatchKit App” folder will only contain one file to start, and might only ever contain one file and that is the app’s Assets folder. This Assets folder is used to define the app’s AccentColor as well as the AppIcon.

Your “WatchKit Extension” folder will look very familiar if you’ve built apps with SwiftUI before, as it gives you a ContentView.swift, WatchKitApp.swift, ComplicationController.swift, Assets, and Info.plist.

From here, you can literally build out your WatchKit app as you would any other SwiftUI app, like I said, it is extremely easy to get started with this type of project. To build and run your app, simply select a Apple Watch device from the simulator options that you would like to run your app on and press play! To run your app on a real device, connect an iPhone that is paried to an Apple Watch and select it from the device menu list.

Where things start to differ, is when watch Complications get introduced, to learn more about Complications, checkout my beginner’s guide to understanding WatchKit Complications!

Check out the WatchKit app I built: Ignis - Fuel Price Tracker on the app store!


Charles Fager

Charles is the founder and lead developer at Norfare. He spends his days working as a fulltime developer, and enjoys working on new app concepts with Swift. He is also an avid gamer.

Read More