iOS 5與Mac OS X Lion平臺的技術展望
今年WWDC 2011會議發布了iOS 5與Mac OS X Lion的預覽。 我對這個會議技術上的感受只要有三個:1. 蘋果發布云服務產品和技術框架,其云策略和Google及其他廠商的有所不同,在用戶體驗和開發者實現上略勝一籌。2. "Cut the Cord",剪掉連線,去掉iOS對PC/Mac的依賴。3. iOS與Mac OS的應用體驗會越來越相似。技術上,iOS和Mac OS的新功能API會出現更多的交集。從另外一個角度來說,蘋果利用現有的iOS開發者數量上的優勢,盡力拉攏他們也為Mac OS而開發出優秀的應用,每個優秀的產品都能有移動和桌面客戶端兩條產品線。 好啦,下面讓我門來詳細說說以上的觀點。
蘋果的云策略
蘋果認為,對用戶來說,加入云服務后的優秀應用應該對原有的應用體驗不該有太大的變化,只是在很多地方變得更加方便。什么意思呢?以iWork為例子,就是你原來是怎樣編輯文檔的,添加了云服務之后編輯過程還是一樣,沒有改變,只是當你離開了iPad,到了iPhone,那個編輯過的文檔立刻就出現了。用戶不需要做出額外的操作。蘋果堅決走客戶端client+云API的路子,這個路子對用戶來說,體驗應該是***的,因為原生的native api做出來的應用才可能把設備的內存,圖形,圖像效果發揮到***。這個策略和google的chromebook路子是完全不一樣的,Google告訴你,有了chromebook,你就算把筆記本砸了,你的數據還是完好無缺,拿到一部新chromebook后可以有可以用了,但大家細心一想,你平時有多少機會把機子砸掉?我們再看看chromebook的用戶體驗吧,在chromebook上,你想要用你平時喜歡的app來編輯一下照片,chromebook會告訴你,沒有,去找一個web app吧,你想要打開你平時喜歡用的QQ軟件來聊天,沒有,去用web qq吧。很多早期的chromebook用戶反映,在沒有網絡的情況下,chromebook只是一塊磚。很多google io開會拿到chromebook以后,玩兩下就把它扔到一邊或者賣掉。這就是google的云策略,把用戶體驗來個180度的轉變,為的就是你砸掉筆記本后,可以立刻使用原來的數據。硬件的體驗就更不用說了,為了節省成本,價格上打敗netbook,注定chromebook的硬件造工比netbook更粗糙。
很多人肯定在wwdc都看到了老喬介紹蘋果新的數據中心,整個發布會下來之后,開發者恍然大悟,這個數據中心不但是為iOS和Mac的音樂,照片等云服務而建的,這個數據中心另外一個目的是為第三方開發而建的,想想,以前,如果開發者要做一個云服務的應用,iPhone、iPad、Mac上無縫交換數據,要自己搭建服務器,請問,當你的服務如果達到了百萬用戶級別以后,你的開發成本要多少?服務器運營成本要多少?現在有了iCloud API以后,這些成為都轉移到了蘋果的服務器上去了,轉移到蘋果的數據中心去了,你的很多部分的成本立刻為零。每年交給蘋果$99刀的開發者membership費用,你就可以開發出***,甚至***用戶的應用,而且你的服務器成本為零。這就是我認為蘋果在云策略上召喚更多開發者的另一殺手锏。用戶喜歡你的app,喜歡他的iPhone或者iPad,就會向蘋果購買更多的存儲空間,就這么簡單。
說到iCloud API,蘋果再次以開發者代碼改動最小為設計大綱,發布了一系列的新API。以前我們要做服務器端的數據交互,通常想到的就是在web端寫一系列的json接口,然后在iOS端將json轉換為NSDictionary或自定義的數據類型,然后再進行處理。有了iCloud之后呢?如果你原來就用iOS的數據庫框架CoreData,幾行代碼或者小設置,iOS自動就把你的數據庫備份到iCloud,你不需要任何考慮什么時候向服務器發出請求,什么時候下載新數據,這一切都在iOS后臺,它自己完成了。新引入的UIDocument概念就讓更多文檔應用開發變得無比的方便,一般文檔應用開發,例如我的iNotes for iPad為例,由于iOS的文檔操作都是不需要用戶點擊“保存”按鈕的,開發者要考慮進行后臺保存的規則和實現代碼,而且保證后臺save的IO操作不影響界面流暢性,就是不能block掉主線程。這一切有了UIDocument后,都是由UIDocument自己完成了,開發者不再需要寫這方面的代碼,只要告訴UIDocument從那里讀取、寫入IO數據,數據讀取后如何轉換開發者需要的數據格式就好了,甚至只要告訴UIDocument往那里存儲iCloud數據,UIDocument就自動上傳,下載和檢測云端數據的變化。如果云端數據和本地數據的內容有版本沖突,UIDocument會發出警告,提供歷史版本快照。說得太多了,這里就此打住了。
總的來說,iCloud真的非常有趣,估計今年年底會出現很多非常有意思的應用,蘋果在發布會甚至承諾windows native API,不過暫時完全沒有看到這方面的資料,如果是真的話,估計要做一個比較完整云端的跨平臺應用(iOS, Mac OS, Windows)就不難了。
后PC時代的移動設備
iOS 5.0開始,蘋果增加了一個概念“Cut the cord"--剪斷連線,或者叫PC Free。iOS設備作為一部后PC時代的設備。世界上的很多iPhone/iPad用戶家里都未必有一臺PC電腦,或者說他們買了iPad以后,就不考慮再為家里購買一臺PC了。所以iOS 5.0的其中一個理念就是設置,備份,安裝軟件等操作都無需一定要在桌面電腦上來完成。很多人可能說,Android手機從一開始就不必需要電腦來激活,設置等工作。但這次iOS 5在這個基礎上擴展了更多,很多原來只能在PC上才能完成的工作,在iOS 5以后,移動設備上也能完成。例如,iOS上的Photo.app實現了照片對比度,亮度修改,去除紅眼等一般PC上才能完成的操作。還有iMovie的高清視頻編輯,還有CoreImage能完成的人臉識別功能。這種類型的應用能在手機上運行,在幾年前真是不敢想像的。開發者們應該好好把握iOS 5這個機會,開發一些以前在PC上才能完成的任務,在移動平臺上也能做了。這種趨勢將同樣適用于企業應用軟件開發,未來幾年相信更多的企業級桌面應用會遷移到移動設備應用上去,現在就開始準備你的產品和項目吧。
iOS的多媒體技術
iOS的多媒體技術越來越強大,本人認為這個也是其他移動平臺和iOS的差距***的方面。隨著雙核CPU,強大GPU硬件,以及軟件GCD(Grand Central Dispatch)多核計算框架的介入,開發人員可以開發出越來越不可思議應用。例如,iOS5***的CoreImage API,可以每個人都很容易地對圖片的尺寸,亮度,色彩,修正紅眼等編輯。iOS 5 加入了另外一個本人認為非常有實用的功能,iOS AirPlay Mirroring。這個功能可以讓用戶通過無線AirPlay在寬屏大電視上播放視頻,瀏覽網頁,播放幻燈片。或者以后很多公司的會議室不再放著筆記本加幾個什么VGA/DVI轉換頭,一個$99刀蘋果 TV就好了,參會者拿著iPad進入會議室,誰要在大屏幕上顯示內容,連上AirPlay就好。這種場景特別適合商務和教育類。
Mac OS X Lion的App Store
Mac App Store的前景還是挺可觀的,畢竟Mac的銷售額還是一路攀升的,加上Mac OS的很多方面的軟件本來就比windows要少很多,需求空間很大。隨著iCloud API的加入,更多的iOS App會愿意為Mac OS X開發客戶端,Lion之后,對iOS開發者來說,為Mac OS X的開發學習成本將會越來越低,為什么?因為Mac OS X的開發API和iOS越來越相像,例如,Lion上的NSTableView學習了iOS的UITableView將會簡化開發。幾乎每個iOS開發人員都很熟悉UITableView,在Lion上實現tableview就不再繁瑣了。加上國內很多廠商近來都發布和更新了mac client軟件,如QQ for Mac, SPlayerX射手播放器, 迅雷等等。國內市場也開始擴大,開發者有空可以開始試水這個方向。
總結
Mac OS Lion開始拉近了與iOS之間的距離,例如它的多點觸摸(Multi-touch)操作,全屏應用體驗與Launch Pad,還有API之間的交集越來越多,這樣大量的iOS的開發者就可以比較容易、方便地為Mac開發出應用,而Mac一直傳承下來的強大功能,也越來越多向iOS遷移。這一大優勢是其他平臺沒有的,有也只有微軟才能做到,因為除了微軟和蘋果,沒有其他廠商既有強大桌面操作系統又有高性能的移動系統,Google雖然內部有Linux,但畢竟沒有經過無數用戶使用過的操作系統。微軟在移動平臺上還是沒有形成很大的氣候。iOS今年的***大特性就是iCloud,云應用已經到來,而不是即將來臨,現在iOS 5雖然到了beta3,不過很多新API還是用不了,或者bug無數,Sample code也還沒有出來,大家的差距還不算大,要做新應用的,趕緊學習吧!還來得及!