Apps built for Apple Watch consist of two parts: a WatchKit app and a WatchKit extension. The WatchKit app resides on the user’s Apple Watch and contains your storyboard and resource files but no code. The WatchKit extension resides on the user’s iPhone (inside your containing iOS app) and contains the code and resource files for managing your WatchKit app’s interface.
The WatchKit app and WatchKit extension work in tandem to implement your app’s interface. When the user interacts with your app on Apple Watch, your WatchKit app chooses the appropriate scene from your storyboards to handle that interaction. For example, if the user views your app’s glance, it chooses your glance scene. After choosing the scene, WatchKit tells the paired iPhone to launch your WatchKit extension and create the objects needed to manage that scene. When the scene is fully configured, it is displayed on Apple Watch. The transfer of information between the WatchKit app and WatchKit extension happens transparently behind the scenes.
Each scene is managed by a single interface controller object, which is an instance of the WKInterfaceController class. An interface controller in WatchKit serves the same purpose as a view controller in iOS: it presents and manages content on the screen and responds to user interactions with that content. Unlike a view controller, an interface controller does not manage the actual views of your interface. Those views are managed for you behind the scenes by WatchKit.
WatchKit App Architecture
WatchKit App Life Cycle
WatchKit apps typically contain multiple interface controllers, where each interface controller displays a different type of information. Because only one interface controller at a time is displayed onscreen, an app presents new interface controllers in response to user actions. Apps can present interface controllers modally. The navigation style of an app also determines how interface controllers are presented.