西西河

主题:【原创】iPhoneSDK观察 - 舞姿飘忽,苹果的探戈 -- AllenKid

共:💬87 🌺307
分页树展主题 · 全看首页 上页
/ 6
下页 末页
  • 家园 【原创】iPhoneSDK观察 - 舞姿飘忽,苹果的探戈

    点看全图

    外链图片需谨慎,可能会被源头改

    3月6日的SDK Event可能比我想象的重要许多,Apple官站大张旗鼓的推广宣传,QuickTime直播,iTunes Podcast下载,昨天还意犹未尽的放出了HD版的流媒体链接。开发者档案库的迅速上线,HIG,Reference也更新得相当及时,更别提ADC动用多位传教士(Evangelist)录制的10段总时长达3个小时的详解视频了(均可供ADC会员免费下载,制作精良,信息量也不错)

    业界各大厂商也纷纷示好,甚至不惜以热脸贴冷屁股(e.g. SUN),PC游戏天神John Camark也对其开发环境赞许不已。

    而各路亲水果族的评论员们更是迫不及待地开始山呼万岁,认为iPhone平台即将一桶浆糊了。

    这个搅得大家精神莫名亢奋的SDK Roadmap到底是虾米碗糕?我们先来简单看看吧:

    1、开发环境为Leopard上的Xcode套件(其中包含定制的Instruments实时性能监测和Debug工具,以及接近全功能的iPhone模拟器),语言为Objective-C,但提供C,C++的原生嵌套支持。

    2、iPhone OS的系统架构和多数Framework与OS X大同小异,从UNIX内核,到Core Fundation Framwork系统级服务,再到更高层的Quartz2D、 Core Animation、Core Audio、OpenGL ES/AL都完全相同或者是功能相似的简版,一直到最顶层的API才有些真正重大的区别,桌面版OS X使用Cocoa, 而iPhone版则是变体Cocoa Touch。所以一个有经验的Mac程序员几乎可以毫不费力的适应iPhone的编程。

    3、SDK免费下载,但是想要真正在iPhone上运行需要花费¥99加入iPhone Developer Program, 由此不仅能得到官方的技术支持,也允许其将软件挂上唯一的iPhone软件商店App Store出售,开发者自由定价,销售收入与苹果七三分成,除此之外没有任何的管理、帐目、挂载费用——如果你宣布免费,那么苹果也就不向你收钱。

    4、苹果将会对上线软件进行审核,诸如色情、恶意、违反开发者协定等等的软件将不能获准出售。

    5、苹果联合著名风投KPCB设立总额高达1亿美金的iFund,用来鼎力支持在iPhone平台的创业的开发商。

    根据在各个苹果开发者论坛看到的情况,似乎大家都对此框架表示意料之外的惊喜,虽然30%的提成看上去很高,但是1.开发者无需购买昂贵的开发用机,任一台Intel Mac都可以胜任,外加一台测试用的普通iPhone,99块的会员资格,就是一个完整的开发环境。这个比很多移动/主机平台的开发成本都要低得多。2. 开发者将完全不用操心营销问题,iPhone的2.0版固件将包含一个App Store按钮将软件直推到每一台终端,并且没有主机费用,没有库存/物流费用,只要你的软件不出大篓子,那70%就是净收入。就像某开发者说的那样:管它多少钱的70%也比零蛋的100%要好。Ars Technica的John Siracusa更是掩饰不住的欢歌: 我们要发财啦!!!~~~~

    但是在最终用户那里,我们看到的却更多的是担心,担心苹果的审核制度会扼杀很多对用户很有价值,却不符合Apple Inc.利益的软件,比如直接从Amazon购买无DRM音乐的软件,使用Edge网络的Skype软件等等。

    更进一步的探究iPhone HIG等相关文件,我们还发现了苹果对于开发者进一步的约束:

    1、同一时间只能运行一个第三方软件,当切换程序时,之前的程序应顺利保存退出。因此开发者应该为此特性作好准备,保证用户再次打开本程序时回到退出时的状态。

    2、程序退出后原则上也不允许在后台执行Daemon以获得必要的数据。(这个引发了大家对于即时通讯软件表现的担忧)

    3、第三方程序不得引入自身的Framework和API (因此SUN真的单方面开发iPhone版Java虚拟机的话,大概是要吃官司的。)

    4、第三方软件不能对文件系统进行操作,不能利用扩展坞与外设进行通讯 (这两条显得超级没天理,在这里Apple显得很Evil)

    从发布会和强大的SDK对于开发者完全开放底层API来看 (可直接操作BSD Socket和网络端口),Apple明显是想把iPhone打造为一个对开发者友好的强势平台。而SDK使用协议中的诸多限制,却让人心生疑窦——虽然已经有开发者证实,所有这些限制在SDK中都没有硬性实施(你要想在自己的iPhone上搞多任务完全没问题),但毕竟Apple掌握着所有软件的生杀大权,它的这些条条框框将极大的束缚第三方软件的功能和实用性——这种进一步退两步的姿态,实在让人难以捉摸~~~

    苹果的探戈,让人看不懂啊...

    (I)土鳖抗铁牛

    关键词(Tags): #iPhone#Apple#路线图#SDK元宝推荐:闲看蚂蚁上树,铁手, 通宝推:五度,
    • 家园 著名风投KPCB

      非常牛的一家VC。其中的P就是惠普[HP]里的那个P(Packard).K是尤金·克莱尔(Eugene Kleiner),这位老兄也是个牛人,半导体之父肖克莱的弟子,跟罗伯特·诺依斯(Robert Noyce)、戈登·摩尔(Gordon Moore)、朱利亚斯·布兰克(Julius Blank)、金·赫尔尼(Jean Hoerni)、杰·拉斯特(Jay Last)、谢尔顿·罗伯茨(Sheldon Roberts)和维克多·格里尼克(Victor Grinich)这几位大牛一起创建了仙童半导体。后来和Packard成立了KPCB,是硅谷最好的VC之一,投资回报率一直稳居前三。

    • 家园 借问一下

      现在北美iPhone裸机多少银子啦?家里人去出差,结果多人托买iphone……

    • 家园 19个月后再看,感触良多。
    • 家园 花催填坑~
    • 家园 【原创】iPhoneSDK观察 - 舞台宽广,才能跳得欢畅

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

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

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

      媒体公司?它没有原创内容,跟传媒最接近的不过是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

      (III) 扛与不扛, 这是个问题

      元宝推荐:铁手,
      • 家园 有得赚

        送花成功。有效送花赞扬。恭喜:你意外获得 8 铢钱。1通宝=16铢

        作者,声望:1;铢钱:0。你,乐善:1;铢钱:7。本帖花:1

      • 家园 好,好,好,砸花,使劲砸花

        iPad思路秉承Apple平台的观点,怪不得iPad在北美热销。

      • 家园 我看来Apple实际上应该是一家时尚产品公司。
      • 家园 写的真深刻,使劲的花!!
      • 家园 好文章啊好文章, 长见识啊长见识

        这两天就想着下载个MAC OSX的x86破解版, 再弄台cpu能跑的机器装上, 体验一下iphone sdk.

        苹果的软件设计思路确实有独到之处, 楼主的好文让我有突然看到一片新天地的感觉. 上花, 学习.

        补充一下, LGPL许可证无需使用者开放源代码. 因此webkit可以看成是apple主动的开源战略.

        • 家园 谬赞谬赞 ^_^b

          至于WebKit的LGPL协议问题,详细点说起来是这样的

          一开始只有KHTML引擎和KJS引擎,这两者分别是KDE项目的超文本渲染引擎和JavaScript引擎,据我所知它们跟其他KDE的成果一样都基于LGPL分发。

          苹果在2003年采纳了这两个引擎来作为自己浏览器的基础,分别对它们进行了相当程度的修改,并且将其OS X版本重命名为WebCore和JavaScriptCore,再给它们加上了一层Objective-C的应用接口,打包起来,统称为WebKit.

          由于KHTML跟KJS基本上就是两个库,而在LGPL的许可之下虽然第二方有将整个产品闭源的选择(即不传染),但是无论对库文件做什么修改,LGPL协议都将继承。因此虽然WebKit闭源,但是WebCore跟JavaScriptCore却一直都是开源的。

          在这里会有些费解是因为一般的企业如果应用基于LGPL的库,一般都不会对库文件投入什么精力优化或增强,自然不存在版权协议上的误解,而Apple则从一开始就对这两个库投入了不少的精力,免费完善非嫡系的开源软件,这对于商业公司来说是种少见的犯傻行为。(当然现在WebKit/KHTML的方向已经完全由Apple把持了,KDE反而成了合作方)

          最新进展是在KDE4提出KSVG2绘图之后,WebKit迅速拥抱此引擎,决定将其加入自己的新特性。 结合Quartz 2D本身的矢量绘图特性,也许我们将在下一版的OS X中看到第一个真正全矢量绘制的可无缝集成网络内容的(SVG Widget)RI (Resolution Independence)桌面。

          P.S. Mac Snob+KDE Geek的结果就是WebKit引擎的极速与精致,不但渲染速度保持领先,而且在Acid 3测试里也大幅领先主要竞争者

      • 家园 这篇写的太棒了

        特别是最后对苹果的战略描述,拜服,拜服啊

        如果苹果真能这么做,翻了Wintel的天也不是什么神话,我不买apple的电脑,第一是因为我觉得它不如小黑可靠,第二是我不想经历转换平台的痛和软件缺失的烦.希望苹果能变的更加广泛应用,让俺也能试试看

        • 家园 iPhone的特别之处

          我在文中没有讲明的是,移动终端目前并没有相当于Windows的绝对胜利者,在桌面平台,Apple这几年高歌猛进,也不过将自己的市占提高到不到6%的水平,离30%的爆发性增长点还有很大差距。

          相对于Windows, 对阵Symbian/Blackberry/Windows Mobile/Linux的胜算显然要大得多,不仅在市占率上目前没有一个明确的赢家,而且消费者也更接受硬件与操作系统紧密捆绑的产品模式。目前看来,至少在智能手机部分,iPhone OS成为老大的可能性是非常的大(至少在美国如此),这就能给那个以Darwin为基础的大一统平台注入一剂急缺的强心剂。

          Apple上周反复强调Mac程序员转为iPhone开发是多么的直接容易,其实反过来,iPhone程序员转为Mac开发也是同样的直接容易。如果这一平台群的软件开发真的如Steve Jobs希望的那样蓬勃发展,那么这必将成为IT界避实就虚,曲线救国的经典战例。

分页树展主题 · 全看首页 上页
/ 6
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河