APP扩展提高你的影响力 -- iOS8/OS X v10.10应用扩展编程指南

重要提示:
这个文档只是一个使用API或了解技术的初级文档。Apple提供该文档的目的在于能让开发者尽快熟悉新技术和新的API,用于开发者针对其持有的设备进行开发。但是该文档会不断的更新,因为目前较新的技术和语言还在不断的完善,所以使用该文档提供的技术开发的软件不一定是最终的操作系统所能完全支持的,要时刻关注该文档的更新,以便了解新的API和技术特性。

当iOS8.0和OS X v10.10来临后,一个全新的概念出现在我们眼前,那就是应用扩展。顾名思义,应用扩展允许开发者对应用的功能进行扩展,究其根本的作用就是通过应用扩展能够让用户在使用别的应用时可以快速便捷的了解该应用的相关信息。你可以开发一个应用扩展,用来执行某些特定的任务,当用户使用该扩展后就可以在各种情况下去执行该任务。比如说,你开发了一款分享应用扩展,他可以让用户快速的将当前浏览的内容分享到你的社区网站。再比如说,你开发了一款实时显示比赛当前分数的扩展,那么用户就可以在通知中心的当天通知中看到比赛比分。你甚至可以开发一款自定义的键盘,可以让用户用它来替代系统自带的键盘。

应用扩展的类型

iOS和OS X定义了几种应用扩展的类型,每一种类型的扩展都对应系统中一块展示区域,像分享、通知中心、键盘等。我们把这些区域成为扩展点。当你开发某一个扩展点的应用扩展时,都有相对应的API以及要遵循的策略。还要注意的一点是,当你针某个扩展点开发应用扩展时,该应用扩展的功能必须要符合该扩展点的功能特性。

表1-1列出了iOS和OS X中的扩展点,并列举了对应扩展点的应用示例。


































扩展点 应用扩展示例
今日通知(iOS和OS X) 在通知中心的今日通知中快速查看或处理任务。(这个扩展点中的应用扩展称为Widget)
分享(iOS和OS X) 将网页内容或其他内容分享给他人。
Action(iOS和OS X) 处理或查看其他应用中的信息。
照片编辑(iOS) 在Photos应用中编辑照片或视频。
Finder(OS X) 在Finder中直接显示文件的同步信息等。
文本管理(iOS) 提供用于查看和管理文件的文本库。
自定义键盘(iOS) 用于替换系统自带的键盘。

由于系统定义了扩展特定领域,所以当你在开发应用扩展时,其功能要适用于所有列出的这些扩展点。比如说你要开发一个分享信息的应用扩展,那么你只能选择分享扩展点,而不能使用今日通知或Action扩展点。

重要提示:你开发的应用扩展只可能满足于某一个扩展点,你不能开发一个类似通用的应用扩展去满足所有的扩展点。

Xcode和应用商店帮助你创建并提交应用扩展

应用扩展不同于应用,虽然你需要基于应用去开发应用扩展,但是每个应用扩展都是独立于应用运行的二进制文件。

当你要创建一个应用扩展时,需要在项目中创建一个新的Target。和其他Target一样,扩展Target将设置信息和相关文件打包在Products文件下生成一个扩展名为.appex的包。你可以在应用项目中创建多个扩展Target(一个应用程序可以包含一个或多个应用扩展,该应用程序称为调用扩展应用程序)。

开发一个应用扩展最好的切入点是使用Xcode提供的所有平台上扩展点的应用扩展模板去开发。每个模板包含扩展点的具体实现文件和相关设置,并生成独立的二进制文件添加到你的应用程序中。

注意:在iOS中,包含扩展的应用必须提供一个扩展之外的功能。而在OS X中没有这个硬性要求,一个包含扩展的应用不要求必须提供一个额外功能。

当你将包含扩展的应用提交到应用商店后,用户只要下载并安装了你的应用,那么同时也自动安装了你的应用扩展。

当安装了应用扩展之后,用户首先必须要开启他们。通常,用户可根据当前处理的任务情形使用某个对应的应用扩展。比如,如果你的扩展启用了“Today”通知,那用户可以在通知中心编辑“Today ”view 来添加你的扩展。在其他情况中,用户可以使用 iOS 中的“Settings”或者 OS X 中的“System Preferences”来启用和管理扩展。

用户在不同的情形下体验不同的应用扩展

虽然每种类型的应用扩展的功能都是不同的,但是他们在用户体验及操作方式上还是有共同点的。如果你准备开发一个应用扩展,那么必须明白在不同的扩展点中,用户最喜欢的体验方式是什么,这一点至关重要。应用扩展的最高境界就是快速、流畅、只关注与单一任务。

通常用户是通过系统提供的某个界面开启应用扩展。比如说,如果一个用户想使用分享扩展,那么就需要通过应用程序中系统提供的分享按钮来选择开启。一个应用扩展必须要提供一个图标,以便用户选择和识别,通常情况下,应用扩展的图标与应用程序的图标是相同的。

虽然大多数的应用程序扩展都提供了一些自定义的用户界面,但一般用户不会看到你自定义的用户界面,除非他们进入到应用程序扩展中。当用户进入扩展,你自定义的界面可以将用户的视线、思维带入新的上下文中。由于用户在应用中是可以辨别出你开发的扩展的,所以当你的扩展功能非常独特或者击中用户内心需求的时候,他们会各位青睐你的扩展。当用户意识到扩展其实是独立运行的实体时,他们就可以选择将体验不好或功能不好的扩展移除或停用。

为了让用户平滑过渡到你的应用程序扩展,你要斟酌自定义的界面与扩展点界面的风格,做一个权衡。比如说,最好的方法就是让你的通知扩展看起来像是通知中心中原生的Widget,再比如说照片编辑扩展,你应该完全遵循iOS中的Photos应用界面去设计扩展的界面。

注意:即使你的应用程序扩展没有自定义用户界面(不包括图标),但用户仍然知道该扩展来自与当前应用不同的应用,因为通过激活扩展的方式,或扩展的功能就可以判断出。

原文地址:App Extensions Increase Your Impact

分享到: