WatchKit编程指南:概览--开始为Apple Watch进行开发

suiling 2014-11-21 16:39:03 21917

本章节由CocoaChina翻译组成员星夜暮晨(博客)翻译自WatchKit Programming Guide:Overview--Developing for Apple Watch,敬请勘误。

重要

本文档是开发过程中使用的API或者技术的初步文档。苹果提供该文档以便于开发者使用苹果产品上使用技术和编程接口。后期该文档中信息会有所变动,所以依据本文档开发的软件应当使用最终的操作系统软件进行测试。该文档的新版本会进一步提供API或者技术的测试版。

Apple Watch为用户提供了一个私人的且不唐突的方式来访问信息。用户瞥一眼Apple Watch就可以获得许多重要的消息,而不用从口袋中掏出他们的iPhone。Apple Watch专用应用程序应尽可能地以最直接的方式提供最最相关的信息来简化交互。  

watch_apps_2x.png

Apple Watch的正常运行需要iPhone运行相关的第三方应用。创建第三方应用需要两个不同的可执行文件:在Apple Watch上运行的Watch应用,以及在用户iPhone上运行的WatchKit应用扩展。Watch应用只包含与应用程序的用户界面有关的storyboards和资源文件。WatchKit应用扩展则包含了用于管理、监听应用程序的用户界面以及响应用户交互的代码。借助这两种可执行程序,您可以在Apple Watch上运行不同类型的用户界面:

· Watch应用拥有iOS应用的完整用户界面。用户从主界面启动手表应用,来查看或处理数据。

· 使用glance界面以便在Watch应用上显示即时、相关的信息,该界面是可选的只读界面。并不是所有的Watch应用都需要使用glance界面,但是如果使用了它的话就可以让用户方便地访问iOS应用的数据。

· 自定义通知界面可以让您修改默认的本地或远程通知界面,并可以添加自定义图形,内容以及设置格式。自定义通知界面是可选的。

Watch应用需要尽可能实现Apple Watch提供的所有交互动作。由于Watch应用目的在于扩展iOS应用的功能,因此Watch应用和WatchKit应用扩展将被捆绑在一起,并且都会被打包进iOS应用包。如果用户有与iOS设备配对的Apple Watch,那么随着iOS应用的安装,系统将会提示用户安装相应的Watch应用。

创建Watch应用

Watch应用是在Apple Watch上交互的主体。Watch应用通常是从Apple Watch的主屏幕上访问,并且能够提供一部分关联iOS应用的功能。Watch应用的目的在于让用户快速浏览相关数据。

Watch应用与在用户iPhone上运行的WatchKit应用扩展协同工作,它不包含任何自定义代码,仅仅只是存储了故事板以及和用户界面相关联的资源文件。WatchKit应用扩展是实现这些操作的核心所在。它包含了页面逻辑以及用来管理内容的代码,实现用户操作响应,并且刷新用户界面。由于应用扩展是在用户的iPhone上运行,因此它能轻易地和iOS应用协同工作,比如说收集坐标位置或者执行其他长期运行任务。

要开始创建Watch应用,请参考:App Essential

创建Glance界面

Glance是一个展示即时重要信息的密集界面。glance中的内容应当言简意赅,因为其目的是让用户迅速地查看消息。Glance不支持滚动,因此整个glance界面只能在单个界面上显示,您需要保证它拥有合适的大小。glance只允许只读,因此不能包含按钮、开关,或者其它交互动作。点击glance则会直接启动您的Watch应用。

您需要在WatchKit应用扩展中添加管理glance的代码。用来管理glance界面的类与Watch应用的类相同。虽然如此,但是很明显glance更容易实现,因为其无需响应用户交互动作。

要开始创建glance界面,请参阅:Glance Essentials

自定义通知界面

Apple Watch能够和与之配对的iPhone协同工作,来显示本地或者远程通知。Apple Watch首先使用一个小窗口来显示进来的通知。当用户移动手腕希望看到更多的信息时,这个小窗口便会显示更详细的通知内容。应用可以提供详情界面的自定义版本,并且可以添加自定义图像或者改变系统默认的通知信息。

Apple Watch支持iOS 8中引入的交互式通知。交互式通知通过在通知上添加按钮来让用户立即做出回应。比如说,一个日历时间通知可能会包含了接收或拒绝某个会议邀请的按钮。只要你的iOS 应用支持交互式通知,那么Apple Watch就会自行向自定义或默认通知界面上添加合适的按钮。你所需要做的只是在WatchKit应用扩展中处理这些事件而已。

想要创建一个自定义通知界面,请参看:Notification Essentials.