App扩展
App扩展增加了你app的延伸,让用户在使用其他app时可以关注你app的部分功能。比如说,挡在Safari中查看网页时,人们可以使用你的分享扩展来将一个图片或者文章贴到你的社交网站。或者当使用照片时,人们也许会使用你的图片编辑扩展来给图片加滤镜。(在这种情况下,Safari和照片称为host app,因为他们给了用户扩展的链接。)
你提交应用到App Store时交付了一个app扩展功能齐全的iOS app(一个包含扩展的app称为包容性app——containing app)。在你的包容性app中添加扩展以后,人们可以在使用其他app时通过扩展执行快速任务。比如说,当在邮件中阅读一个商品时,人们也许会使用你的动作扩展来添加一个商品到购物清单中去而不用离开邮件。
表22-1列出来很多你可以创建的iOS app扩展
表22-1 app扩展类型
app扩展类型 | 人们使用扩展来 |
---|---|
桌面日历 | 在通知中心的日历视图中获取快速更新或者执行快速任务 |
分享 | 将网页或者内容分享给他人 |
动作 | 在其他app环境下操作或者查看内容 |
图片编辑 | 通过图片aoo编辑图片或者视频 |
文档提供者 | 连接并管理一个文件仓库 |
自定义键盘 | 使用自定义的键盘代替iOS系统键盘 |
下面的指南对所有类型的app扩展都适用;对于每种app扩展类型各自的指南,查看下面的章节。(查看App Extension Programming Guide学习如何开发、调试和发布一个扩展。)
完成简单的任务。app扩展不是你app的迷你版本。相反,扩展执行用户大目标下的一个小任务。比如说,一个动作扩展也许会给用户一个不同的方式去查看他们当前的内容。
保持用户交互有限且直接。最好的app扩展让用户只通过很少的点击来执行任务,这样他们就可以尽可能快地回到之前的环境。比如说,一个分享扩展也许会让人们通过一次简单的点击就发布一张图片。
将你包容性app的名字包含到每一个它提供的扩展的名字中去。即使包容性app中的多个扩展都应该有唯一的名字,你也希望确保用户理解你的扩展和你的app的关系。人们会在很多不同的环境遇到扩展,并且他们不会信任他们不能识别的而扩展。
在绝大多数情况下,使用包容性app的图标。使用一个熟悉的图片是另一种扩展获取用户信任的方式。注意对于动作扩展,要创建一个单色版的app图标(查看Share and Action Extensions获取细节)。
重点
当你设计图标和图片时,不要复制iOS的图片或图片,也不要创建苹果产品和设计相关的图片。
不要在扩展的顶层显示modal视图。很多扩展默认以modal视图来显示,最好避免绘制modal视图。即使有些例子中用户会在扩展的顶层看到一个警告框视图,也要避免设计一个需要modal视图的扩展工作流。
“今天”小部件
人们在通知中心的“今天”区域查看“今天”小部件。因为人们会设置今天区域,所以这里显示的是他们最关心的信息,以在用户最重要的条目中占领一席之地为目标设计你的小部件。
设计看起来与通知中心相协调的外观。当你使用通知中心提供的默认的边界和背景样式时,你的今天小部件就会给用户一种一致的体验。为了获得最好的结果,集中精力于绘制你的内容而不是背景或别的什么。尤其避免绘制一个立体的背景。
NOTE
iOS会自动在你自定义的小部件上方显示你app的图标和标题(图标会显示在前缘空白)。
使内容与小部件标题对齐。当你的小部件与你的标题对齐时,人们可以简单地浏览他们想要的小部件的今天视图。遵循今天视图的边界,并且约束你显示在小部件内容区域的内容。
一般来说,使用白色的系统字体来显示文字。白色文字在通知中心的默认背景下显示的很好。对于次级文本,使用系统提供的活力外观(查看notificationCenterVibrancyEffect学习关于这种外观的更多内容)。
提供通知中心的体验。人们访问通知中心来获取简单的更新或者执行一个非常简单的任务,所以你的今天小部件最好显示正确数量的信息以及有限的交互,尤其是:
- 不要让用户滚动或者垂直转移视图来查看你的今天小部件的所有信息。小部件可以垂直扩展来显示更多信息,但小部件的高度超过通知中心的高度并不是一个好的体验,因为这使得查看其它今天小部件被滚动干扰了。
- 不要实现水平的点击或者拖拽,因为这和通知中心区域的导航冲突了。
- 尽可能地让用户通过一次点击就可以执行任务或者打开你的app(注意键盘在今天小部件是不能获取的)。
- 优化性能使用户可以立即获取有用的信息。缓存信息到本地是个好主意,这样你就可以在你更新的时候显示最近的信息。人们期待在今天视图中花费非常少的时间,而且iOS会终止那些不经常使用内存的今天小部件。