自 2007 年乔布斯发布第一代 iPhone 开启移动时代,到现在已经 8 年了。在过去的几年中,移动互联网以惊人的速度快速发展,移动开发这个从无到有的行业,也一直处于快速的演变当中。回顾过去的一年,Swift 语言、Material Design、Win10 等等的发布激动人心,HTML5 标准的确定也让人对 Mobile Web App 再次燃起热情,对于开发者来说,这是最好的时代。新的一年里,我们肯定也会迎来更多令人兴奋的变化,移动开发领域将会有哪些值得关注的话题呢?本文就抛砖引玉,为大家盘点一下。
本文将从平台与技术两方面进行盘点。
平台
iOS 9
iOS 8 的发布被称为“史无前例”,它开放了超过 4000 个 API,以及 App Extensions、HealthKit、HomeKit 等诸多新特性,为 iOS App 的表现力增添了更多可能性。不过相对的,这样的大幅更新带来了软件质量问题。有报道称,将于 15 年夏季到来的 iOS 9 更新幅度不大,将专注于提升软件质量。另外在刚刚过去的春季发布会上,苹果正式发布了 Apple Watch,引起了热烈的反响,可以说今年将是智能手表之年。
对于 iOS 开发者来说,经过了一段时间的学习以及 iOS 8 份额的逐渐巩固,2015 年将是 iOS 8 新特性添加到应用当中的时候。另外我们可以预见,围绕着 HealthKit、Apple Watch 等会涌现出大批创新型的 App,它们也将是新的一年 iOS 开发的热点。对于中国的 iOS 开发者来说,Apple Pay 可能于 2015 年进入中国,可以想见,这也将是另一个热点。
当然,还有最重要的,Swift 语言。不久前苹果发布了 Swift 1.2 版本,解决了之前存在的许多问题,语言整体更加趋于完善。对于 iOS 开发者来说,Swift 语言已经不是想不想学,而是什么时候学习的问题。虽然短时间内 Swift 无法彻底替代 Objective-C,但由于两者良好的兼容性,我们可以逐渐将现有的 Objective-C App 迁移到 Swift。关于 Swift 的语言特性研究、性能优化、第三方库开发等,也必将是 2015 年全年的热点。
Android
2014 年的 Android 发展也颇为可圈可点,它不仅稳固了自家市场老大的地位,提升了设计和性能,还开始向更广阔的物联网进军,Android 的未来无可限量。
对于开发者来说比较重大的变化,除了 Android 5.x 的发布以及 Material Design 设计语言外,还有 Android Studio 1.0 正式版的发布,这标志着 Android 开发者终于有了官方的正式 IDE,而与其配套的 Gradle 构建工具的使用也成为 Android 开发者必修课。另外 Android Wear、Android TV、Android Auto 大大拓宽了 Android 的应用范围,开发者将有更大的空间来施展自己的才华。在新的一年里,对于物联网和智能硬件,以及基于它们的应用,也将在 Android 开发者中掀起热潮。
Windows 10
过去的一年里微软带给了我们很多惊喜,特别对于开发者而言,它改变了过去保守封闭的态度,变得更加开放,对开发者也更加友好,这样的态度无疑将帮助微软赢得更多开发者的青睐。
2015 年对于微软将至关重要,因为横跨 PC、手机、平板的 Windows 10 将发布正式版,微软在移动领域的成败,将取决于它是否能重新赢回消费者、硬件厂商以及开发者的心。对于开发者来说,开发基于 Win10 的 Universal App 是一个充满吸引力的选择,因为可以一次性的支持多个设备,可以想见它将成为 2015 年 Windows 平台开发的热点。
技术
HTML5
2014 年 10 月 29 日,HTML5 标准规范制定完成并正式发布,对于 Web 的发展来说意义十分重大,对移动互联网来说也同样如此。HTML5 中的 Device API、webSocket、webGL 等,大大拓展了 web app 的应用范围和表现力。另一方面,iOS 8 中新加入了 WebKit Framework、Android 5.0 可在不更新系统的情况下更新 WebView,巨头的鼎力支持也让 HTML5 在移动设备上的未来更加光明。
不过,虽然在功能上 HTML5 逐渐接近了原生应用,但交互和动画性能一直是瓶颈,难以做到和原生应用一样绚丽同时又无卡顿。这个问题如果解决了,HTML5 在移动设备上的应用将更加广泛。因此它也是目前大家关注的一个热点。下面这些技术致力于解决这个问题,相信它们在新的一年里会有更大的发展:
Canvas UI:目前 Web App 的问题是它基于 DOM,而 DOM 是很慢的,如果页面内容很多,渲染和交互起来就会造成卡顿,另外 DOM 还存在单线程、无法利用 GPU 的缺陷。Canvas 是 HTML5 的一个标签,将内容用位图的形式输出,因此能够利用 GPU 加速。Flipboard 最近发表的一篇《 60fps On The Mobile Web 》就利用了 Canvas 来展示内容,从而克服卡顿。这种技术当然存在一些限制,比如它上面内容的可访问性不佳。但如果使用适当的话,Mobile Web App 将不再是卡顿的代名词。
Famo.us :这是一个使用自己的 JS 渲染引擎和 3D 物理引擎来加速 UI 渲染的 JS 框架,以达到接近原生应用的性能。它可以方便的与 Angular.js、backbone、Meteor、React.js 等集成,它支持跨平台,并且是开源的。
HTML5+ :这是国内 Dcloud 公司推出的技术,包括从开发到部署的一整套解决方案,其中最重要的是 5+ Runtime,它包括基本的 HTML5 API 的跨平台封装、将移动系统 API 映射为 JS API 的 Native.js,以及兼容原生 SDK 的插件系统。使用它可以用 JS 调用原生 UI,从理论上只比原生应用的交互有些微的性能损失。
NativeScript :这是另一个使用 Javascript 来调用原生 UI 组件的技术,并且支持现有的原生 Objective-C、 Java 和.NET 库。它已经于 3 月份开源,并将于四月份发布1.0 版本。
跨平台开发
如今的移动市场iOS 和Android 两分天下,并且短时间内这个格局都不会有大的改变。iOS 有高质量的用户,Android 有海量用户,对于开发者来说两者都是难以放弃的市场。但是,同一个App 为两个平台分别开发,其时间和成本都过高。在HTML5 暂时还难以保证体验的情况下,“一份代码,多个平台”的跨平台开发势在必行。
基于PhoneGap/Cordova 或者类似移动中间件的Hybrid App 技术在过去几年里逐渐成熟,最近又出来一个基于React.js 技术的 Reapp ,将 React 组件绑定到一个跨平台的 UI-Kit 来创建 Hybrid App。可以预计 Hybrid App 仍将是 2015 年的开发热点。
另外的一些跨平台技术则是采用生成多个平台的目标代码的做法,最终得到原生 App,以解决体验的问题,在这种情况下,一般 UI 部分还是需要根据各平台分别编写,而其它部分则可以是公用的。这里介绍一些值得关注的技术:
J2OBJC :这是 Google 贡献的一个开源项目,用于将 Java 代码转换为 Objective-C,使用它并不能完全实现代码共用,但有实践表明它能达到 70% 的代码共用,这已经很不错了。随着 Swift 的持续火热,不知道新的一年里它是否会进化为 J2Swift 呢?
Xamarin :它是 Mono 跨平台项目的一个分支,旨在使用 C#与.NET 框架开发多平台的 app。受到微软将.NET 框架核心开源的消息刺激,Xamarin 想必在 15 年能有更好的表现。
React Native :这是 Facebook 最近公布的一项跨平台开发技术,是基于 React.js 在移动设备上的实现,目前支持 iOS 和 Android。它并未强调代码共用,而是“Learn Once, Write Everywhere”,使用 JS 抽象原生 UI 组件,并提供自己的布局系统,从而拥有 Web UI 的灵活性和接近原生 UI 的性能。
总结
技术的变化总是日新月异,这个现象在移动行业更加显著。2015 年肯定还会涌现出新的移动开发技术,也会出现新的热点,作为开发者需要学会拥抱变化,也需要在变化中掌握那些不变的技能,愿新的一年里大家都能在技术上更上一层楼,在移动开发行业实现自己的梦想。
评论