大牛解读: WatchKit 应用程序要点

移动开发 iOS
WatchKit 应用程序是一个运行在 Apple Watch 中的可执行文件。它包括 storyboard 和渲染屏幕时所需的资源文件。

[[152797]]

WatchKit 应用程序架构

WatchKit 应用程序是一个运行在 Apple Watch 中的可执行文件。它包括 storyboard 和渲染屏幕时所需的资源文件。

 

WatchKit 扩展则是运行在 iPhone 上的可执行文件。包括管理应用程序界面的逻辑代码,以及处理用户的交互操作。

 

为了程序界面的正常使用,这两部分需要一起运行。用户与应用程序交互的典型步骤如下:

用户与 WatchKit 应用程序交互。

 

WatchKit 应用程序分析交互情况,并选择将被管理的 storyboard。

 

WatchKit 与 iPhone 通讯,以运行 WatchKit 扩展。

 

WatchKit 扩展初始化并创建需要提供给 WatchKit 应用程序 storyboard 使用的对象。

 

Storyboard 根据 WatchKit 扩展创建的对象,生成 scene,并将其显示到 Apple Watch 中。

 

WatchKit 应用程序和 WatchKit 将会共享一些信息,直到用户停止使用 WatchKit 应用程序。此时,iOS 将使 WatchKit 扩展休眠,直到有新的用户交互。

 

下面的这个图演示了这个流程:

 

上图中有个重要的概念就是 storyboard 响应用户的操作并配置需要显示的屏幕内容的方法。这归功于 interface controller对象 (WKInterfaceController的实例),相当于 iOS 中的 view controller。

与 view controller 不同的是 interface controller 不管理屏幕中实际的 view,WatchKit 以透明的方式对 view 进行处理。一般,一个 WatchKit 应用程序会有多个 interface controller,用来显示不同的数据类型,只不过同时只显示一个罢了。

 

WatchKit 应用程序的生命周期

 

一个 WatchKit 应用程序的启动方式有 3 种:

用户点击 Apple Watch 主屏幕上的图标。

 

用户与应用程序的 glance 交互。

 

用户与通知交互。

 

上面的每种方式都将初始化 WatchKit 应用程序和 WatchKit 扩展。根据上面不同的启动方式,WatchKit 会利用相应的 storyboard 加载 scene,并请求 WatchKit 扩展初始化相应的 interface controller。

下面的图演示了相关过程:

 

如图所示,在用户界面中,interface controller 对象管理着相关交互。当用户与 Apple Watch 上的应用程序交互时,WatchKit 扩展会运行。一旦用户停止交互或者从程序中退出,iOS 将关闭当前的 interface controller,并休眠扩展。在用户和 Apple Watch 之间,这样的交互方式非常简洁,interface controller 应该是轻量级的,并且快速的执行任务。

下面的图演示了相关过程:

 

责任编辑:chenqingxiang 来源: 破船之家
相关推荐

2010-02-22 15:49:35

Python应用程序

2010-02-04 09:41:03

Android应用程序

2010-02-26 09:55:22

Python应用程序

2010-01-25 10:57:57

Android系统应用

2023-02-01 09:32:50

2012-06-07 09:15:14

ibmdw

2012-05-29 10:04:08

2010-07-15 11:34:13

应用虚拟化桌面虚拟化基础架构

2022-04-06 21:29:44

边缘计算数据存储数据中心

2022-01-06 08:00:00

深度学习WebHeroku

2009-07-16 17:09:02

Swing应用程序

2012-02-15 13:26:56

IndexedDB

2011-07-21 10:47:37

iPhone Cocoa 委托

2013-11-19 15:35:01

2011-11-03 09:41:35

Android签名安全性

2011-08-08 13:35:50

Web应用WANWeb应用程序

2012-02-08 15:06:31

ibmdw

2010-05-20 09:48:36

2009-07-17 10:42:06

Swing应用程序处理函数

2009-07-29 15:15:31

ASP应用程序
点赞
收藏

51CTO技术栈公众号