石锅拌饭

小议iPhone OS 3.0

by Robin Lu on Mar.18, 2009, about

今天凌晨,苹果宣布了iPhone OS 3.0 。上午起来看了视频,又翻了翻文档。从开发者的角度,说说我比较感兴趣的几个更新。

Apple Push Notification Service

一直被当作后台运行程序的替代品。仍然不能有后台运行程序,解释的也很清楚了,是耗电量和待机时间不允许。但可以通过Push来唤醒应用程序。这种方式的特点是无触发不执行,执行是被动的。虽然不可能100%解决所有后台运行程序的需求,但也算提供了一种比较通用的模式。

基本原理如下图所示:
Remote Notif Simple.Jpg
先将消息推送给Apple的APNS,由它转发到相应的iPhone上,再由iPhone OS通知到相应的程序。

可以看到,所有的消息都不是通过网络直接发送到iPhone,而是通过苹果的APNS服务转发的。这将对APNS服务有很高的要求。这也是苹果一再推迟这一功能的原因。以往年苹果网络服务的经验来看,这个服务在推出以后也许要经过一段时间才会稳定。希望苹果这次是有备而来吧。

Accessory Support

我个人认为这个功能是这次升级的一个亮点,有极大的想像空间。附属外设可以通过30-pin连接头或者蓝牙接入。我大概看了下文档,和我想像的有些出入的地方是,附属设备必须预先支持iPhone,即使用蓝牙接入方式也一样。iPhone OS 3并没有象Mac OS X 10那样,提供一个完全的蓝牙API,而是做了更高层次的封装,只有符合协议(技术层协议)的设备才能接入。想通过iPhone OS 3直接读取Wii Balance Board 中的数据目前还不可行。

In App Purchase Support

商业模式上的扩展。SDK中新加入了Store Kit 。苹果还是挺狡猾的。这个事情,它不做,总有人会做,与其让别人做,不如自己先做了,还能再收个30%。对于最终用户,直接使用iTunes帐号付款也比再引入一个付款方式要简便,也许不少应用不得不因此屈尊交这笔苹果税了。

Peer to Peer Support

这一功能是以Game Kit的方式加入的,不过苹果一再声明完全可以用在非游戏的应用上。这一功能建立在蓝牙之上的,但同样做了封装,应用仍然无法直接和蓝牙接口打交道。连接服务以session的方式维护,一个应用可以这个P2P网络中扮演三种角色,server, client, 或者peer(server+client)。两个设备之间只能有一条蓝牙连接,但是在这一个连接上可以支持多个sessions的服务。传输内容并不受限制,可以自己定义。

Core Data

其实我们早就可以在iPhone中使用SQLite,不过到iPhone OS 3,才有了类似Mac OS X中的Core Data 。这意味着,对开发者来说,使用SQLite的门槛降低了。其他好像也没什么了。

:

2 Comments for this entry

Search

Archives

Browse by tags

agile apple blog book design ecto extension firefox git google hack ichm iphone keyword life mac madfox movie nonsense opensource plugin pm ruby rubyonrails sns software startup wordpress work 财帮子