今年WWDC 2011会议发布了iOS 5与Mac OS X Lion的预览。 我对这个会议技术上的感受只要有三个:1. 苹果发布云服务产品和技术框架,其云策略和Google及其他厂商的有所不同,在用户体验和开发者实现上略胜一筹。2. "Cut the Cord",剪掉连线,去掉iOS对PC/Mac的依赖。3. iOS与Mac OS的应用体验会越来越相似。技术上,iOS和Mac OS的新功能API会出现更多的交集。从另外一个角度来说,苹果利用现有的iOS开发者数量上的优势,尽力拉拢他们也为Mac OS而开发出优秀的应用,每个优秀的产品都能有移动和桌面客户端两条产品线。 好啦,下面让我门来详细说说以上的观点。
苹果的云策略
苹果认为,对用户来说,加入云服务后的优秀应用应该对原有的应用体验不该有太大的变化,只是在很多地方变得更加方便。什么意思呢?以iWork为例子,就是你原来是怎样编辑文档的,添加了云服务之后编辑过程还是一样,没有改变,只是当你离开了iPad,到了iPhone,那个编辑过的文档立刻就出现了。用户不需要做出额外的操作。苹果坚决走客户端client+云API的路子,这个路子对用户来说,体验应该是***的,因为原生的native api做出来的应用才可能把设备的内存,图形,图像效果发挥到***。这个策略和google的chromebook路子是完全不一样的,Google告诉你,有了chromebook,你就算把笔记本砸了,你的数据还是完好无缺,拿到一部新chromebook后可以有可以用了,但大家细心一想,你平时有多少机会把机子砸掉?我们再看看chromebook的用户体验吧,在chromebook上,你想要用你平时喜欢的app来编辑一下照片,chromebook会告诉你,没有,去找一个web app吧,你想要打开你平时喜欢用的QQ软件来聊天,没有,去用web qq吧。很多早期的chromebook用户反映,在没有网络的情况下,chromebook只是一块砖。很多google io开会拿到chromebook以后,玩两下就把它扔到一边或者卖掉。这就是google的云策略,把用户体验来个180度的转变,为的就是你砸掉笔记本后,可以立刻使用原来的数据。硬件的体验就更不用说了,为了节省成本,价格上打败netbook,注定chromebook的硬件造工比netbook更粗糙。
很多人肯定在wwdc都看到了老乔介绍苹果新的数据中心,整个发布会下来之后,开发者恍然大悟,这个数据中心不但是为iOS和Mac的音乐,照片等云服务而建的,这个数据中心另外一个目的是为第三方开发而建的,想想,以前,如果开发者要做一个云服务的应用,iPhone、iPad、Mac上无缝交换数据,要自己搭建服务器,请问,当你的服务如果达到了百万用户级别以后,你的开发成本要多少?服务器运营成本要多少?现在有了iCloud API以后,这些成为都转移到了苹果的服务器上去了,转移到苹果的数据中心去了,你的很多部分的成本立刻为零。每年交给苹果$99刀的开发者membership费用,你就可以开发出***,甚至***用户的应用,而且你的服务器成本为零。这就是我认为苹果在云策略上召唤更多开发者的另一杀手锏。用户喜欢你的app,喜欢他的iPhone或者iPad,就会向苹果购买更多的存储空间,就这么简单。
说到iCloud API,苹果再次以开发者代码改动最小为设计大纲,发布了一系列的新API。以前我们要做服务器端的数据交互,通常想到的就是在web端写一系列的json接口,然后在iOS端将json转换为NSDictionary或自定义的数据类型,然后再进行处理。有了iCloud之后呢?如果你原来就用iOS的数据库框架CoreData,几行代码或者小设置,iOS自动就把你的数据库备份到iCloud,你不需要任何考虑什么时候向服务器发出请求,什么时候下载新数据,这一切都在iOS后台,它自己完成了。新引入的UIDocument概念就让更多文档应用开发变得无比的方便,一般文档应用开发,例如我的iNotes for iPad为例,由于iOS的文档操作都是不需要用户点击“保存”按钮的,开发者要考虑进行后台保存的规则和实现代码,而且保证后台save的IO操作不影响界面流畅性,就是不能block掉主线程。这一切有了UIDocument后,都是由UIDocument自己完成了,开发者不再需要写这方面的代码,只要告诉UIDocument从那里读取、写入IO数据,数据读取后如何转换开发者需要的数据格式就好了,甚至只要告诉UIDocument往那里存储iCloud数据,UIDocument就自动上传,下载和检测云端数据的变化。如果云端数据和本地数据的内容有版本冲突,UIDocument会发出警告,提供历史版本快照。说得太多了,这里就此打住了。
总的来说,iCloud真的非常有趣,估计今年年底会出现很多非常有意思的应用,苹果在发布会甚至承诺windows native API,不过暂时完全没有看到这方面的资料,如果是真的话,估计要做一个比较完整云端的跨平台应用(iOS, Mac OS, Windows)就不难了。
后PC时代的移动设备
iOS 5.0开始,苹果增加了一个概念“Cut the cord"--剪断连线,或者叫PC Free。iOS设备作为一部后PC时代的设备。世界上的很多iPhone/iPad用户家里都未必有一台PC电脑,或者说他们买了iPad以后,就不考虑再为家里购买一台PC了。所以iOS 5.0的其中一个理念就是设置,备份,安装软件等操作都无需一定要在桌面电脑上来完成。很多人可能说,Android手机从一开始就不必需要电脑来激活,设置等工作。但这次iOS 5在这个基础上扩展了更多,很多原来只能在PC上才能完成的工作,在iOS 5以后,移动设备上也能完成。例如,iOS上的Photo.app实现了照片对比度,亮度修改,去除红眼等一般PC上才能完成的操作。还有iMovie的高清视频编辑,还有CoreImage能完成的人脸识别功能。这种类型的应用能在手机上运行,在几年前真是不敢想像的。开发者们应该好好把握iOS 5这个机会,开发一些以前在PC上才能完成的任务,在移动平台上也能做了。这种趋势将同样适用于企业应用软件开发,未来几年相信更多的企业级桌面应用会迁移到移动设备应用上去,现在就开始准备你的产品和项目吧。
iOS的多媒体技术
iOS的多媒体技术越来越强大,本人认为这个也是其他移动平台和iOS的差距***的方面。随着双核CPU,强大GPU硬件,以及软件GCD(Grand Central Dispatch)多核计算框架的介入,开发人员可以开发出越来越不可思议应用。例如,iOS5***的CoreImage API,可以每个人都很容易地对图片的尺寸,亮度,色彩,修正红眼等编辑。iOS 5 加入了另外一个本人认为非常有实用的功能,iOS AirPlay Mirroring。这个功能可以让用户通过无线AirPlay在宽屏大电视上播放视频,浏览网页,播放幻灯片。或者以后很多公司的会议室不再放着笔记本加几个什么VGA/DVI转换头,一个$99刀苹果 TV就好了,参会者拿着iPad进入会议室,谁要在大屏幕上显示内容,连上AirPlay就好。这种场景特别适合商务和教育类。
Mac OS X Lion的App Store
Mac App Store的前景还是挺可观的,毕竟Mac的销售额还是一路攀升的,加上Mac OS的很多方面的软件本来就比windows要少很多,需求空间很大。随着iCloud API的加入,更多的iOS App会愿意为Mac OS X开发客户端,Lion之后,对iOS开发者来说,为Mac OS X的开发学习成本将会越来越低,为什么?因为Mac OS X的开发API和iOS越来越相像,例如,Lion上的NSTableView学习了iOS的UITableView将会简化开发。几乎每个iOS开发人员都很熟悉UITableView,在Lion上实现tableview就不再繁琐了。加上国内很多厂商近来都发布和更新了mac client软件,如QQ for Mac, SPlayerX射手播放器, 迅雷等等。国内市场也开始扩大,开发者有空可以开始试水这个方向。
总结
Mac OS Lion开始拉近了与iOS之间的距离,例如它的多点触摸(Multi-touch)操作,全屏应用体验与Launch Pad,还有API之间的交集越来越多,这样大量的iOS的开发者就可以比较容易、方便地为Mac开发出应用,而Mac一直传承下来的强大功能,也越来越多向iOS迁移。这一大优势是其他平台没有的,有也只有微软才能做到,因为除了微软和苹果,没有其他厂商既有强大桌面操作系统又有高性能的移动系统,Google虽然内部有Linux,但毕竟没有经过无数用户使用过的操作系统。微软在移动平台上还是没有形成很大的气候。iOS今年的***大特性就是iCloud,云应用已经到来,而不是即将来临,现在iOS 5虽然到了beta3,不过很多新API还是用不了,或者bug无数,Sample code也还没有出来,大家的差距还不算大,要做新应用的,赶紧学习吧!还来得及!