移動三國己然鼎立,普通開發者如何選擇開發平臺?
Nokia和Microsoft 終于搞基成功,業內人事普遍都看好兩家廠商的“軟硬結合”。這一結局直接把Windows Phone 7 這一新興手機移動操作系統送到與如日中天的 iPhone 與 Android 在同一位置上,變成了三國之勢。究竟兩家公司的合作是 " No - Win " 還是 "Win - Kia " 這里不做討論,只能引用我們瓷器國的某些專家常用的語言來說:這兩家公司的合作有可能贏、有可能輸,具體贏輸要看最后的結果才知道~~~囧~~!當然還有Symbian, Meego, RIM, webOS和三星的 Bada 甚至還有基于 Android 的 Ophone ,但以上這些還未形成氣候,暫時不做考慮。
我們所關心的問題是做為一個想轉入做移動開發的程序面對這三大操作系統【Android 、 WP 7 、IOS】該如何選擇一個平臺讓自己有所發展?首先我們來對比一下三大平臺。
編程語言
Android 應用是用 Java 語言編寫的,當然還有jni的編程方式,使用C/ C++,但主要的還是使用 Java 。許多開發人員通過熟練掌握 Java 語言在企業中獲得了職位 ,因此為 Android 平臺開發應用很自然地適合這些人。就語言特性而言,有過C# 等熟悉面對象開發語言的程序員,要學習Android 開發也是可以的,因為 Android 用的只是Java的語言基礎,最重要還是要看思想。
IOS 應用是用蘋果的 Objective-C 語言編寫的,Objective-C 語言是一種包含Smalltalk語言元素的非標準C語言。有過C/C++開發經驗的程序員可以比較好的轉向IOS開發,但還會在開發過程中遇到一些小障礙。
Windows Phone 7 應用是用微軟的C#語言編寫的,有過.net平臺開發的程序員想要學習WP7開發,相信難度不大。如果你之前是Silverlight 、WPF開發者那恭喜你,你可以很快速的學好 Windows Phone 7 開發。
三大平臺都使用的不同的語言編寫,Android 之所以選擇Java 語言,無非是看中Java 編程語言排行首位的優勢,想迅速的收獲大批開發者,而另外的兩個平臺卻使用自家的編程語言,相信也是無可厚非。這一結果直接導致在三種平臺的開發,不能寫一套代碼就能解決。當然有很多工具可以使它們使用不同語言開發AP,比如Mono可以讓C#跨平臺,Rhomobile的Rhodes、Nitobi的PhoneGap、Appcelerator的 Titanium和Ansca的Corona等。
然而這些仿真器卻不是最佳方案,因為運行一個兼容性框架會過度消耗性能在有限的移動處理能力上,這是用戶所不能接受的。
封閉系統VS 開放系統
Android:眾多OEM廠商都選擇了Android,正是看中了其足夠開放,可供定制個性化的系統。并且Android有著不僅是手機操作系統的豐富產品線:智能電視、車載設備、家庭安防、家庭物聯、物流設備等。這就給開發者更多選擇的機會,就業機會也會大大增加。但由于其足夠開放,導致了手機平臺的不統一,規格不一,導致開發者在開發一款應用時所要維護的時間會比另外兩個平臺花費的時間要多得多。
IOS: 作為蘋果的移動操作系統,該平臺一直是封閉的,是專門為蘋果自己的設備創建的,開發人員有己知的目標設備范圍,有明確的功能和局限性范圍。而jobs 也說過,作為IOS開發者只需要考慮兩個版本的維護。說過產品線性,IOS有iPhone、iPod Touch 、iPad這三個平臺可以作開發,其中iPhone和iPod Touch是一致的,而iPad 屏幕尺寸較大,只需在iPhone的基礎上調整好應用的尺寸即可,當然屏幕大小導致用戶體驗不同,對應的AP會也不同。
Windows Phone 7:微軟這一系統明顯是借鑒了IOS的開發模式,也是一封閉系統,他只支持兩種屏幕大小,所以要維護自己的AP也是比較輕松的。目前該平臺只做手機平臺而存在,市面上并沒有其他各類的產品使用該系統,開發者選擇性會小點,但好在與Nokia合作市場不用擔心 。
學習資源和測試工具
提高開發速度也是開發者選擇一個平臺衡量的重要標準。
Android 是一個開源的產品,有眾多的樣本應用和開源應用提供下載,但是沒有太多中文文檔,還有文檔不全也是它的一個缺點,但有眾多開源應用這一優勢學習AP開發并且入門比較容易。IDE 使用 Eclipse,集成開發環境有豐富的源代碼模型,而且源碼處理很好。不過Google在處理兼容性方面還需努力,有時候插件會死掉,但這個可以忽略,重啟IDE即可。
IOS 蘋果向許多IOS開發人員提供了眾多開發信息,包括多媒體式,甚至是有iPhone或者iPad的開發者可以使用iBooks免費下載開發書籍。不過相對于國內來說比較心酸,都是些E文的東西,很難啃。IDE 方面,因為我們沒有用過,但網上說XCODE非常糟糕,用過的朋友可以說說。
Windows Phone 7 眾所周知,微軟在籠絡開發者有一套手法,首先它的學習資源和文檔非常豐富。而且在我們國內文檔有分中英文文檔,入門基本不是問題。而且有WebCast這個視頻教育平臺,MVP們通過自己的實踐經驗己視頻的方式傳授給大家,勝任WP7開發基本沒問題。IDE方面,這個不用我多說,有 Visual Studio 和 Expression Blend 這兩大神器。
展望未來
Android,被眾多OEM廠商擁抱,特別是國內的山寨文化。未來前景將一片光明。而且它將改變很多目前的電器設備的使方式。用戶方面偏中、低,當然高端用戶也存在較之IOS要小。
IOS,蘋果將繼續為其添加更多酷炫功能,并且引用到其他設備上。用戶方面還是搶占著高端用戶。
Windows Phone 7,微軟和諾基亞合作,諾基亞強大的硬件設計和優秀的營銷能力、微軟的軟件大牛,使得這一系統有很大的潛力和上升空間。
總結
如果開發者單純想學習App開發,最好的選擇還是IOS,營利模式比較明朗,但是“須”有MAC機才能做開發,而不是必須,但最好是使用MAC機開發。對于沒有MAC機的同學,還有在I系列價格居高不下的情況下,建議同學選擇WP7開發,雖然市場營利模式不明顯,但其潛力足夠大。而Android因為用戶習慣了免費,除了廣告的收入基本可以說沒有其他收入。除非公司想做多平臺產品推廣,例如某一IM軟件、某一播放器、某一看書軟件、某一微博等。
但是如果開發者想做差異化開發,做出有競爭力的產品。不妨考慮一下Android ,軟硬結合的方式可以構建出差異化的產品,但這條路的學習線路很漫長,必須上下層一起打通,沒有個幾年工夫很難成氣候。
開發者可以想想自己需要什么,想做什么,這三個平臺都是很有發展空間的,找到自己合適的最重要。不管什么,移動的時代來臨了。希望上述能對你投入移動開發有所幫助。