iOS 7中的新鲜事儿: 开发人员需要 关注哪些重点

译文
移动开发 iOS
让我们先从UI说起。简单来讲,iOS 7摒弃了大部分 广泛存在于iOS 6当中的界面元素——例如按钮边框、 用于渲染导航栏的色彩渐变以及不透明标签等等。

面貌一新的UI、动态字体、新的多任务模式以及对新型64位 应用(及设备)的支持。

由于新变化太多,我们姑且将注意力集中在那些从长 远角度看影响最显著的特性身上。

内容为王

让我们先从UI说起。简单来讲,iOS 7摒弃了大部分 广泛存在于iOS 6当中的界面元素——例如按钮边框、 用于渲染导航栏的色彩渐变以及不透明标签等等。在 iOS 7当中,大部分UI控制元素都不再使用边框并采 用半透明效果。警示与对话框现在会以显示面板方式提 供选项字符、而不再像早期版本那样使用闪烁的按钮或 者控制效果。新界面初看起来往往让人感到不太适应, 但它非常简洁、而且看久了之后其实也很顺眼。相对于 过去那种在一片漆黑的背景上显示UI元素块的作法, 新版本为我们带来更明亮、更为开放且非常干净整洁的 操作空间。

苹果在新方案中带来精妙的平衡效果。尽管UI元素的显 示方式发生了变化,但其使用方式以及手势操作与早期 版本相比并无不同。举例来说,在列表单元中由右向左 横扫仍然会激活删除或者选项面板。在适应了刚刚上手 所面临的抵触之感后,大家很快就能调整状态并继续投入正常使用——毕竟其操作方式仍然延续经典方案。

苹果公司在iOS 7 与Xcode 5当中进行的扩展可 谓一阴一阳。在Xcode 5 IDE当中,UI几乎没有 作出任何变动,所有重大改进都针对同一套界面 之下的实际工具。但在iOS 7方面,UI的变化之 大令人意外。为了支持这一巨大转变,Cocoa Touch对一部分框架进行了调整、同时引入了其它 新型框架。

在今天的文章中,我们将共同了解iOS 7所带来的 全新调整。

大家可千万别小看其实现难度——各位可以问问那些升级 到Windows 8的用户,问问他们不考虑操作延续性以及 关键性控制方式的系统设计到底会给用户带来多少痛苦 回忆。

为什么苹果要冒这么大的风险将UI推倒重做?其目的 在于为应用程序开发者提供更多可资利用的屏幕空间。 现在按钮、标签、导航栏以及其它控件都以半透明状态显示,这就使得屏幕能够显示更多内容。就连 位于屏幕顶端、用于显示信号强度及电池电量的 状态栏也是半透明的。单凭这一项改动,开发人 员就获得了额外的64像素(纵向模式)或者52 像素(横向模式)可资利用。

为了完全利用这一改动带来的显示面积提升, Cocoa Touch中的UIControllerView类(作为应 用程序屏幕显示与用户界面的核心)现在额外提供 全屏显示模式。在早期版本中,UIControllerView 只能使用一部分屏幕尺寸,状态栏、导航栏以及标 签所占据的部分都被浪费掉了。但现在该类迎来一 系列新属性,允许视图窗口使用传统iOS 6显示方 案或者直接将布局扩展到整个屏幕的边缘。另外, 大家也可以根据需要将视图窗口向特定方向—— 即向顶部或者右侧扩展。

这种倾向于内容的重点转移对开发人员而言意义 重大。Retina显示方案下那些原本只能用于显示 UI控件的像素现在也可以负责显示实际内容。换 句话来说,从设计角度看内容与控件(例如导航 栏)之间的界线已经逐渐模糊。不过这也要求我 们为用户提供更大的显示画面,这样他们才能更 轻松地在大量信息之间进行屏幕切换——即使屏 幕本身尺寸较小。

为了排布应用程序的UI元素,苹果提醒开发人员应该尽可能使用Xcode的自动布局功能——也就是 让iOS负责处理屏幕上UI元素的定位工作。这意味 着未来大家将开始在不同屏幕尺寸上体验iOS平台。

