[文档翻译]AppExtension编程指南:扩展基础1

App Extension Programming Guide-App Extension Essentials

AppExtension编程指南:扩展基础

App Extensions Increase Your Impact 通过应用扩展提升你的应用

翻译自苹果官方文档 App Extension Programming Guide--App Extensions Essentials

重要提示: 该文档是一个开发过程中使用API或技术的预发布文档。Apple提供该文档的目的在于让开发者尽快熟悉新技术和新的编程接口,使得开发者针对苹果品牌设备进行开发。但是该文档会不断的更新,使用该文档提供的技术开发的软件应该基于最终操作系统软件和最终的文档进行测试。要时刻关注该文档的更新,以便了解新的API和技术特性。

当iOS 8.0和OS X v10.10发布后,一个全新的概念出现在我们眼前,那就是应用扩展。顾名思义,应用扩展允许开发者扩展应用的自定义功能和内容,能够让用户在使用其他app时使用该项功能。你可以开发一个应用扩展来执行某些特定的任务,用户使用该扩展后就可以在多个上下文环境中执行该任务。比如说,你提供了一个能让用户把内容分享到社交网站的扩展,用户可以在阅读邮件信息或者上网时通过app扩展来发表评论。或者说,如果你提供了一个能展示当前比赛分数的扩展,那么用户可以把它放在通知中心,这样在他们打开Today view时就能看到最新的比分。你甚至可以开发一个提供自定义键盘的扩展,用户可以用它代替iOS系统自带的键盘。

APP扩展的类型

iOS和OS X定义了几种应用扩展的类型,每一种类型的扩展都对应系统中的一块区域,比如分享、通知中心以及键盘等。我们把这些支持扩展的区域称为扩展点。每个扩展点都定义了使用策略并提供了API,你可以用来针对该区域创建扩展。要注意的一点是,当你针某个扩展点开发应用扩展时,该应用扩展的功能必须要符合该扩展点的功能特性。

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

table1-1.jpg

由于系统定义了扩展特定领域,所以当你在开发应用扩展时,很重要的一点是,你要选择最能匹配你想在app中提供的功能的区域。比如说你要开发一个分享信息的应用扩展,那么你只能选择分享扩展点,而不能使用Today或Action扩展点。

重要提示:你开发的app扩展要精确地匹配Table 1-1中列出的扩展点。你不能开发一个通用的扩展来匹配一个以上的扩展点,

Xcode和App Store帮助你创建并交付应用扩展

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

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

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

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

为了将扩展分发给使用者,你需要提交一个包含扩展的应用到App Store。用户只要下载并安装了你的应用,那么同时也自动安装了你的应用扩展。

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

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

虽然每种类型的应用扩展的功能都是不同的,但对大部分扩展来说,它们在用户体验上还是有一些共同点的。如果你准备开发一个应用扩展,有一点很重要,那就是要理解在你选择的扩展点中,用户体验是什么样的。从一个更高角度看,对于所有扩展来说,最佳的用户体验是快速、流畅以及只关注单一任务。

通常用户通过与系统提供的用户界面进行交互来开启应用扩展。比如说,用户在app中通过激活系统提供的分享按钮来访问 Share 扩展,并从展示的列表中选择扩展。一个应用扩展必须要提供一个图标,以便用户选择和识别,通常情况下,应用扩展的图标与应用程序的图标是相同的。

虽然大多数的应用程序扩展都提供了一些自定义的UI元素,但一般用户不会看到你的自定义用户界面,除非他们进入到应用程序扩展中。当用户进入应用扩展,你的自定义UI可以让用户知晓他们正进入一个新的上下文环境。由于用户可以把你的扩展和当前应用区别开来,所以他们会欣赏你提供的独特功能。当用户意识到扩展其实是独立运行的实体时,他们也可以确认并移除体验不好或功能不好的扩展。

为了让用户平滑过渡到你的应用程序扩展,你要斟酌自定义界面与扩展点界面的风格,做一个权衡。比如说,一个很好的方法就是让你的插件看起来像是通知中心中原生的Widget,再比如说照片编辑扩展,你应该创建一个和 iOS 中 Photos 应用风格相协调的用户界面。

注意:即使你的应用程序扩展没有展示自定义UI(不包括图标),但用户仍然知道该扩展不同于当前的应用,因为它们需要采用特定的操作来激活。

你可能感兴趣的:([文档翻译]AppExtension编程指南:扩展基础1)