您所在的位置:主页 > iOS开发培训 >

回顾2014年iOS技术领域的变化

时间:2015-01-31 17:37来源:未知 作者:疯狂java 点击:

  

  对于 iOS 技术领域,2014 年是变化巨大的一年。在硬件上,由于苹果发布了更大尺寸的 iPhone 6 和 iPhone 6 plus,使得 iOS 设备的屏幕适配工作也多了起来。这还不包括全新的 Apple Watch 带来的开发上的变化。在软件上,Swift 语言的推出惊呆了整个业界,从 Objective-C 切换成另一个全新语言的代价是巨大的,但我们也看到了它长远的好处以及苹果对此的决心。除了软硬件外,编程语言、中国区、开发社区在 2014 年也有着巨大变化,我们试着用几个关键词来勾勒出 iOS 技术领域在 2014 年所经历的变化。

  硬件

  苹果在 2014 年推出了 iPhone 6 和 iPhone 6 plus,iOS 设备也进入了大屏时代!虽然包括笔者在内的许多朋友都认为:“Plus 实在太大了”,但是从销售量看, iPhone 6 plus 在初期占据了 6 成 的销售量。我本人在实际使用 iPhone 6 plus 几周后,也很快适应了它的屏幕尺寸,现在反而不习惯使用了两年的 iPhone 4s 了。在开发上,iPhone 6 的推出使得 iOS 开发者也开始像 Android 开发者那样,为适配工作担忧。与 Android 开发者不同,iOS 开发在过去多年都是用 “绝对定位” 的方式来放置各种 UI 控件,使用 Autoresizing Mask 就可以轻松搞定 iPhone4 和 iPhone5 屏幕高度的差异问题。但现在不一样了,iOS 开发者需要学习使用 AutoLayout,通过各种 Constraint 来调整 UI 控件,但是很多界面是需要用代码来编写的,所以这方面的开发工作会比较辛苦,好在有 Masonry 这一类的开源库来辅助我们做界面开发工作。

  iPhone 6 plus 引入的特有的 3x 的图片问题使 UI 设计师的工作量也大大的增加了。另外,以前由于 Android 设备其实太过于分裂,无法对每种屏幕分辨率都做到精致地设计,所以设计师大多只是用 “凑合用” 的思想来实施 Android 应用的适配。这一点从 Android 大屏手机上的应用呈现就能看出来。而现在同样的方式不太可能被严格的苹果以及挑剔的 iPhone 用户所接受,设计师很可能需要为 iPhone 6 plus 做专门的大屏设计,才能获得用户的芳心。

  Apple Watch 的推出让适配工作真正地进入了 Hard 模式。优秀的开发者需要在工程中做好代码地复用,才能让底层的逻辑能够同样运行在 Apple Watch 中。不过这方面的工作还只是猜想,我们得等到 Apple Watch 真正面世的时候,才能真正了解到相关的开发工作有多么不同。

  软件

  苹果在 2014 年的全球开发者大会(World Wide Developer Conference,简称 WWDC)上并没有发布任何新的硬件产品,但展示出其在软件上的各种功能改进和整合上的巨大努力。苹果推出了新的 OS X 10.10 操作系统 Yosemite,它吸收了从 iOS 7 开始的扁平化的设计风格,很多改进的细节都可以看到 iOS 系统对于 OS X 的影响。Yosemite 最吸引我的是 handoff 功能。handoff 功能将 Mac 电脑和 iPhone、iPad 的功能进行了深度整合,当你拥有这三个设备时,它们每一个都可以接打电话和收发短信,你在它们任何一个设备上编辑的文档,也可以实时同步到另一个设备上。handoff 并不是苹果的应用独有的功能,苹果将其相关的 API 都开放给了开发者,所以开发者也可以完全开发出支持 handoff 功能的应用。

  相对于 Yosemite 带来的整合方面的改进,新版 iOS 8 的改进的重点则是开放。苹果开放了输入法接口,允许第三方提供输入法。苹果也开放了 Touch ID,允许第三方应用获得指纹信息。HomeKit 则为智能硬件开放了不少可以互操作的接口。另外,iOS 8 还新增了 4000 个新的 API,开放了大量底层 API 接口供应用调用。所以对于普通用户而言,iOS 8 新增的可见功能可能是有限的,但是其开放的大量 API 和新 SDK 释放出了巨大的想象空间,相信会产生更多有趣的应用。

  对于一个硬件来说,相关的软件是非常重要的,但是苹果却将它的操作系统和 iWork 办公套件完全免费,这显示出苹果对于软件生态圈不同的理解。而微软至今最大的两大收入还是来自它的 Office 和 Windows 系列操作系统。在微软还在发愁他的新版 Wiindows 10 怎么卖出去时,苹果早已不玩这种 1.0 的商业模式游戏了。

  Swift

  苹果的 Objective-C 语言发明于与 C++ 同时期的上世纪 80 年代初,虽然苹果对其进行了很多次改进,但这终究像给应用打补丁一样,不是特别舒服。这次 Swift 的推出,苹果试图用全新的编程语言来提高 OS X 和 iOS 程序员的开发效率。单从语言特性上来看,Swift 吸收了众多现代编程语言的优秀特性,例如类型推断(Type inference)、范型(Generic)、闭包(Closure)、命名空间(namespace),元组(tuple)等,整体语法上也更加简洁。我们也了解到 Swift 是苹果从 4 年前就开始筹划中的事情,可见苹果在长远规划上对于 Swift 语言的重视,相信未来 Swift 会接替更多 Objective-C 原本的地位,所有 iOS 开发者都应该花时间学习这门全新的语言。

  苹果这次推出 Swift 也吸引了大量的讨论,其中比较不正确的观点是认为 iOS 开发的门槛因此而降低了。从我和身边的同行对 Swift 的学习和讨论来看,Swift 并不是一门可以简单上手的语言。并且在未来一到两年内,iOS 开发必然会经历同时使用 Objective-C 和 Swift 的过渡阶段。对于 iOS 开发者,除了必须掌握以前的 Objective-C 语言的知识,还需要学习并不简单的 Swift,可见 iOS 开发的门槛不但没有降低,反而提高了不少。

  展望

  展望 2015 年,笔者认为:

  苹果的 iPhone 将会继续占据高端机市场,但千元左右的 Android 机将会占据其它所有的用户,最终 Android 的用户量将远远大于 iPhone 的用户量,但由于 iPhone 用户的优质属性(付费意愿高),所以各大应用将会在这两大平台都会投入足够的开发力量。如果有人能够比较好的解决代码在 iOS 和 Android 平台的复用性问题,将会很大程度上改变现在的开发模式。

  Swift 语言将仍然处于发展阶段,Objective-C 依旧会是 iOS 程序开发的主要语言。更多的开发者将会使用混合开发的方式,同时使用 Objective-C 和 Swift 来开发应用。

  国内 iOS 开发社区还会进一步发展,会出现更多的移动开发相关的开源基础设施或第三方服务。

  由于 Objective-C 和 Swift 相比 Java 语言没有那么普及,Mac 电脑也没有 Windows 电脑普及,这造成 iOS 学习门槛较高。优秀的 iOS 开发者依然是稀缺资源,相比同等的 Android 开发者,iOS 开发者可以获得更多的收入