[顶级推荐]佳文分享:iPhoneSDK观察 - 舞台宽广,才能跳得欢畅

Posted by Leask on May 24, 2009
声明:本文作者为西西河的AllenKids先生,转载自apple4us!

 _____________________



苹果现在到底是一家什么公司?



软件公司?它的大部分销售收入都来源于硬件



硬件公司?它相较于其他个人电脑厂商在硬件性能上又毫无优势



媒体公司?它没有原创内容,跟传媒最接近的不过是iTMS商店,可是这个商店却几乎不赚钱。



服务商? / 零售商? / 时尚公司? /Steve Jobs最喜欢的玩具? 我还可以继续的列举下去......



但在3月6日,从苹果公司最受器重的青年猛将、iPhone软件部门的最高负责人Scott Forstall的口中,我们亲耳听到了苹果对自己的最新定义:



Apple is a Platform Company



苹果是一家平台公司





Mac显然是个自成一体的桌面平台,iPod+iTunes(+AppleTV)是地位不可撼动的数字媒体平台,iPhone更是从一开始就毫不掩饰成为手持终端最重要平台的野心——平台平台平台,有什么稀罕?



我要说Steve Jobs可能再次地以自己天才的直觉,找到了Apple Inc.未来20年安身立命的所在,甚至可以说是领袖群伦的利器,那就是Apple=平台。



什么平台?没有定语吗?没有定语!苹果的野心已经逐渐显露,从高端商用到民用娱乐,从数字媒体到网络应用,Apple都竭力的挤入市场,有些很显眼,有些

却不显山露水。而在各个世界都想掺一脚的巨头不只Apple一个,甚至Apple在它们面前还显得相当弱小(MicroSoft, Google),

是什么让Apple的平台策略显得那么独特呢?



答案是前所未有的集成整合,如果我们来检查下苹果在各个市场投放的产品,就会惊讶的发现,它们的架构竟然是那么的整齐划一:从Xserve,

Xsan到Mac Pro, iMac, MacBook, 再到iPhone, 新一代的iPod Touch, AppleTV~~~

它们最核心的技术竟然没有什么区别,都是Apple招牌式的未来主义设计+相对精良的硬件制造+Darwin核心(OS

X的Kernel)+CoreXX 架构+各种通用API+Cocoa开发环境+业界领先的人性化GUI(+iTunes网上商店)



Google的模式是作为现金王,它四处撒网,疯狂收购,或者以头脑风暴的方式在Google Lab发布各种看起来莫名其妙的应用。可能学生气十足,不过年轻没有失败。



Microsoft的模式是作为多个领域的垄断者,它像蜘蛛一样小心的维护并扩展着自己霸权的网,并竭尽全力让新来者更容易陷入网中,而已陷入网中的人越陷越深。虽然招人讨厌,但人们往往不得不自投罗网。



跟前两者相比,Apple这个万灵丹式菜谱的卓越之处在于,它在自己涉足的每个领域都保持着相当的竞争力,不仅如此,由于它通用架构的特性,人们发现各个

平台的转换衔接是那么的流畅平滑——Apple真的从对阵MicroSoft的失败中学到了建立通用平台的重要性,并且决心把这一策略发挥到自己能力的极

限。实际上很久以前SJ大概就模糊的意识到苹果面前正确的方向了,他意识到作为一家公司,苹果真正的价值所在,真正要建立的地位。若非如此,苹果不会如此

决绝的抛弃过去的荣耀/包袱,专注于真正重要的平台建构:小到单键鼠标,Happy

Mac欢迎画面,条纹标题栏;大到Carbon架构,PowerPC处理器——这些都让人怀念,但都不再重要。



今天iPhone的SDK Roadmap,

iTMS的整合只是聚光灯下人人可见的大动作,实际上我发现过去一些不那么吸引眼球的小细节更能让人体会到苹果的转变和它推进自己影响力的决心。



1、Leopard通过UNIX 03认证



虽然从一开始OS X就明言以FreeBSD为开发基础,并跟随每一个主版本都发布开源的Darwin内核源码,可Leopard是唯一一个经认证与UNIX

03完全兼容的系统,我们可以说Leopard剥掉Aqua的壳,就是个100%的UNIX发行版。我想如果当初Apple采用BSD为基础还有些赶鸭子

上架的勉强的话,现在的Steve

Jobs已经很清楚兼容性对于平台的重要性,作为UNIX众多发行版的一员不但不可耻,而且值得骄傲。这种对兼容性的渴求,更是在BootCamp上表现

得淋漓尽致。



2、WebKit宣布开源



与操作系统相似,Safari的渲染核心WebKit也得益于开源社区,它是以Linux两大GUI平台之一的KDE组件的KHTML和KJE衍生出来

的。由于自己对内核做了相当的改进(以至于跟KHTML很早就不再兼容)并将之纳入Cocoa架构,一开始苹果并不愿意开源WebKit(当然其中得益于

LGPL授权的CoreXX部分必须开放),而我想正是Apple的平台战略再次让它发现自己在网页渲染引擎上的小气没什么意思,06年WWDC上SJ正

式宣布WebKit开源,而这一举措两年让苹果获得的回报可以说是相当的合算——Nokia

S60平台的默认浏览器采用WebKit;Gnome的Epiphony采用WebKit;Adobe全新推出用来作为Flash继任者的Air,也采用

了WebKit;连它命中的对头GPhone都采用WebKit;开源社区也对此举有热烈的回应,Qt4.4正式集成WebKit,并由此导致KDE重新

