WWDC2013来了,一夜未眠。没有兴奋,没有惊喜,没有失望,只有落寞。
不管怎样,WWDC2013 keynote还是有一些亮点,这里说一下我个人感兴趣的几个内容。
首先是这次keynote上唯一的第三方开发商产品展示-AnkiDrive的智能玩具。虽然还只是玩具车,但已经可以看到这家专注人工智能相关产品公司的实力。据说他们已经拿到5000万美元的投资,我隐约有一种感觉,苹果已经逐渐在人工智能领域储备技术。Siri和AnkiDrive只是开始,更好的东西还在后面。
另一个值得关注的当然是极富科幻色彩的新款Mac Pro。从某个角度来说,Mac Pro才是传统意义上的苹果产品-颠覆式的创新,令人叹为观止的设计风格。Jony,这才是你的菜啊!
接下来是一个被低估了的东西-iOS in the Car。我不敢说iOS in the Car会改变汽车行业,但肯定会给传统汽车行业带来巨大的冲击。但这个东西让我想到帮主在世时泛滥一时的iCar传闻,以及Apple当年在推出iPhone之前和摩托罗拉的合作产品。再联想到AnkiDrive的玩具汽车,我不禁有点浮想联翩了。那些对O2O汽车行业感兴趣的开发者们,一定要密切关注这套系统啊!
最后当然是万众瞩目的iOS7。具体的就不多说了,貌似很多人对iOS7的UI设计不屑一顾,破口大骂者有之,说苹果破罐子破摔者有之。这里不做任何主观评论,稍后用实际体验来说明问题。
据说Android负责人体验了iOS7 beta1后非常兴奋,还宣称自己要赶紧注册个99美刀的开发者账号来好好研究下。
据说Jony Ive把iOS7的图标设计工作交给了苹果的市场营销团队,对此,我只想提醒他,还记得07年帮主在iPhone发布会上的第一个电话是打给谁吗?Jony, are you there?!
不管怎样,还是第一时间下载了iOS7 beta1和Xcode5 Preview版本。iOS7的官方下载速度很慢,找了个网盘地址还不错,半小时内下载完成。
适合iPhone4S的(1.08G)iOS7下载地址:
适合iPhone5的(1.12G):
至于Xcode5 preview的下载则顺畅的多,直接从官网下载就好。毕竟大多数的人玩iPhone是用来体验的,而不是用来开发的。
本文会从三个方面来分享自己的初次体验:
1.从用户角度来体验iOS7 beta, 因为自己只有一部iPhone 4s,所以所有的使用体验都是基于4S的
2.从开发者角度来分析iOS7 SDK的新特性。
3.从开发者角度来体验Xcode5的新特性
Part1 悲催的三小时
作为一个4s用户,我对iOS7的第一印象是,三小时待机,热度可以煮鸡蛋。6月11日上午11点30分装好系统,因为急着去赶赴饭局,就先装了三个最常用的应用-微信,Weico pro和Clash of Clans。吃饭时对着饭友炫机,不过貌似大家对iOS7的UI设计非常鄙视,作为果粉内心很受伤,只好猛吃海喝。大概下午2点不到的样子,开始提示只有20%的电量,我顿觉不爽。大概2点15的样子,提示只有10%的电量。把4s放在一旁不闻不问,继续向食物仅供。大概2点半的样子,我想看看evernote里面的备忘事项,拿起手机一看,已经彻底歇火了。轻抚4s滚烫的身体,我在心中默念,对不起,让你受苦了。
下午去逛了下sony旗舰店,体验了下传说中的黑卡RX1和我垂涎已久的RX100,还有大屏的触摸平板电脑。因为店里搞活动又顺了个看起来很不错的签字笔,心中稍有平复。本来想再去苏宁体验下amazon的新神器kindle paperwhite,但心中挂念着4s的安危,就直接打道回府了。
回到家中充电,然后开始体验。
续航和发热就不说了,除此之外的最大感受就是慢。用4s跑iOS7实在是无法承受之慢,或许iPhone5不存在这个问题。可以肯定的是,如果不是为了开发和体验,我百分百会刷回iOS6。iPhone4s尚且如此慢,我想iPhone4就更不用说了吧,估计也就是勉强能用的程度。作为一个开发者,这是一个危险的信号,因为这意味着大多数的iOS设备对iOS7的支持非常糟糕,那么iOS6显然会在相当一段时间内仍然占有一定的份额。对于消费者来说,从iOS6到iOS7的过渡曲线非常陡峭,对开发者非常不利。
接下来一步步来看吧。
用iTunes刷完之后就准备开机了。最开始我是直接恢复之前的设置,所以墙纸不是默认的官方墙纸。
总的感觉是,跟Android机器的解锁界面非常类似。
关机重启后是联通的界面,实在丑的一逼,不过这不是iOS7的错。
后来切换成了官方的动态墙纸,并设置了密码,效果就更像Android手机了。
有一个细节非常不错,可以直接在未解锁的情况下滑动右下角的照相机图标进入拍摄模式,对于我这样的色友实在是相当体贴。
新的照相机界面比较简洁(当然有人会说是简陋,随便你了),可以轻松在video,photo,square,pan四种模式来回切换。
说到了照相机,接下来当然就是看照片应用。
不过在此之前我们先看看iOS7的整体图标风格。中文和英文的字体显示还是有很大的区别,明显英文字体看起来要舒服很多,中文字体则稍逊风骚。
iOS7图标给我的总体感觉是低龄向,大胆而丰富的色彩搭配,整体风格有点像浏览一个儿童网站的主页。每个图标的设计都非常简洁,有的甚至可以用简陋来形容,但无论是色彩还是形状搭配的总体感觉是和谐,童心,有爱。或许是因为我本人就是搞k12教育的,对这种风格比较容易接受。
接着看Photos(照片)应用,不废话,直接上图吧。
照片应用还内置了滤镜,做拍照分享类应用的朋友要好好思考下自己的定位了。
还是那句话,易用性上远远超过了iOS6,之前的照片应用只能简单的浏览和分享,而iOS7中的照片应用则提供了更多可选功能。
接下来看音乐,苹果这次推出了全新的iRadio服务,非常棒!唯一的遗憾是用中国区账号是没法体验的,还好我常备中美日三国账号,换了美国区账号登陆,就可以happy了!
默认提供了一些精选电台。
而在体验iRadio应用的时候,我们第一次看到了iOS7独有的毛玻璃效果,个人认为这种效果极其消耗系统资源和电量,而产生的毛玻璃效果只能说是差强人意。
或许iPhone5上面会有更流畅的体验,但对于4S来说,有点不可承受之重。
对于音乐应用,还是那句话,易用性远超iOS6。
接下来看展示中NB的不行的Safari浏览器,有多少人对这种3D折叠反转效果垂涎欲滴,我反正算一个,但估计也极其耗费资源。书签和分享功能也很给力。
说完了相机,音乐和Safari(iOS四大killer app之三),接着看最后一个Killer app-电话界面。
没神马大的变化,如果选英语,很多中文名字的联系人无法显示出来。当然,只需要把语言切换到中文,整个世界就清净了。
说完了公认的四个killer app,再说收我个人的最爱-Siri。试用了下之后,我只能说,Siri脑残了。不管用中文普通话或英文,基本上80%以上的问题都是听不懂,以前正好颠倒过来。我分别在11号,13号和14号进行了测试,结果差不多,求神解释。新的界面倒是更有点科技感,但少了点人性化的味道。
如此看来,Siri已经学会了用中文说自己听不懂的18种方式,难道是开发团队最近迷上了孔乙己?
接着看大家常用的几个小工具,不多废话,直接看图吧。天气应用更加形象化,用的是yahoo天气数据,操作更方便。
再看邮件,一些编辑操作更方便,随手一滑,轻松搞定。在邮件正文向右滑动可以返回邮件列表,但有时候操作不灵敏,不知道什么情况。地图就不说了,用的高德地图,感觉中规中矩,比当年iOS6好多了,但和google地图还有相当的差距。Scott Forstall因为这个被赶出苹果,心里一定很憋屈吧,我看他有成为下一个乔布斯的潜力。
可以看到,新的iOS7还添加了到腾讯微博的分享,即便大家都知道腾讯微博算是个鸡肋。
说完了这几个Killer app,接下来可以看看iOS7的一些重大新特性。
首先是应用群组(或者文件夹),现在一个群组中可以放的应用貌似是没有上限的?我尝试在某一个群组中放了40多个应用,仍然有余力继续放。不过这群组的透明图标实在是丑到爆。另外打开群组再回到主界面会有一个动画效果,一向有3D眩晕症的我这样看了几次之后觉得有点恶心。
然后是全新设计的通知中心。
再次强调,易用性非常好,好到爆!
然后是新添加的控制中心,只需要从屏幕底部向上轻滑就可以进入,非常方便,超级好用!可以设置飞行模式,WIFI,蓝牙,锁定,亮度,音乐播放,手电筒,还有-拍照!
然后就是让人感觉超爽的多任务管理。双触home进入多任务管理,把不想要的应用向上拖出就可以kill掉,有一种一切尽在掌握的感觉!
不过再次感到痛心的是,这些效果实在太耗费系统资源了,难道这是逼着大家买新机?
此外在系统设置里面有一个非常不错的功能,就是查看每个应用所耗用的流量。
忘了一个很重要的killer app- App Store。
登录账号的时候有时候键盘显示不全,就凭这个我就可以百分百肯定下一代iPhone肯定是大屏设备,按照显示比例来看应该是5寸左右的。只是不知道是5s还是iPhone 6了?
和之前没有大的区别,去掉了genius,多了一个Near Me。
应用分享功能很方便:
还有一个Wish List,没搞懂怎么用。这里再次看到毛玻璃效果,真心不喜欢。
最后的最后,让我们看几款第三方应用的表现。
我最常用的Weico Pro用了几分钟就被我直接删掉,太容易挂了,只好用官方的微博应用,还算稳定。
Clash of Clans完全正常,太爽了,话说谁能捐我几条龙?
微信基本上正常,但Moments里面不能从照片库选照片,只能现拍。
知乎正常,啪啪正常,QQ正常,使用正常。
Puzzle&Dragons正常,我叫MT正常,但非常慢。
网易云音乐正常,淘宝正常,天猫正常,京东正常,亚马逊正常。
Zaker正常,但分享时的显示稍微有些错位。
Evernote正常,Camera360正常。
试用了几天iOS7 beta1后的总体感觉是:
1.对硬件要求非常高,iPhone4S跑起来非常勉强
2.iOS7的设计风格和之前的1-6有非常大的差异,一些苹果用户很有可能因此不再添置新的iOS设备。
3.iOS7相比iOS6在易用性上有非常大的提升。
4.iOS7很有可能是有史以来普及最慢的iOS系统,可能会造出类似Android系统的版本分裂局面。如果真是这样,可能会有相当一部分比例的iOS开发者逃离该平台。
5.iOS7的内在之美远超外在之美,而不是传统的内外兼修的苹果风格。
Part2. iOS7的新特性(开发者)
由于时间关系,对iOS7新API的研究还不多,主要是从官方文档了解到的一些信息。
1.UI设计的重大变化
对于开发者来说,最重要的新特性当然是UI设计方面的变化。不要说这个和程序猿无关,哪怕是写代码的朋友也需要看看iOS7 UI Transition Guide(iOS 7 UI Transition Guide) 和iOS Human Interface Guidelines(iOS Human Interface Guidelines)
当然还有UIKit User Interface Catalog(UIKit User Interface Catalog)
根据官方文档的介绍,iOS 7的UI设计重点关注功能交互和用户内容,而非外在的形式。
三个要点:
(1).Deference(区分):应用UI的设计重心是帮助用户理解内容,并产生交互,而非喧宾夺主吸引眼球。
(2).Clarity(清晰):所有的文字,图标都需要清晰易读,装饰性的东西要恰到好处。总之,要采用功能易用性导向的设计。
(3).Depth(深度):使用多个视觉图层和逼真的动画来让用户感到愉悦。
苹果用天气应用做了一个效果对比。
iOS7中的天气应用:
为了实现崭新的视觉效果,具体来说将用到以下元素。
UIKit Dynamics
开发者可以指定UIView类型对象的动态行为,而其它对象只要遵循UIDynamicItem协议,也同样可以指定其动态行为。使用视图和动态项目对象的动态行为,可以将真实世界的行为整合到应用中。
UIKit支持UIAttachmentBehavior,UICollisionBehavior,UIGravityBehavior,UIPushBehavior,UISnapBehavior等动态行为。具体可以参考新的UIKit Framework Reference(UIKit Framework Reference)
Text Kit
使用Text Kit可以更好的在应用中处理文字,并添加各种效果。Text Kit添加了以下几个新类:NSAttributedString,NSLayoutManager,NSTextContainer,NSTextStorage。
具体可以参考Text Programming Guide for iOS(Text Programming Guide for iOS)
2.Multitasking的加强
除了UI,开发者需要重点关注的是多任务Multitasking的加强版。
iOS7支持以下的新后台任务执行模式:
(1).需要更新内容的应用可以通过系统注册,从而被唤醒,或是定期在后台下载内容。可以将应用Info.plist文件中的UIBackgroundModes 的键值设置为fetch,然后使用setMinimumBackgroundFetchInterval: 方法来设置获取信息操作的最小时间间隔。此外,还需要在appdelegate中实现application:performFetchWithCompletionHandler: 方法来执行更新和下载。
(2).之前使用push推送服务的应用可以使用这些推送消息来启动后台下载操作。为此,需要在应用的Info.plist文件中将UIBackgroundModes的键值设置为remote-notification。 此外,应用的appdelegate中还需要实现application:didReceiveRemoteNotification:fetchCompletionHandler: 方法。
这两点对一些需要后台自启动应用来说至关重要,具体请参看“App States and Multitasking”
3. 游戏开发新框架
iOS7 中提供了一个全新的Sprite Kit Framework,使用它可以轻松创建2D和2.5D游戏。Sprite Kit Framework中提供了图片渲染和动画系统,音效播放功能,以及物理引擎。这样看来是cocos2d-iphone的直接竞争对手了~
使用Sprite Kit开发的应用用场景来管理内容,一个场景中可以包含纹理对象,视频,基于路径的矢量图,Core Image,以及一些其它的效果。
除了Sprite Kit Framework,苹果还在Xcode5中提供 了创建粒子效果和纹理图集的工具。
更多信息请参看Sprite Kit Programming Guide
示例项目:code:Explained Adventure
4.Game Controller Framework
使用Game Controller Framework,开发者可以在应用中配置使用MFI(Made-for-iPhone)游戏控制器。
如此看来苹果即将很快进军视频游戏和电视行业了。
更多信息请参看:
Game Controller Programming Guide
5. Game Center完善
Game Center一直以来乏善可陈,开发者可以自行研究:Game Center Programming Guide
6.Maps
Scott Forstall被赶走了,也没见苹果的地图应用有太大改进。Map Kit Framework提供了一些新的特性,主要是对3D地图的支持,比如MKMapCamera类。
7.AirDrop
使用AirDrop可以让用户在临近的设备之间分享照片,URL和其它类型的数据。AirDrop的支持已经内置在UIActivityViewController 类中。
更多请参看:UIActivityViewController Class Reference
8.Inter-App Audio
Audio Unit Framework添加了对应用间音频的支持,从而可以在同一设备中的不同应用间发送MIDI命令和缓冲音频。举个例子,你可以在一个乐器应用中录制音频,然后发送到另一个应用进行处理。
这一点对于音乐类应用的开发者比较重要,可参看Audio Toolbox Framework Reference
9.Peer-to-Peer 连接。
使用该功能,可以在无需互联网连接的情况下发现临近的设备,并建立直接通信。
详细请参看Multipeer Connectivity Framework Reference
总结一下,iOS7中添加了以下几个新框架:
(1)Game Controller Framework 和游戏控制器硬件有关
(2)Sprite Kit Framework 游戏开发框架
(3)Multipeer Connectivity Framework 建立peer-to-peer网络的框架
(4)JavaScript Core Framework 可以更好的在Objective-C类中使用JavaScript代码,解析JSON数据。
(5)Media Accessibility Framework 管理多媒体文件内容
(6)Safari Services Framework 可以使用代码将URL添加到用户的SAfari阅读清单中。
除了这些新框架之外,iOS7还对一些老的框架做了完善。
值得高兴的是,iOS7中所弃用的API寥寥无几,这就意味着之前iOS版本的API基本上都是可以沿用的。
在iOS7 beta1中所弃用的API包括:
(1)Map Kit Framework中:MKOverlayView
(2)Audio Toolbox Framework中: AudioSessionAPI
(3)Core Location Framework中:CLRegion
(4) CBCentral类的UUID属性被弃用
(5) UIKit Framework中:
UIViewController类的wantsFullScreenLayout属性被弃用。在iOS7中,视图控制器始终支持全屏模式。
UIPopoverController类不再支持箭头方向的标记。
UIColor对象被弃用
NSString类的很多绘制方式被弃用。
(6)libsyscall函数库的gethostuuid函数被弃用。
(7)在iOS7中,如果要获取iOS设备的MAC地址,系统会返回02:00:00:00:00;00.r如果要识别设备,需要使用UIDevice的identifierForVendor属性。
详细信息请参看iOS 7.0 API Diffs
以上这些差不多就齐了。
个人觉得最有用的新特性是增强的multitasking和新的游戏框架,当然UI设计变化也是没办法的事情。
Part 3. Xcode5 初体验
下载完Xcode5,总的感觉是比Xcode4靠谱,希望能够如同Xcode3.x那么稳定可靠。
打开Xcode5-DP后,首先会提示你下载OS X 10.9 doc set,iOS7 doc set,Xcode 5 doc set,Command Line Tools。当然此时你是不可能正常下载的,先不予理会。
进入Xcode后,从顶部菜单栏中选择Preferences,然后切换到Accounts,在这里添加自己的开发者账号,然后切换到Downloads,然后选择下载那几个东西。OS X10.9 doc set就别下了,除非你有Mac开发者账号。
感兴趣的话可以把iOS6.1和之前版本的Simulator也下载,不过考虑到你肯定留有一个Xcode4的备份,就没这个必要了。纳尼?你已经把Xcode4删除了?!!那你这几个月还怎么干活?
为了体验下,还是新开一个项目吧,可以看到多了一个SpriteKit Game的新模板,就选它来创建一个新项目吧。
新项目的界面很清爽,比Xcode4给力。
选择simulator为iPhone(Retina 4-inch),试运行一下,首先看到的还是经典的hello world。顺便赞一下,从点到运行速度超快!
每点一次屏幕就多出现一个飞机,看着帧速刷刷刷的往下掉!不过既然是Simulator,就暂时不苛求了。
按照老习惯,再创建一个cocos2d-iphone新项目跑跑看。一切正常,竟然只有两个黄色警告:
再来一个新的 cocos2d-x 项目,跑一下看看。还算正常。
最后要跑一下老项目。先Update to recommended setting,然后直接run运行。
除了一些cocos2d自身文件因为版本问题引起的警告,一切都是正常的。
最后的最后看一下官方文档中Xcode5的新特性。
(1)用户界面的美化
这一点做得不错,看起来比Xcode4要爽一些,而且打开和运行速度明显提升了不少。“User Experience Improvements”
(2)自动配置
增加了Accounts设置,Capabilities设置,可以使用target editor选择signing identity,可以自动创建provisioning profiles。“Automatic Configuration”
(3)更方便的测试,参考“Testing”
(4)团队协作功能的加强,参考“Continuous Integration”
(5)调试器功能升级,参考“Debugger”
(6)新的Interface Builder,可以更好支持iOS 7 设计风格。参考“Interface Builder”
(7) 版本控制和源代码控制,SVN升级到1.7.9,: “Source Control and Version Editor”
(8)编译器,不再支持LLVM GCC,参考“Compiler”
(9) Instruments,支持Zombies instrument,参考“Instruments”
(10)支持Sprite Kit,包括对纹理图集的内置支持,并提供了一个粒子效果编辑器。
详细可参看What's New in Xcode “New Features in Xcode 5.”
最后的感叹
在试用了iOS 7 beta1和Xcode5之后,最大的感受是,苹果已经完全去乔布斯化了。以前的苹果是内外兼修,比如乔布斯时代连机箱上的螺丝钉都要力求好看。如今的苹果则是追求内在美超过外在美,以iOS7为例,UI视觉效果方面很多不尽人意之处,但功能交互和易用性却超级NB。看来,性格决定产品风格,如今的苹果产品已经是偏内敛的Cook风格。
而这一切,仅仅是个开始,10月左右的硬件发布会或许会最终决定苹果未来5-10年的走向。