主题:【原创】iPhoneSDK观察 - 舞姿飘忽,苹果的探戈 -- AllenKid
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)土鳖抗铁牛
之前跟人讨论同性恋权益时表明立场用的——另外也觉得很搞笑
不过也已经挂了好几个月了,所以如您所愿,改成更合题应景的
具有基本的多媒体工具和通信工具,作为SDK有偿(跟免费相似,可以阻挡一点无聊的玩意)发布给开发者,在确保平台安全的前提下,让开发者有利可图.....这个创意是对微软的"聚集一大群弱智程序员搞弱智软件"模式的最佳突破,比开放源码协议的没收益更有推动力和约束力.
核心是未来平台的稳定性和可成长性.
举个最简单的实用例子:你爱好钓鱼,参加一个网上的协会.原先你必须坐到你连网的PC前,才可能与同好者沟通,时效较差.现在别人几乎随时可以跟你沟通,你能获得的支持和鼓励几乎是即时的,比如你钓到一条大鱼或钓到特殊品种的鱼,立刻就可以发布.你有任何问题也都能向同伴求助.
我估计是从它的itune store对ipod的促进作用得到启发的。给第三方提供便利开发在IPONE上的应用软件,只会让IPHONE的吸引力越来越大。IPONE的利润够好,30%的软件分成,对它来说,也就是小意思,类似于ITUNE STORE的地位了。
我想,大概有两个方面它要考虑。IPHONE可以看作是一个便携笔记本的替代品,可以上网,易于携带。从功能上和结构上,应该可以完全看作是一个笔记本,配置低一些。
显然,可实现的功能的空间几乎无限,但是一个关键问题,就是能耗,毕竟是以电池供电,只能是能省则省了。
微软的平台让人有砂塔之憾.开放软件协议只有奉献的快感.优秀程序员在这两块都难停留很久,或者以此为生.
这样的软件平台,类似于智能手机的刷机,却有强得多的工具和广阔得多的应用前景.软件高手不会看不到这点,特别是未来才从事软件开发的有天分的人,投入的起点很低啊.
最妙的一条是,只要平台不太烂,别人帮你拉客户搞软件,对你来说是免费的服务,还能享受到一点点利润.
我在西西河的处女贴就提出这么个观点: Apple超一流的UI设计是其目前的核心竞争力
而UI设计要最终落实为用户的满意和美誉度, 进而转化为市场份额,则必须严格控制用户体验的标准。
以此为出发点来看待SDK线路图中开放 vs 严管的精神分裂,就觉得比较合理了。
其实在Mac世界一直遵循的也是同等的法则,只不过桌面平台机能限制不大,让苹果可以给开发商们更大的空间,在发布官方软件包后撒手让第三方们自由竞争,优胜劣汰——而在手持设备的领域里,由于硬件资源的窘迫,让开发商们,特别是之前毫无Mac经验,只是眼馋iPhone平台前景的新进程序员们自由发挥,将会造成一个可以预料的,形同WM平台般的混乱局面,这个对于苹果来说是决不能容忍的灾难。
1、引起最大争议的:苹果为什么要严格限制iPhone软件的发行渠道,并自己充当全权审查者的角色?这不是既当球员又当裁判吗?是,这样显然在第三方软件与官方软件或者商业模式产生冲突的时候会造成第三方利益得不到保障,可我想绝大多数情况下,Apple的利益是与广大开发商以及用户的利益密切相连的——毕竟目前苹果明显是想把iPhone OS制造为移动平台的事实标准(之一),既然它大方的开放了SDK,那么我们虽然有所保留,但实在没必要过度担忧。
而这么做的好处也是显而易见的,参考一下其他的移动平台就不难看到,目前Palm也好,Symbian也罢,更别提WM了,虽然第三方软件看起来都那么繁荣,可真正有价值的,成熟的,收费合理的软件却寥寥无几,让情况更糟糕的是,人们购买起来相当的不方便,于是这些软件要么免费,要么被大范围盗用——人们不知道该不该花钱,人们也不知道钱往哪里花——这对于平台真正成熟化,成为可为人们创造价值工具的必须品相当的不利;更有甚者,这种业态模式对于平台开发商来说是一种恶性循环的死结:缺少推广平台导致产品被淹没在大堆同类型软件中,结果付费者寥寥,因此产品价格居高不下,进一步降低消费者购买欲望,盗版横行,产品价格下降更加无望......
App Store首先以苹果官方的金字招牌为产品质量做出底限的保证,并且让消费者完全不必担心恶意软件等安全问题,可以极大的增强购买信心;再来直接推送到平台的每一个终端,这种销售媒介可以说是Dreamy的,大概只有心机的梦网可以媲美——只是Montelnet可没有iTMS的用户支持度,而了解iTunes+iPod销售模式的人们都应该知道,苹果的手持设备与桌面终端的衔接可以说是无缝的,手机无线下载的可以同步至电脑备份,而iTunes媒体/软件库中的文件,可以同步至任意数目的手持设备,只要它们绑定的是同一账户。iTMS已经是全美第二大音乐销售商,在年内甚至有望超越Walmart成为头名,这么一个数字媒体零售巨头,只收99块一次性的入场费,以及30%的利润分成,对于很多跟软件零售商打过交道的开发商来说,诱惑力非同寻常。而对于爱好者来说,只要他们用心开发并维护一款产品,无论其功能多么单一,只要存在目标人群,那么就有获利的可能,因为App Store的模式,可以让他们收费$.99也好,$1.99也罢都有得赚。而根据iTMS的经验,只要人们的消费体验简单轻松,大家是愿意花钱的——冲动性消费个块八毛的人人都负担得起——点个"购买"按钮简单又惬意。这一切在iPhone以前的世界则不可想象,人们已经习惯了在网上胡搜乱下,业余开发者的心力很难通过小软件来实现为经济价值。
2、第三方软件"单任务"限制。这个限制初看大大降低了iPhone平台的适用面。但仔细想想,我们有多少次是在手持平台上同时"使用"两个软件的?我的答案是0,你总是需要切出一个软件的界面->进入另一个软件的界面,手机屏幕可不像电脑显示器,可以供你把软件窗口拖来拖去。iPhone SDK的HIG明确表示,软件开发者应考虑到随时存档退出,以及迅速恢复上次使用界面的能力,而且"单任务"限制只针对第三方软件,iPhone原生软件不在此列,所以边打电话边记事,或者边处理文档边听歌还是没问题的。在大多数情况下这跟其他平台的软件相互切换实际上是没有区别——哦,不对,还是有区别。即使在N95平台上,同时运行软件数目超过5个,系统就会变得迟钝至几乎不可用,而iPhone则完全没有这个烦恼。macrumors有位仁兄的评论说得不错: 让程序员操心总比让用户操心来的好。620Mhz的CPU+128M内存+第三方单任务可以最大限度的保证iPhone的界面时刻都反应流畅——用户体验至上体现得淋漓尽致。(虽然我还急切的盼望着复制/粘贴功能在iPhone上的实现方式。但反过来一想,WM和Symbian上打开了一大堆软件还得在任务管理器里一个个全关掉的特性也是相当的烦人。)
3、第三方软件也不得使用Daemon等系统服务监控系统或网络事件并触发可执行程序。这一条加上上面所说的第二条,基本上把通常情况下IM软件消息提示的能力给封死了,Apple这么规定的目的是为了给自己的iChat或者合作方的AIM保驾护航吗?实际上这么做更有可能的原因是Apple想要防范恶意软件开发者通过在合法软件的Daemon中添加指针,触发未经审查程序段执行的可能性,显然这会在系统的安全性上捅一个大窟窿(也是破解软件安装限制的简单方法)。但我们可以想象有很多程序需要在后台监视某些特定事件并自动弹出的能力,大家普遍怀疑Apple将对需要此能力的程序单独审查,再决定是否通过。而比较悲观的开发者已经开始四处查找iPhone OS是否支持launchd服务(Apple对于开源世界的贡献之一,UNIX平台终于可以摆脱化石init了),想要依靠该服务触发自己的软件了。但看过iPhone Getting Started系列片的人们都会长出一口气,苹果使用了一个相当新颖(有点怪异)的手段来解决此类问题:URL
就像http:会触发Safari, mailto:会触发Mail一样,程序也可以注册自己的URL字头,比如照片美化软件就可以注册PICT:作为触发自己的字头,此字段将会被iPhone OS当作公共API来处理,不仅其他程序以PICT发送的请求将会被传送并自动切换至该软件,连网络请求,HTML中的字头也会统统被CFNetwork发送给该软件。当然这种触发机制在实用中效果如何还有待验证,但我个人觉得是相当的精灵古怪,让人忍俊不禁^_^(汗,这大概是我Nerd身份的好证明吧,还有人觉得很好笑吗?请踊跃举手)
4、第三方不得引入自己的编译器,Framework,API etc. 这个很好理解,否则所谓软件审查控制就是个笑话,只不过这样的话,各种模拟器之类的就没法开发了——同样有人建议说Apple会对个案进行独立审查,所以Java虚拟机啦 SilverLight啦还并不是完全没有可能的。
5、第三方软件不得对文件系统进行操作,不得存取其他软件内部文档资料,不得通过扩展坞与外设进行联接~~~OK,关于扩展坞我是懒得为苹果辩白,这明显是想靠License再发笔外财,但是文件系统嘛~~Apple又提出了个惊天地泣鬼神的解决方案——咳,咳,同志们,米拿桑,你们就不要将工作存储为文件了,设定资料也不要用文件保存嘛,你们可以用......数据库
[SIZE=3]数据库![/SIZE]
好吧,简单的说就是iPhone OS内建SQLite支持,因此大家应该充分滴利用该特性,以达致更安全,更高效,更科幻的手机软件新世界~~~~就是这样~~~~哦,还有,Safari也是支持SQLite滴,所以结合之前超强的URL API,我们可以可以用URL来存取或者在程序间传递数据~~~~嗯嗯,就是这样.....^_^b
以上五点详解完毕,Apple仍然是不肯放过可怜的程序员弟弟的,它家的开发者文档,人机界面指南,iPhone平台传道士都反复孜孜不倦地在你耳边催眠:
A. 要以解决方案为指导,不要妄想添加过多的功能
B. 开发过程中请充分利用我们科幻的实时性能测试工具提高表现和Debug,否则有可能不予放行
C. iPhone没有鼠标没有键盘只有多点触摸屏,因此尽量减少用户输入字符的次数,如果必须的话,你最好给我记住用户的输入!不要让其一而再再而三的重复使用虚拟键盘
D. SDK提供了从Quarts2D/Core Animation/Open GL到UIKit一系列从底层到高层的图形界面创建工具,因此UI很重要,超级重要,无比重要,请使用高质量PNG图像,请使用音频视频,请使用动画特效,请使用3维渲染~~~~界面元素丰富明晰流畅优雅不是努力的目标,而是进入的门槛!!!(它真的很简单,让我来给你演示~~~)
E. 请使用iPhone值得骄傲的人机交互特性,包括手势识别和三轴感应等等,但不要过度使用。请使用iPhone值得骄傲的内建软件接口,包括Safari, 地址簿,相册等等,但不要过度使用。
F. 让你的软件个人化,但是必须跟其他软件合得来,最好别给我互相冲突。
G. 重中之重,你软件的运行平台是一只手机 手机 手机!!!你有责任优化内存占用,有责任优化硬件模块使用率,有责任防止资源滥用或者内存泄漏等一系列烂事,还得给我省电。
H. 请各位快乐的奔跑吧,iPhone平台就是你们的未来,金窟,金色的明天在等待着你们~~~~
(II) 土鳖抗铁牛
本帖一共被 1 帖 引用 (帖内工具实现)
坚决支持...哈哈,现在就等下半年3G 的iPhone 2了! 加上那时节到处的小软件就满iTunes都是了!
最好还是32GB的....哈哈,俺的胃口是不是大了点??
同时做到对Costomer和Developer的Friendly
以99块的进入费用屏蔽掉一部分漫不经心的Hobbist和他们无心完善的作品,同时也给大家提供一个容易上手,性能强大的开发和销售平台,形成共同繁荣的生态
这个东西要成为3G甚至4G的重要力量,利用WIMAX以及LTE的平台将视频带入移动领域,包括可视电话和移动电视.
看无线通信的专门网站,有人开始感觉摄像头方位不对的问题了.
思路正确,选择能否超前就极端要紧了.
现在买iPhone总觉得有点像Sucker~毕竟下半年3G版是板上钉钉的事,32G也绝不是奢望,以iTunes商店的影视剧来说,只有32G以上的闪存,无线下载视频才有意义(以苹果的标准)。
包括3月6日宣布的另一件大事:ActiveSync授权,就受到质疑。因为ActiveSync的实现机制要求手持端不断的Ping服务器以维持特定的IP,而不管是反复使用手机网还是Wi-Fi,都会显著影响待机时间,从这个意义上RIM的NOC还真是个妥协的好方法。
PS.谢谢老大的推荐^_^
只不过现在iPhone毕竟是一代,Edge网的。美国俩摄像头的手机少,欧洲跟亚洲还少吗?最不济还能有样学样嘛
Wi-Fi的最后一里问题确实难解决,之前大张旗鼓宣传的几家城际Wi-Fi厂商都陆续倒台了(记得有Earthlink等几家),这玩意儿的热点覆盖面积太小,实在不适合地毯式覆盖~~
WiMAX技术上是没问题了,但是大家推起来似乎都三心两意,手持设备端的模块似乎也是个问题,性能/耗电比现在如何了?我没有这方面的详细资料
LTE还是很遥远的事啊~~对于iPhone这样一个立志成为国民机的选手来说,有点远水救不了近火...当然预研是必须的,只是恐怕Cuppertino的工程师设计下一代iPhone原型机时,我们这里讨论的啥都尝试过了——说到底还是个以合理的成本实现预定性能的问题。
已经解决了移动问题(e协议),美国的市场也在启动.就差成熟的应用模式和终端结合的样板了.
WIFI要当先烈,也没办法.春节前某在北京一大厦高层内,有过手机的WIFI热点9个可选的现象,信号也太杂乱了.
LTE要等其瓜熟蒂落,大概起码还要3-5年时间.
移动终端的芯片也有了相当强产品出来了,如264硬解码的,似乎1W?当然要更小的,0.5W却什么活都能干的系统,这横竿还有点难度.
不过,期待苹果象CISCO一样,借助网络猛窜起来.
哦,苹果的说法,不支持传统移动系统上的IP电话应用,还真跟WIMAX有点缘分.