iOS 8 简介

在 iOS 8 系统中,Apple 精心打造了一系列全新的框架和 API,旨在点燃开发者的激情,为他们带来惊喜与愉悦。 本指南将介绍这些新 API,并了解 iOS 8 如何使开发人员和用户受益。

iOS 7 从最初的 iPhone OS 开始,就对用户和开发者所期望的整个 iOS 用户界面进行了视觉上的革新。 iOS 8 继续这一传统,为开发者提供了许多框架,这使得用户可以直接通过他们的 iPhone 来控制其生活的方方面面。 例如,可以用 HealthKit 来分析健康和健身数据,通过 LocalAuthentication 进行生物识别认证,从而告别密码时代,App extensions 为第三方应用之间开辟了通信渠道,而 HomeKit 则可以将你的家变成未来之家。

如果说 iOS 7 旨在取悦用户,那么 iOS 8 则通过一系列令人垂涎的新工具来取悦开发者。

本指南介绍适用于 Xamarin.iOS 开发者的全新 API。

iOS 8 中还存在一些已弃用的 API,本文档末尾对此进行了详细介绍。

要求

在 Visual Studio for Mac 中创建 iOS 8 应用需要满足以下条件:

  • Xcode 7 和 iOS 8 或更高版本 – Apple 的最新 Xcode 和 iOS API 需要在开发者的计算机上安装和配置。
  • Visual Studio for Mac – 应在用户设备上安装和配置最新版本的 Visual Studio for Mac。
  • iOS 8 设备或模拟器 – 运行最新版本的 iOS 8 设备进行测试。

家庭和休闲

iOS 8 通过 HomeKit 和 HealthKit 的使用,帮助将 Apple 和 iOS 设备直接植入家庭的核心。 在本部分中,我们将探讨这两个新框架的工作原理,以及如何将其集成到 Xamarin.iOS 应用程序中。

HomeKit

从 iPhone 控制设备不是技术的新应用;许多联网家庭产品可以通过 iOS 应用进行控制。 然而,HomeKit 现在更进一步,为家庭自动化设备推广了一个通用协议,并为 iHome、Philips 和 Honeywell 等特定制造商提供公共 API。 对用户来说,这意味着他们可以从一个应用程序无缝控制家庭的几乎所有方面。 他们无需知道他们正在使用的是 Philips Hue 灯泡还是 Nest 警报器。 用户还可以将许多智能家庭流程链接到“场景”。

通过 HomeKit,第三方应用和 Siri 可以发现配件,并将它们添加到个人家庭配置数据库中,编辑这些数据并据此采取行动,还可以与配件及其服务进行通信以执行操作。

配置

下图显示了 HomeKit 配件配置的基本层次结构:

This diagram shows the basic hierarchy of the configuration of HomeKit accessories

若要开始使用 HomeKit,开发者需要确保其预配配置文件已选择 HomeKit 服务。 Apple 还为开发者提供了适用于 Xcode 的 HomeKit 模拟器加载项。 这可以在 Hardware IO Tools for Xcode 下的 Apple 开发者中心找到。

有关详细信息,请参阅我们的 HomeKit 指南。

HealthKit

HealthKit 是 iOS 8 中引入的一个框架,为健康相关信息提供集中、协调和安全数据存储。 操作系统可确保健康信息的隐私和安全性,并使用 Health 应用为用户提供仪表板。 借助用户的权限,应用程序可以读取和写入各种健康信息。

有关在 Xamarin.iOS 应用中使用此内容的详细信息,请参阅 HealthKit 简介指南。

扩展 iPhone 功能

在 iOS8 中,开发者们得到了更多的控制权,来决定谁可以使用他们的应用,并且第三方应用之间的开放通信能力也得到了增强。 诸如应用扩展和文档选取器之类的功能为应用程序在 Apple 生态系统中的使用方式开辟了无限的可能性。

应用扩展

简单来说,应用扩展就是第三方应用之间的一种通信方式。 为了维持高标准的安全性并维护沙盒应用的完整性,这种通信并不会直接在应用之间发生。 而是由中间的扩展执行。

创建应用扩展的第一步是定义正确的扩展点——这对于确保正确 API 的行为和可用性至关重要。 若要在 Visual Studio for Mac 中创建应用扩展,请通过向解决方案添加新项目,将其添加到现有应用程序。

“新建项目”对话框中,导航到 C#>iOS>统一 API>扩展,如以下屏幕截图所示:

Creating a new extension

“新建项目”对话框提供七个新项目模板用于创建应用扩展,下面对此进行了讨论。 请注意,许多扩展与 iOS 中的其他新 API 相关,例如文档选取器:

  • 操作 – 这允许开发者创建独特的自定义动作按钮,允许用户执行特定的任务
  • 自定义键盘 – 这允许开发者通过添加自己的自定义键盘来丰富 Apple 内置键盘的种类。 广受欢迎的键盘应用 Swype 就使用了这一功能,将其键盘应用引入 iOS 系统。
  • 文档选取器 – 这包含了一个文档选择器视图控制器,允许用户访问应用程序沙盒之外的文件。
  • 文档选取器文件提供程序 – 这为使用文档选择器的文件提供了安全存储。
  • 照片编辑 – 这扩展了 Apple 在“照片”应用程序中提供的筛选器和编辑工具,以在编辑照片时为用户提供更多控件和更多选项。
  • 今日 – 这使应用程序能够在通知中心的“今日”部分中显示小组件。

有关在 Xamarin 中使用应用扩展的详细信息,请参阅应用扩展简介指南。

Touch ID

iOS 7 中引入了触摸 ID 作为对用户进行身份验证的方法,类似于密码。 但是,它仅限于使用 App Store、iTunes 和仅对 iCloud 密钥链进行身份验证来解锁设备

