APPLE WATCH 中文手册:Apple Watch应用程序的体系结构

Apple Watch应用程序包含两个部分:Watch应用和WatchKit应用扩展。Watch应用驻留在用户的Apple Watch中,只含有故事板和资源文件,要注意它并不包含任何代码。而WatchKit应用扩展驻留在用户的iPhone上(在关联的iOS应用当中),含有相应的代码和管理Watch应用界面的资源文件。

当用户开始与Watch应用交互时,Apple Watch将会寻找一个合适的故事板场景来显示。它根据用户是否在查看应用的glance界面,是否在查看通知,或者是否在浏览应用的主界面等行为来选择相应的场景。选择完场景后,Watch OS将通知配对的iPhone启动WatchKit应用扩展,并加载相应对象的运行界面。所有的消息交流都在后台进行。

图3-1 Watch应用和WatchKit应用扩展之间的通信:

1416556608821788

您Watch应用的构建模块是界面控制器,它是 WKInterfaceController 类的实例。WatchKit中的界面控制器用来模拟iOS中的视图控制器:它显示、管理屏幕上的内容,并且响应用户交互。

如果用户直接启动您的应用,系统将从主故事板文件中加载初始界面控制器。根据用户的交互,您可以显示其他界面控制器以让用户得到需要的信息。如何显示额外的界面控制器取决于您应用所使用的界面样式。WatchKit支持基于页面的风格以及基于层次的风格。这两个风格不能共存的,要了解更多信息,请参阅:Interface Styles.

提示:Glances和通知只会显示一个包含相关信息的界面控制器。用户与界面控制器的交互操作会展示应用的主界面。要了解glance的生命周期,请参阅The Glance Life Cycle。要了解通知界面控制器的生命周期,请参阅:Notification Essentials.

Watch应用的生命周期

Apple Watch上的用户交互将启动您的应用并驱动其生命周期。当用户在Apple Watch上运行您的应用时,用户的iPhone会自行启动相应的WatchKit应用扩展。通过一系列的信号交换,Watch应用和Watch应用扩展将互相连接,因此消息能够在二者之间流通,直到用户停止与应用进行交互为止。此时,iOS将暂停应用扩展的运行。

随着启动序列的运行,WatchKit自动为当前界面创建相应的界面控制器。如果用户正在查看glance,WatchKit创建出来的界面控制器将与glance相连接。如果用户直接启动您的应用,WatchKit将从应用的主故事板文件中加载初始界面控制器。无论哪种情况,WatchKit应用扩展都提供一个名为WKInterfaceController的子类来管理相应的界面。

界面控制器对象初始化后,您就应当为其准备显示相应的界面。图3-2展示了Watch应用的启动序列。当应用启动时,WatchKit框架自行创建了相应的`WKInterfaceController`对象并调用initWithContext:方法。使用该方法来初始化界面控制器,然后加载所需的数据,最后设置所有界面对象的值。对主界面控制器来说,初始化方法紧接着willActivate方法运行,以让您知道界面已显示在屏幕上。

图3-2 启动Watch应用

1416557330222678

当用户在Apple Watch上与应用进行交互时,WatchKit应用扩展将保持运行。如果用户明确退出应用或者停止与Apple Watch进行交互,那么iOS将停用当前界面控制器,并暂停应用扩展的运行,如图3-3所示。与Apple Watch的互动是非常短暂的,因此这几个步骤都有可能在数秒之间发生。所以,界面控制器应当尽可能简单,并且不要运行长时任务。重点应当放在读取和显示用户想要的信息上来。

图3-3 界面控制器的生命周期

1416557358195047

应用生命周期中各阶段需执行不同的任务

在应用生命周期的不同阶段,iOS将会调用WKInterfaceController对象的相关方法来让您做出相应的操作。表3-1列出了大部分您应当在界面控制器中声明的主要方法。