考虑自己的默认渲染引擎,目前WebKit项目正在跟KDE密切合作,希望能在KDE4.1版发布之时,将KHTML正式汇入WebKit,成为一个项目

——至此,这个渲染引擎回馈了开源社区,完成了涅磐,奠定了自己三大引擎的地位。



还有更好的消息,Qt4对WebKit的采纳,直接促成了这一开发平台对Cocoa的Object-C语言的原生支持,在此平台上的多个开源项目水到渠成

的获得了在OS X上运行的能力,其中最具重量级的KDE4就宣布,其平台上的多数软件几乎不需要KDE图形API的支持,只需简单修改就能登陆OS

X。这对于OS X平台来说绝对是大赚特赚的好手笔。



3、Safari登陆Windows平台



把基于WebKit引擎的Safari for Win单列出来讲是有道理的,因为我发现Safari除了推广WebKit引擎之外,实际上有着大得多的野心。



目前在Windows平台上"原生"运行的苹果软件有三个: QuickTime, iTunes

还有Safari.当然实际上iTunes的媒体层几乎是QuickTime的马甲而已。



MicroSoft在九十年代初期就对QuickTime恨之入骨,两家还为此大打官司,只因当时MicroSoft的DirectDraw实在是太烂,

才让QuickTime在Win平台上存活至今,而可以说如果没有QT在Win平台上的存在,视频采编的业界标准早已换人来坐了,而不会是如今建立在QT

Framework(现在改名叫作Core Video)上的Final Cut。



iTunes的引入很明显是为了保证iTMS商店最广泛的覆盖,这一招可以说直接促成了iPod的霸主地位,而iPod的热销又反过来促进了iTunes

在Windows上的安装比例。iTunes跟QuickTime的捆绑策略,让Core

Video架构又存在于每一个iPod用户的电脑上。不仅如此,它还开始捆绑Bonjour局域网协议——在利用自己垄断地位优势方面,现在的苹果可以说

是相当的泼辣。



接下来说Safari。其实如果只是为了推广WebKit引擎的话,Win平台上已经有了Swift可用,Safari只能说是加强推广力度罢了,顶多算

是让Windows用户尝尝正宗的苹果味。可我们看看Safari安装文件将近30M的夸张身材,就会意识到Apple肯定搞了小动作。打开

Safari,我们很快就能发现它实现了很多非Win的UI特性:动画卷轴菜单,Mac风格的次像素字体渲染,网页对象或标签拖动时显示的半透明缩略图等

等。再进入它的安装目录,一切真相大白!



原来Safari不仅引入了WebKit引擎,更是一举捆绑了Core Foundation(OS X的系统级C语言API)

,CFnetwork(OS X的网络接口API),Core Graphics(就是Quartz 2D, 一个矢量构图框架,OS

X图形界面的基石),当然还不忘对于Bonjour更完善的应用支持。



可以这样说,如果在iTunes上Apple还有所保留的话,在Safari上它就表现得相当咄咄逼人了,它几乎把OS

X一半的重要Framework都照搬到了Windows上!!!目的我想应该是再明显不过了吧(MS一定很恶心)~~~你可以想象将来的Wintel机

器看起来跑的是Vista但实际上OS X API一个不缺吗?你可以想象将来程序员只需要使用Xcode编程就可以让程序原生运行在OS

X/Linux/Windows上吗?我们说的不是Java虚拟机或者什么Sandbox,我们说的是性能无损的Objective-C

Binary!



我这可不是磕嗨了胡思乱想,Safari下一版即将引入本地SQLite支持,不难想象iTunes也开始采用WebKit引擎并将目前是XML格式的

Library转用更强大的SQLite存储,再下一步呢?Core Animation库取代Direct 3D来支援CoverFlow?

再下一步呢? Cocoa Universal for Windows?  Maybe?  Why not?

这种环环相扣的应用带来了巨大的压迫感。渗透,渗透,再渗透!



携着在移动平台上强大的占有率和开源的双重优势,WebKit的Safari,杀入Trident/Gecko/Presto的三国大战,成为了人人不可

轻视的一角。更为重要的是,其背后平台化的野心,让它成为了MS最不愿看到它获胜的对手。因为IE对Safari的战斗不仅是网络入口之争,更是可能动摇

其根本的桌面平台的争夺。也许将来Windows Defender会把Safari当作Trojan来处理吧。



现在让我们再以此为背景来审视iPhone

SDK和iTunes商店的策略。一个对开发者和用户都友善的移动通讯/娱乐/计算平台,兼顾个人和企业的应用需求,与桌面、客厅和服务器等其他平台近乎

100%的相容性,再加上杀手级的使用界面,领跑业界的性能表现,苹果对它的期望可想而知。而在企业级应用难以获得爆发性增长的情况下,iTunes

Store增生式的企图囊括所有数字媒体/软件销售的贪婪进化,让它已经成为了一个包罗万有的重要数字生活入口,一个绕过门户,绕过搜索引擎,绕过内容提

供商的超级消费级应用窗口,苹果对业界施加影响力的重要筹码,以iPhone App Store为它加持是相当的合情合理。



iPhone既是一个前景美好的移动平台,更是一个整合各个平台并保证各自地位的重要棋子,因此就不难理解Apple近乎以自己全部的资源全力支持此平台的内在逻辑了。



而建立这样一个"大一统"的平台组合,大概就是Steve Jobs心中新世纪战略的终极目标——他的Apple 2.0。