watchOS app开发概论
watchOS app功能
- Glance:快速浏览页面,手势上滑拉出(3之后废弃了)
- Complication:复杂功能,也就是在表盘上为自己的app添加入口
- Notification:通知,当iPhone锁屏时,接收push
- watchOS app:运行在watch上的应用
通常我们使用手表是为了获取最关心的内容,所以在设计时注意一下几点
1、设计的功能应该是单个任务,因为用户抬起手腕看手表,是想获取最关心的某项信息
2、功能应该是可以快速交互,因为watch的互动是以秒为单位,必须迅速呈现信息
3、watch上的功能应该具有独立性,独立的watch应该不依赖iphone app,在watchOS 6之后,可以设计一个仅在Apple Watch上可用的app,也可以设计一个可以(但不需要)您的iPhone应用程序的应用程序。
一、watchOS project的类别
-
仅在watchOS上运行的独立watchOS app
用户可以选择是否安装iOS app、watchOS app或者两个都安装,对于如果创建独立的watchOS app以及如果将现有的依赖iOS的watchOS app转换为独立的watchOS app可以参考此官方链接
-
依赖iOS补充 app的依赖watchOS app
此类型的watchOS app需要和iOS app有互动时才会创建,它只有依赖iOS app才可以正常运行,但是watchOS 5之前,所有的watchOS app都是依赖watchOS app,watchOS 6.2之后,带有watchOS app的iOS app在app store上下载安装是通用的,创建依赖iOS app的watchOS app参考此官方链接
1、仅在watchOS上运行的独立watchOS app
具体的创建参考此官方链接,独立的watchOS app的bundle ID是自己独立的ID
2、依赖iOS补充 app的依赖watchOS app
具体的创建参考此官方链接,下面我们看一下工程结构,创建好之后的包含watchOS app和iOS app的工程的工程结构如图所示
我们可以看到此时工程结构基本分成三部分
- iOS app:就是运行在我们iPhone上的app,包含主app的业务功能
- watchKit App:包含watchOS app的storyBoard和其assets的资源包(bundle)
- watchKit Extension:包含watch app的代码,可以看到xcode自动创建的interface、notification和complication的相关文件就放在这块
watchKit App和watchKit Extension的bundle ID必须和依赖iOS App的bundle ID,和其匹配。开发是在watchKit app中编辑storyboard,并且在watchKit extension中开发代码
二、watchOS App的架构
无论独立的watchOS App还是依赖iOS App的watchOS app,watchOS app都包含watchKit App和watchKit Extension,watchKit App安装在watch上,负责展示页面,watchKit Extension安装在iphone上负责业务逻辑,二者通过watchKit通讯,如下图所示。当用户安装并打开watchOS app,watchKit app加载storyBoard展示watchOS app的相关页面,同时向iOS app请求启动watchKit extension,完成相应的业务逻辑,具体流程参考下图
三、watchOS app功能开发概论
现在watchOS app包含的功能有Glance(3之后删除)、notification、complication,下面我们看一下开发notification、complication功能的相关知识
1、complication(复杂功能)开发的相关知识
complications可以使我们在watch的表盘增加自己watchOS app的入口,但是空间有限且尽可能覆盖不同类型的表盘,创建complications可参考官方文档,在创建watchOS app时勾选complication,xcode将创建并且配置complication的数据源,数据源包括配置complication的基本的.h/.m文件、填充timeline、提供占位的资源以及创建compliction使用的assets,为complications添加占位资源可参考官方文档,可以使用静态方式添加也可以使用动态方式添加
2、notification
notification有两种展现形式:short looks和long looks,short looks接收到notificatiion时手腕抬起显示,手腕放下消失;long looks显示有两种情况,一种是用户看到short looks时手腕一直抬起,long looks将展示;另一种是用户点击short looks。
notification的展示界面有两种:static界面和dynamic界面,static界面仅展示通知内容和图像,dynamic界面可以展示丰富内容。开发者可根据需求自定义这两种界面的content区域(不能改变界面的结构),这两种界面的载入模式如下图
了解界面的种类之后,我们需要了解watch的页面的生命周期,如下图
参考:https://www.cnblogs.com/zy1987/p/4352548.html