Table 3-1:WKInterfaceController`的主要方法

方法 要执行的任务
initWithContext: 这个方法用来准备显示界面。借助它来加载数据,以及更新标签、图像和其他在故事板场景上的界面对象。
willActivate 这个方法可以让您知道该界面是否对用户可视。借助它来更新界面对象,以及完成相应的任务,完成任务只能在界面可视时使用。
didDeactivate 使用didDeactivate方法来执行所有的清理任务。例如,使用此方法来废止计时器、停止动画或者停止视频流内容的传输。您不能在这个方法中设置界面控制器对象的值,在本方法被调用之后到willActivate方法再次被调用之前,任何更改界面对象的企图都是被忽略的。

除了在表3-1中列出的方法,WatchKit同样也调用了界面控制器的自定义动作方法来响应用户操作。您可以基于用户界面来定义这些动作方法。例如,你可能会使用动作方法来响应单击按钮、跟踪开关或滑条值的变化,或者响应表视图中单元格的选择。对于表视图来说,您同样也可以用table:didSelectRowAtIndex:而不是动作方法来跟踪单元格的选择。用好这些动作方法来执行任务并更新Watch应用的用户界面。

提示:Glances不支持动作方法。单击应用glance始终会启动应用。

与Containing iOS应用共享数据

如果您的iOS应用和WatchKit应用扩展都依赖于相同的数据,那么您可以使用共享程序组来存储数据。共享程序组是一个位于本地文件系统的区域,应用扩展和应用都能够访问。由于两个程序在不同的沙箱环境中运行,它们一般情况下都不与对方共享文件和进行通信。共享程序组让共享数据成为可能。你可以使用这个空间来存储共享的数据文件或者在两个程序间交换消息。

您可以在iOS应用和WatchKit应用扩展中的Capabilities选项卡中启动共享程序组。激活这项功能后,Xcode将会为每个对象添加授权文件(需要的话),并给那个文件添加com.apple.security.application-groups授权。要共享数据,这两个对象必须选择相同的共享程序组。

程序运行时,您可以通过在共享容器目录中读写文件以在两个程序间共享数据。要访问容器,请使用NSFileManager中的containerURLForSecurityApplicationGroupIdentifier:方法来接收该目录的根路径。使用方法返回的URL来枚举目录内容或者在目录中为文件创建新的URL。

重要:请始终在共享容器目录中使用文件演示器和协调器来访问文件。文件演示器和协调器允许对文件和目录进行同步访问。没有它们,您的WatchKit应用扩展和iOS程序可能会相互冲突并毁坏共享的文件。有关如何使用文件演示器和协调器的信息,请参阅:File System Programming Guide

原创文章,作者:ioued,如若转载,请注明出处:https://www.iamue.com/6220/

(0)
iouedioued
上一篇 2015-06-15 09:31
下一篇 2015-06-15

相关推荐

  • 交互设计师必须知道的五大交互设计流程

    交互设计又称互动设计,从用户角度来说,交互设计是一种如何让产品易用,有效而让人愉悦的技术,它致力于了解目标用户和他们的期望,了解用户在同产品交互时彼此的行为,了解“人”本身的心理和行为特点。同时,还包括了解各种有效的交互方式,并对它们进行增强和扩充,交互设计还涉及到多个学科,以及和多领域多背景人员的沟通。其实,交互设计需要做的事情也不是一成不变的,它会随每个交互设计师的工作内容差异而不同,具体到每个项目也会有区别。下面我就在马海祥博客上...

    微信热点 2018-03-16
  • 解析「交互设计七大定律」在设计中的应用(上篇)

    交互设计之父阿兰·库珀说过这样一句话:“除非有更好的选择,否则就遵从标准”;在交互设计领域中,有很多被时间和前人验证过的设计法则,这些法则是从用户的行为逻辑中总结出来的,掌握这些法则能让我们迅速有效的完成自己的设计,接下来,笔者通过一些实例来解析下这些原则在设计中的应用~由于文章有点长,影响阅读体验,本文将分为上下两篇来发~一费茨定律(Fitts’ Law)1、费茨定律(Fitts’ Law)简介费茨定律是由保罗·费茨(Paul M. ...

    2018-02-03
  • 用户体验是玄学吗?

    恍恍惚惚又是一年年底。又到了设计师们的“季节性迷茫期”,最近我的公众号后台经常接到好多朋友的信息,自己行间透露着迷茫和不自信。大的趋势和节奏还是和去年一样,有些视觉设计师询问我如何转UI,有些UI设计师问我如何才能培养产品思维…其实大家都在迷茫,在这里我想分享一个用户体验相关的综述给大家,希望能对大家找准自家的定位有帮助。我最初是一名UI/视觉设计师,然后随着一步一步的发展,给自己的目标也在发生变化,我现阶段给自己的最终定位是成为一名用...

    2018-02-06
  • 【用户体验.春节特辑】理清儿时的记忆 找回逝去的情感(总第270期)

    亦可访问www.koushutianxia.com了解详情编家谱   修家史   留视频建祠堂   亲互动   传万代总第270期生活在这样一个时代,人们追求物质、追求理想、追求个性……而不去回望来路,不去寻求亲情和血缘所带来的归属感。“游子的情怀”和“漂泊的现境”总是让我们不由自主的追问自己:是否我们必须要失去我们最宝贵的东西才能实现自己的人生目标,我们实现自己的人生目标到底又是为了什么?我出生在安徽的一个小城里,由于父母工作繁忙,我...

    2018-02-21
  • 防火防盗防父母:95后隐私观报告

    今天,结合QQ大数据以及对95后的采访,我们共享一份有趣的——《95后迷之隐私观报告》。 来,看看95后们是如何“防火防盗防父母,相爱相杀为自由”: 看来,95后对家长的怨念,收集起来都可以发电了。但魔高一尺,道高…

    2016-05-09
  • 基于数据的可用性研究

    小编语:这是一篇关于交互设计与可用性研究的古老的文章,今天小编翻出来给新交互师们看一下~ Thomas Baekdal在The Battle Between Usability and User-Experience中提到,可用性较高的产品并不一定带来好的用户体…

    2015-01-24
  • 招聘 | 年薪百万不是梦,八爪鱼一大波高薪职位与伯乐奖在等你

    八爪鱼又开始招人啦如果你对大数据充满热情技术与才华兼并就赶快行动吧行业销售总监(政企)企)N15k-30k /深圳 / 经验3-5年 / 本科及以上 / 全职>>>岗位职责:基于公司的大数据产品、资源和技术,面向企业/政府等客户,提供数据采集软件、数据分析产品,数据服务,大数据解决方案等产品或服务;销售团队的人员招聘,管理及考核淘汰工作;完成客户需求的挖掘,商务谈判,项目回款工作;负责外部销售渠道和资源的对接,开发与维护;配合市场运营部...

    2018-03-15
  • 和几位牛逼的设计师聊了聊“理想雇主”这件事,还有些别的故事...

    互联网领域的设计师们更像是一群“走钢丝的人”:游走在逻辑和审美之间,游走在说服和被说服之间,游走在PM、开发和大BOSS之间,试图最终达到各方的平衡和实现最有效的解决方案。

    2016-06-20
  • 千万级用户的视频体验,我们是这么做的

    如今app的更新迭代速度很快,因此无论在视觉审美还是交互功能上都有新的趋势和风格。乐视视频原有的ui设计风格已经无法跟上目标客户群的审美变化,且在功能上较难满足用户预期,因此需要在整体视觉和产品功能上进行相应的美化和完善,使我们的视频产品无论从视觉还是功能上都能够在给予老用户新鲜感的同时吸引更多的目标用户。

    2017-05-26
  • 线上与线下零售体验设计分析

    本文作者将结合自己对线上与线下零售的实际体验,与你交流用户体验设计策略相同之处,提升融通思维的洞察力。本文行文思路如下:
    1、用户流量
    2、停留时间
    3、回访频次
    4、客单价
    5、盈利模式
    6、总结

    2017-04-29