我们拥有多种风格类型可供选择,它们与HTML标签中 的方案基本相同:Headline 1、Headline 2、 Subheadline 1、Subheadline 2、Body、Footnote、 Caption 1以及Caption 2。在必要的情况下,大家也 可以调整字体的尺寸与间隔,当然仍然可以通过描述实 现而非指实际数字。新版本iOS对动态字体、连写、突 出以及可访问字体尺寸的支持在整个系统环境当中皆可 生效。

新框架TextKit专门负责动态字体功能。这是一种高层 级文本布局API,位于低层级CoreText文本布局引擎 之上。所有与文本相关的UI元素(例如UILabel、 UITextField以及UITextView)现在都能通过TextKit 进行文本布局管理。TextKit还可以非常简便地排布段 落、列以及页中的风格化文本。对于图片与文本相结合 的复杂布局环境,大家也可以利用一条贝塞尔曲线勾勒 图片轮廓。TextKit会在排布文本的同时避免其与曲线 发生重叠。这项功能对于复杂内容交付的支持大有帮助。

更出色的多任务机制

准确地讲,iOS从诞生之日起就一直是一款成熟的多任 务操作系统。作为核心,iOS所使用的是与桌面系统OS X相同的Mach内核以及BSD库。邮件、音乐以及时钟等 特定应用都会在后台保持运行。不过苹果严格限制第三 方应用使用多任务功能——这主要是出于安全考量,而 且早期硬件在处理性能、内存以及电池寿命等方面的孱 弱也制约了多任务的普及。

与iOS 6(左图)相比, iOS 7(右图)的对话框 更简洁、不废话。

保证文本清晰易读

苹果还提供了另一种使用这些额外屏幕像素的方式 ——支持更好的字体排列方案。iOS 7采用动态字 体方案:字型能够针对不同显示尺寸进行调整且始 终保持同样的其字体与粗细。现在大家无需指定尺 寸或者字体类型,只需简单为其设定一种风格、iOS 就会处理其它细节。

在iOS 4当中,苹果正式推出限制性多任务机制,旨在支 持应用程序实现后台音频播放、后台位置追踪以及消息推 送等。在iOS 7当中,我们再次迎来更多新型后台模式: 后台获取、远程通知以及后台转换。提供新模式的目的在 于保证应用程序数据始终可用——包括由远程服务器所提 供的数据在内。

后台获取允许应用程序周期性获取信息。为了实际这一目 标,大家需要调用UIApplication方法以通知iOS按固定 间隔获取数据。根据设置好的间隔时间,iOS会周期性启 动应用程序。在启动之后,大家的应用就会调用一项获取 代表方法,并在数据获取完成后自动退出。

远程通知允许大家的应用响应来自服务 器的推送信息。iOS会在通知送达时启 动应用,该应用接下来会与服务器连接、 收集负载内容而后自动退出。

后台转换机制会启动应用程序以实现大 规模数据转换任务。大家的应用会在启 动后利用代表方法与服务器之间发起会 话。该代表负责处理与服务器之间的验 证过程以及转换所带来的各类操作。

显著改进

iOS 7 在多个方面都实现了跨越式发展。新 的UI为开发人员提供更多可资利用的屏幕 空间,这一点对于小尺寸设备尤为重要。更 为智能的文本布局能够带来新的出版及阅读 器应用类型,对此我可以肯定。

这种倾向于内容 的重点转移对开 发人员而言意义 重大。Retina 显示方案下的那 些原本只能用于 显示用户界面控 件的像素现在也 可以负责显示实 际内容。

对于这三种多任务机制来说,应用程序必 须调用完整的处理功能,从而向iOS报告 获取操作成功与否。如果操作未能成功, iOS稍后会重新启动应用并再次深度获取 或者转换。

更多值得关注的新特性

