iOS6和Xcode4.5初体验-图多杀猫
看了WWDC2012的发布会后,作为一个开发者,当然选择第一时间下载ios6beta和与之配套的Xcode4.5preview,当然,还有最新的iTunes10.6.3。
接下来对iOS6和Xcode4.5的特性和使用体验介绍一下。
首先是iOS6,在使用Xcode4.5给4s更新到iOS6之后,我迫不及待的对其中的一些新特性进行了实际体验。
1.中文Siri
在一阵幸福和激动之后,我发现为什么siri被称为beta版了,siri对中文的支持目前看来要远逊于对英文的支持。语音识别没什么问题,但在语义分析和本地搜索上问题颇大。
下面是几个测试的截图:
第一次使用siri时看到下面的提示:
一些常用助理功能表现的中规中矩:
经常会碰到本地搜索无效的问题:
接下来是考验siri智商和情商的时候:
本地信息欠缺,而且配音的感觉象日本人。
目前来看,siri的智商有待提高。
2.内置新浪微博的支持
考虑到twitter和facebook对于天朝用户就是个摆设,新浪微博的“系统级别”强势入驻无疑是非常NB的。
进入设置界面可以看到新浪微博的设置选项:
然后可以进入设置:
输入信息后会提示你安装新浪微博客户端:
具体使用时最方便的其实是照片分享:
打开系统内置的照片应用后,按左下角的按钮就会出现下面的画面:
然后选择新浪微博就可以很轻松的把照片分享给好友:
另外新浪微博客户端在ios6里频繁崩溃,比weico都远远不如。
3.地图
iOS6里面抛弃了Googlemaps,采用了tomtom的信息,并增强了导航功能,但我在试用国内地理位置搜索时,多次出现无法找到所需位置的情况。而且地图的体验比googlemaps有相当大的差距:
4.passbook
这是一款伟大的应用,前提是它在中国也能够工作的很好。按照苹果的官方描述,该应用提供信息数据和付款的一体化,包括机票购买、咖啡购买和视频等。例如你想喝咖啡,用这个应用可以涵盖哪儿有星巴克咖啡店、想要什么样的咖啡、付款三个方面结合起来。这是从信息提供到直接解决需求的App整合。
可以说,有了这款应用,很多LBS和移动支付的第三方应用就gameover了。
不过测试时还完全没法使用:
以上是从用户的角度看iOS6的实际体验。
接下来从开发者的角度来看看iOS6.0beta的一些特性:
1.Maps(地图)
在iOS6.0中,Maps应用和Mapkitframework将支持和其它应用的更多交互。开发者可以更轻松的把地图整合到自己的应用中,此外地图中还提供了路线信息,以及导航服务
开发者可以选择将应用注册为routing应用,这样Maps应用就会自动识别哪些应用属于routing应用,并提供相应支持。
更多信息可以参考开发者网站中的Location Awareness ProgrammingGuide。
2. Social Framework(社交)
使用Social.framework,开发者可以获取用户的社交媒体账户信息。其中包括了对Twitter,Facebook和新浪微博的全面支持。使用这个框架,可以在应用内发送状态更新,以及分享图片。此外还可以和Accountsframework共同使用。
另外,UIKit framework中还提供了一个新类UIActivityViewController,其用途之一是允许用户向自己的社交媒体账号发布内容,如Twitter或Facebook。
更多信息可以参考Social Framework Reference和UIKitFramework Reference
3.Pass Kit
Pass Kit是一个全新的技术,它用到了网络服务,新的文件格式,以及一个基于Objective-C的PassKit.framework来提供对可下载passes的支持,比如优惠券,音乐会门票,打折卡之类的。有了这个东西,只需要拿着iOS设备就行,不再需要实体的东西。
更多信息可以参考Pass Kit Programming Guide.
4. Game Center
GameKit.framework中增加了几个新的特性:
.增加Challenges(挑战),让玩家可以向好友发起挑战。
.GKGameCenterViewController类整合了之前leaderboard,achievement,friend request这几个视图控制器。开发者可以选择使用之前的视图控制器,也可以使用这个类。
.验证本地玩家的流程发生了变化。GameKit不再显示验证界面。
.回合匹配类现在支持玩家超时。
.GKMatchmaker类现在可以更好支持通过编程实现玩家匹配。
.GKPlayer类可以显示玩家名称。
.GKMatch类提供方法来判断哪个玩家到GameCenter服务器的连接最通畅。
.GKAchievement 类现在可以支持同时提交多个成就。
更多信息可以参考Game Kit Programming Guide.
5. Reminders(提醒)
Event Kit framework提供了新的界面,支持在玩家设备上创建和访问reminder
更多信息请参考EventKit Framework Reference
6.In-App Purchase
Store Kit framework(StoreKit.framework)现在支持在应用内购买iTunes商店中的内容,并可以将可下载内容放在苹果服务器上。
使用新的SKDownload类,可以代表可下载的内容。
更多信息请参考Store Kit Framework Reference.
7.Collection Views
UICollectionView类提供了一种新的方式向玩家呈现有序数据。
更多信息请参考UIKit Framework Reference.
8. UI State Preservation
运行用户保存上一次使用时的用户界面
9. Auto Layout
自动布局,不再赘述,参考CocoaAuto Layout Guide
10.Data Privacy(数据隐私)
在允许第三方应用访问特定的用户数据前,系统将要求获得用户的授权许可,包括:
.Contacts(通讯录)
.Calendars(日历)
.Reminders(提醒)
.Photo Library(照片库)
可以在Info.plist中添加描述,更多请参考InformationProperty List Key Reference
11.其它完善
包括对UIKit Framework, OpenGL ES, Media Player Framework ,ImageIO Framework, iAd Framework, Foundation Framework, ExternalAccessory Framework, Event Kit Framework, Core Video Framework,Core Media Framework, Core Location Framework, Core BluetoothFramework, Core Audio, AV Foundation Framework, AccelerateFramework.
内容太多,开发者可以自行参考:
https://developer.apple.com/library/prerelease/ios/#releasenotes/General/WhatsNewIniPhoneOS/Articles/iOS6.html#//apple_ref/doc/uid/TP40011812-SW1
使用iOS6.0开发的一些问题参考:
https://developer.apple.com/library/prerelease/ios/#releasenotes/General/RN-iOSSDK-6_0/_index.html
最后来看看Xcode 4.5 preview版本。这方面的改进都是一些细微的调整,开发者最好还是实际体会,这里只随便提一下。
1.安装
安装Xcode4.5需要最新的OSX 10.8开发者预览4,或者OSX Lion10.7.4
Xcode现在和其它应用一样,是一个单独的应用程序包(applicationbundle),所以只需要把下载完成后的Xcode应用拖到Applications文件夹就好了。
2. 官方介绍的新特性
(1)源代码编辑
Xcode会记住最近所完成的代码项目,从而在弹出提示时给以更高的优先度。
(2)InterfaceBuilder
Storyboards现在支持视图控制器的内包含。如果要在某个视图控制器的视图中添加另外一个视图控制器,那么可以从Library中添加一个container视图,然后创建一个到目标视图控制器的内置segue。
3.实际体验
看说明是一回事,实际体验又是一回事。
(1)Xcode4.5+普通iOS应用
打开Xcode45-DP1, 选了一个苹果官方的示例AlternateViews项目。选择iPhone6.0 Simulator,然后看到下面的画面:
更新设置后点Run,一切正常。
部分之前的应用会提示出错,把BuildSetting里面的Complier更改为LLVM GCC 4.2就好了。
(2)Xcode4.5 +cocos2d
我的cocos2d是最新的2.0rc2版本,创建一个新的helloword项目完全没有任何问题。当然有一些警告,如下图:
打开之前的一个老项目(cocos2d 1.0),警告当然一大堆了,好在最后还是可以跑。
最后一点,Xcode在我的air上气喘嘘嘘,机子速度明显变慢。
结论:
1.因为是beta版,iOS6的很多特性远远没有官方展示的那么强大友好,期待正式版
2.没有开放Siri的接口很失望
3.新浪微博和socialframework的加入是个惊喜。
4.iOS普通应用开发和测试用Xcode45+ios 6.0 beta毫无压力
5.如果是基于cocos2d等第三方开发框架或引擎,那么最好等正式版吧,明显有点不给力。
6.pass 框架值得研究下,特别是搞LBS和移动支付的。