自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年肯定还会涌现出新的移动开发技术,也会出现新的热点,作为开发者需要学会拥抱变化,也需要在变化中掌握那些不变的技能,愿新的一年里大家都能在技术上更上一层楼,在移动开发行业实现自己的梦想。