现在有两种方法可以使用本地身份验证 API 在 iOS 8 应用程序中使用触摸 ID 作为身份验证机制。 目前无法使用本地身份验证远程进行身份验证。

首先,它通过使用新的密钥链访问控制列表 (ACL) 来辅助现有的密钥链服务。 可以使用用户指纹的成功身份验证解锁密钥链数据。

其次,LocalAuthentication 提供了两种方法在本地对应用程序进行身份验证。 开发者应使用 CanEvaluatePolicy 来确定设备是否能够接受触摸 ID,然后 EvaluatePolicy 启动身份验证操作。

有关触摸 ID 以及如何将其集成到 Xamarin.iOS 应用程序中的详细信息,请参阅 Xamarin.iOS 中的触摸 ID 和人脸 ID指南。

文档选取器

文档选取器与用户 iCloud 驱动器配合使用,允许用户打开已在其他应用中创建的文件,导入和操作这些文件,以及再次将其导出。 这会为用户创建直观的工作流,从而提供更好的体验。 iCloud 同步更进一步——在一个应用中做的任何更改都会在所有设备上保持一致。

若要更深入地了解文档选取器,以及如何将其集成到 Xamarin.iOS 应用程序中,请参阅文档选取器简介指南。

Handoff

Handoff 作为 Continuity 功能的一部分,进一步推动了 OS X 和 iOS 的集成。 这包括跨平台的 AirDrop 功能、在 iPad 和 Mac 上接听 iPhone 电话和发送短信的能力,以及从 iPhone 进行网络共享方面的改进。

Handoff 适用于 iOS 8 和 Yosemite,并要求将 iCloud 帐户登录到要使用的所有不同设备。 它应该适用于大多数预安装的 Apple 应用,包括 Safari、iWork、Maps、Calendars 和 Contacts。

有关详细信息,请参阅我们的 Handoff 指南。

统一的情节提要

iOS 8 新增了一个用于创建用户界面的机制——统一的情节提要,使用更简便。 有了统一的情节提要来覆盖所有不同的硬件屏幕大小,就可以真正以“一次设计,多次使用”的方式创建快速且响应迅速的视图。

在 iOS8 之前,开发者使用 UIInterfaceOrientation 区分纵向模式和横向模式,使用 UIInterfaceIdiom 区分 iOS 设备。 在 iOS8 中,不再需要为 iPhone 和 iPad 设备创建单独的情节提要——使用大小类来确定方向和设备。

每个设备都由大小类定义,在垂直轴和水平轴中,iOS 8 中有两种类型的大小类:

  • 常规 - 这是针对大屏幕(如 iPad)或小工具,它给人留下大尺寸(如 UIScrollView)的印象
  • 小巧 - 适用于较小的设备(如 iPhone)。 此大小会考虑设备的方向。

如果两个概念一起使用,则结果是一个 2 x 2 网格,该网格定义可用于两种不同方向的不同可能大小,如下图所示:

A diagram representing the 2 x 2 grid that defines the different possible sizes that can be used in both the differing orientations

有关大小类的详细信息,请参阅统一情节提要简介

Photo Kit

照片工具包是一个新框架,允许应用程序查询系统图库并创建自定义用户界面以查看和修改其内容。 它包括多个表示图像和视频资产的类,以及专辑和文件夹等资产集合。

有关详细信息,请参阅我们的 HomeKit 指南。

游戏

Scene Kit

Scene Kit 是一个 3D 场景图 API,可简化 3D 图形的使用。 它首次在 OS X 10.8 中引入,现已引入 iOS 8。 使用 Scene Kit 创建沉浸式 3D 可视化和休闲 3D 游戏不需要 OpenGL 专业知识。 Scene Kit 以常见的场景图概念为基础,抽象化了 OpenGL 和 OpenGL ES 的复杂性,使得向应用添加 3D 内容变得非常容易。 但是,如果你是 OpenGL 专家,Scene Kit 也可以很好地支持直接与 OpenGL 结合。 它还包括许多补充 3D 图形的功能(例如物理),并与其他几个 Apple 框架(例如 Core Animation、Core Image 和 Sprite Kit)很好地集成。

有关详细信息,请参阅我们的 SceneKit 文档。

Sprite Kit

Sprite Kit 是 Apple 的 2D 游戏框架,在 iOS 8 和 OS X Yosemite 中具有一些有趣的新功能。 其中包括与 Scene Kit 的集成、着色器支持、照明、阴影、约束、法线贴图生成和物理增强。 具体而言,新的物理功能使向游戏添加逼真效果变得非常容易。

有关详细信息,请参阅我们的 SpriteKit 文档。

其他更改

除了上述 iOS 8 中的主要更改,Apple 还更新了许多现有框架。 下面将详细介绍:

  • 核心图像 – Apple 通过添加对矩形区域检测和图像内 QR 码的更好支持,扩展了其图像处理框架。 Mike Bluestein 在题为“iOS 8 中的图像检测”博客文章中探讨了这一点

弃用的 API

随着 iOS 8 中的所有改进,许多 API 已弃用。 下面详细介绍其中一些内容。

  • UIApplication – 用于注册远程通知的方法和属性已弃用。 包括 registerForRemoteNotificationTypes 和 enabledRemoteNotificationTypes。

  • UIViewController – 特征类和大小类已替换用于描述接口方向的方法和属性。 有关如何使用这些内容的详细信息,请参阅统一情节提要简介

  • UISearchDisplayController – 这已被 iOS8 中的 UISearchController 替换。

总结

本文介绍了 Apple 在 iOS 8 中引入的一些新功能。