阅读更多

11顶
0踩

移动开发

转载新闻 iPhone SDK 观察(之二)

2008-03-25 12:12 by 见习编辑 robbin 评论(3) 有3922人浏览
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, Apple TV~~~ 它们最核心的技术竟然没有什么区别,都是Apple招牌式的未来主义设计+相对精良的硬件制造+Darwin核心(OS X的Kernel)+Core XX 架构+各种通用API+Cocoa开发环境+业界领先的人性化GUI (+iTunes网上商店)

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

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

跟前两者相比,Apple这个万灵丹式菜谱的卓越之处在于,它在自己涉足的每个领域都保持着相当的竞争力,不仅如此,由于它通用架构的特性,人们发现各个平台的转换衔接是那么的流畅平滑——Apple真的从对阵Microsoft的失败中学到了建立通用平台的重要性,并且决心把这一策略发挥到自己能力的极限。实际上很久以前乔布斯大概就模糊的意识到苹果面前正确的方向了,他意识到作为一家公司,苹果真正的价值所在,真正要建立的地位。若非如此,苹果不会如此 决绝的抛弃过去的荣耀/包袱,专注于真正重要的平台建构:小到单键鼠标,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的Objective-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近乎以自己全部的资源全力支持此平台的内在逻辑了。

而建立这样一个"大一统"的平台组合,大概就是乔布斯心中新世纪战略的终极目标——他的Apple 2.0。
来自: apple4us
11
0
评论 共 3 条 请登录后发表评论
3 楼 cue2008 2008-06-24 12:28
老大讲的话。我看了后豁然慨然啊!!
2 楼 zjumty 2008-03-26 13:11
看来苹果野心确实不小啊!
1 楼 Frederick 2008-03-25 14:23
看起来似乎让人热血沸腾,呵呵。我看过一句话,叫做每个糟糕透顶的点子被证明是坏点子之前,看起来都像是金点子。还是让我们拭目以待吧

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • arkit-corona:用于 Corona SDK 的 Lua 增强现实套件。 移植自 iPhone 的 Objective-C ARKit

    Corona SDK 增强现实工具包 概述 这是 Objective-C [ARKit for iPhone] ( ) 的 Corona SDK 端口。 由于此端口使用相机纹理填充功能,因此需要 Corona SDK Pro 或 Enterprise。

  • iPhoneSDK观察 - 舞步飞旋,只以用户体验为中心

    以此为出发点来看待SDK线路图中开放 vs 严管的精神分裂,就觉得比较合理了。其实在Mac世界一直遵循的也是同等的法则,只不过桌面平台机能限制不大,让苹果可以给开发商们更大的空间,在发布官方软件包后撒手让第三

  • android sdk的缓存,Android SDK

    Android SDK1. 导入SDK你可以用下面的方法进行导入:方法1. 使用AndroidStudio自动导入在App的 build.gradle文件中添加dependencies {implementation 'com.zhuge.analysis:zhugeioanalytics:latest.integration'}...

  • iPhone开发秘籍(一)--第一章 iPhone SDK简介

    第一章 iPhone SDK简介 借助Xcode,你可以在项目中利用iPhone的多触摸(multitouch)界面和强大的机载(onboard)特性。 1.1 苹果公司的iPhone SDK 参与苹果公司在线(免费...iPhoneSDK由组成iPhone开发环境基础的

  • iOS App注入SDK调试

    客户想提前知晓线上App集成我们SDK后,是否会有SDK兼容性问题,例如Crash,符号冲突 客户线上App集成了我们SDK,出现了问题,如何进行排查 我们想测试SDK在某一款App中是否功能正常 对于这些问题,...

  • 转载iphone 应用开发之二:UITextView控件的详细讲解

    转载自Andy--清风 1.创建并初始化 创建UITextView的文件,并在.h文件中写入如下代码:     #import   @interface TextViewController : UIViewController ...@property (nonatomic,

  • GrowingIO 数据采集 iOS SDK 测试实践

    GrowingIO iOS 测试工程师,主要负责iOS SDK 功能测试、自动化测试 。 GrowingIO 是基于用户行为数据的增长平台,精准采集用户行为数据是公司业务的基石,只有及时、准确、可靠的采集到数据,才能支撑上层的数据分析...

  • iPhone开发中的技巧整理(二)

    23、给iPhone程序添加欢迎界面 1、将你需要的欢迎界面的图片,存成Default.png  [NSThread sleepForTimeInterval:10.0]; 这样欢迎页面就停留10秒后消失了。   24、NSString NSDate转换 NSString* ...

  • 2016年前端技术观察

    在“如何编写高质量代码”领域研究颇深,《编写高质量代码——Web前端开发修炼之道》作者 这篇文章可能是火热的前端圈里,泼向很多技术的一盆冷水。我无意冒犯这些技术的传道者,文章只关乎技术,不关乎人。我...

  • 环信即时通讯SDK集成——环信 uni-app-demo 升级改造计划——整体代码重构优化(二)

    本次关于 uni-app 代码整体重构工作,基于上一期针对 uni-app 官网 demo 从 vue2 迁移 ...本地重构期望能够充分展示 api 在实际项目中的调用方式,尽可能达到示例代码可移植,或能辅助进行即时通讯功能二次开发的能力。

  • Apple Vision Pro & VisionOS SDK解析

    3.VisionOS SDK 3.1 VisionOS概述 Apple Vision Pro 搭载最新的 VisionOS 的操作系统,就像iPhone的iOS、iPad的iPadOS和Macbook的MacOS一样,VisionOS适用于Vision Pro,被称为“世界上第一个空间操作系统”。...

  • Agora SDK和Vuforia SDK共享视频

    Agora SDK和Vuforia SDK共享视频 本文内容 在本文中我将介绍如何将Vuforia的视频共享给Agora系统,利用声网提供的免费平台将实时视频内容共享出去。这次的案例中涉及两个技术点,一个是Vuforia的视频接口获取,一...

  • iOS SDK:iOS调试技巧

    iOS SDK是开发iPhone和iPad 应用程序过程中必不可少的软件开发包,提供了从创建程序,到编译,调试,运行,测试等一些列开发过程中所需要的工具,也提供了许多丰富的框架和相关API,供开发者在写程序的时候使用。...

  • iPhone开发系列文章(二)-iPhone开发工具介绍

     转载请注明出处:http://blog.csdn.net/zhyzh2046/<br />开发iPhone OS应用,需要在Mac OS X运行Xcode开发工具。Xcode是Apple的开发工具套件,支持项目管理、编辑代码、构建可执行程序、代码级调试、代码的...

  • 《iPhone 3D 编程》第二章:数学与抽象

    申明:本系列教程原稿来自网络,翻译目的仅供学习...内容:《iPhone 3D 编程》第二章:数学与抽象 原文地址:http://ofps.oreilly.com/titles/9780596804824/chmath.html 译文地址:http://blog.csdn.net/favor

  • Cocoapods制作pod时,依赖百度地图SDK的一些问题

    1、制作一个pod时,依赖了百度地图sdk(静态库),这个时候,Cocoapods会在百度地图sdk这个pod中的podspec中为项目配置百度地图sdk需要的系统动态库及静态库。编译新做的pod,得到framework,分析它的二进制,没有...

  • iPhone 开发常用工具

    它还带有一个通知中心监视器,你可以轻松看到发出了哪些NSNotification,谁在观察它们。另一个监控NSNotification的应用是 Reveal 。 图像 ImageAlpha  - 一个Mac应用,可以让你将24位带透明度的PNG图转...

  • iPhone游戏开发纵谈

    <br />这是CocoaChina会员 “ooxx” 发表的关于iPhone游戏市场和开发人员的分析文章,非常全面。帖子地址 http://www.cocoachina.com/bbs/read.php?tid-18266.html<br /><br /><br />一.当前正是进入cocoa ...

  • iPhone开发笔记二

    iphone程序中实现截屏的一种方法 在iphone程序中实现截屏的一种方法: //导入头文件 #import QuartzCore/QuartzCore.h //将整个self.view大小的图层形式创建一张图片image UIGraphicsBeginImageContext(self....

  • tables-3.6.1-cp39-cp39-win_amd64.whl

    tables-3.6.1-cp39-cp39-win_amd64.whl

Global site tag (gtag.js) - Google Analytics