iOS 7 是***款64位移动操作系统,其中的操作 算法、指针以及指令访问全部采用64位机制。顺 理成章,Xcode 5也可以生成64位代码以支持这 一特性。在大多数情况下,数据通道越多、应用 程序的性能表现就越好;不过数值与指针的增长 同样也会占用更多内存。即使将应用程序转为64 位能够带来诸多好处,大家仍然需要谨慎对待这 一转变;否则,内存经受的额外压力很可能让应 用程序的执行速度变得缓慢不堪。

iOS 7 支持32位与64位两种执行模式,因此 旧有应用程序仍然能够正常运行。我的旧版本 iOS仍然可以管理由iTunes发布的、能够在iOS 7上运行的应用程序,不过界面上方会出现一小 块空白区域——因为新版本提供的可用状态栏空 间在旧版本中无法生效。有鉴于此,开发人员显 然需要将自己的应用程序打造为一套“结合库”, 好同时包含32位与64位代码。这样一来,即使 是在早期iOS版本当中我们的应用也能顺利执行。 这套结合库机制应该能够正常起效,因为苹果之前 就已经实现过这类方案。当初Mac计算机由Power 架构向英特尔CPU过渡时,Xcode工具就通过“ 通用库”同时囊括了Power架构与英特尔代码镜像。 如果大家从事这一行的时间够长,可能还赶上过 Mac设备由68K向Power架构CPU转换的过程, 当时开发人员可以让“fat binaries”同时运行在 两套平台上。

这款64位操作系统提供更出色的计算性能 表现,从而帮助开发人员利用更为强大的语 音算法与信号处理能力,最终让目前对移动 平台计算能力还太过勉强的应用性能需求得 以实现。简而言之,苹果将借此为现有客户 群体带来业界***的软件产品。

这不禁让我再次想起iOS 7与Xcode 5之间 阴阳并济、水火交融的协作关系。苹果将iOS 7定位为 桌面级别的操作系统——考虑到其卓越的排版机制与强 大的计算能力,大家应该能够认同这一观点。此外,我 们还需要思考iOS如何帮助企业在移动领域走得更远。 下面我们不妨遵循几条线索。苹果已经在Xcode 5当中 大力推行自动布局功能,因此大家可以想到将有更多屏 幕尺寸有所差异的“i设备”走向市场。会不会出现屏 幕更大的平板甚至采用iOS系统的笔记本电脑?或者是 允许iPhone及iPad使用苹果全尺寸显示器与键盘的“ iDock”方案?iOS与OS X的发展方向似乎正一步步走 向交汇,因此这三种可能性最终都有机会变成现实。 不过在不久的将来,我认为iOS 7会帮助苹果进军特定 垂直市场或者推出几款新设备。简言之,iOS 7与 Xcode之间的阴阳关系将推动移动平台从竞争激烈的消 费级市场当中脱颖而出——而其***的成就则要看开发 人员能在这样理想的基础之上打造出怎样的成果。

 

 

责任编辑:张叶青 来源: 51CTO
相关推荐

2015-07-28 16:38:56

App移动开发

2021-12-28 13:34:52

开发者开发者体验云供应商

2023-01-05 14:51:01

测试开发软件开发

2023-01-06 17:18:00

测试开发集成测试

2010-08-16 09:21:35

Windows Pho

2010-08-09 16:09:25

2022-10-24 17:08:12

物联网

2020-08-24 15:05:38

iOS 14 beta苹果更新

2012-06-28 09:56:36

设计交互设计

2009-06-22 09:13:55

测试开发人员

2016-02-01 11:45:42

新ICT/IT技术

2012-04-12 10:53:03

谷歌IO

2017-10-24 11:59:41

JavaScript

2012-06-28 10:48:31

设计交互设计

2019-06-03 14:20:30

Java数据库大数据工具

2020-10-15 12:48:35

开发人员前端

2018-05-08 12:00:33

开发代码Swift

2010-06-30 08:52:25

2022-12-03 00:15:08

2011-03-11 09:54:01

Windows Ser
点赞
收藏

51CTO技术栈公众号