專訪最牛iPhone開發團隊:走進移動開發
原創【51CTO獨家專訪】移動應用開發和軟件商店模式在中國還是藍海,隨著移動互聯網和智能終端的發展,必將帶來新一輪的開發熱潮。139.ME就是走在移動開發前面的團隊,從2008年App Store上線他們就開始轉向iPhone上的游戲和應用開發,目前已成功發布數款產品并獲得不菲的收入,被稱為國內最牛iPhone開發團隊。51CTO近日拜訪了139.ME的技術總監谷更新先生,由他來為我們講述移動開發的技術點滴。
139.ME技術總監谷更新先生
51CTO:您最初接觸軟件開發是什么時候?接觸移動開發是什么時候?一開始就選擇的是iPhone平臺嗎?
139.ME:最初接觸軟件開發應該在98年左右。接觸移動開發就是在App Store上線的時候,2008年7月份。是因為App Store上線,才接觸的移動開發,所以肯定是選擇的iPhone平臺。
51CTO:想做iPhone應用開發,但蘋果有一套自己的開發技術,系統、語言、工具都不一樣。當時都學了哪些技術?學習的周期和成本如何?
139.ME:我在上大學時,用的是C/C++,工具用的是微軟的VC。最初開始轉型時感覺沒怎么費勁,只是把Objective-C的語法看了一下,又看了一部分源代碼。感覺都是C系列的語言,所以沒有太大的障礙。用了大概兩周的時間,我寫出了***款小程序。
51CTO:從其他(傳統)的開發平臺轉到移動開發,當時有哪些不習慣、不適應的地方?
139.ME:因為我一開始就接觸的iPhone開發,所以其它移動平臺的開發我不是很清楚。我只是感覺屏幕小了,CPU和內存小了,可以干的事情相對少了。很多游戲的特效都無法實現了。
51CTO:還記不記得當時寫的***個iPhone應用是什么?用了多少時間?
139.ME:***個程序叫<<生命計算器>>,就兩個界面,一個是讓你輸入你的基本信息,生日,體重,是否吸煙等等,然后用一個很簡單的算法,算出你還能活多少秒。另一個界面就是顯示這個秒數,并且還在不斷減少。前面提到了,用了兩周左右的時間,做出這個小程序。
谷更新的***個iPhone應用《生命計算器》截圖
51CTO:您和您的團隊成員在ACM(國際大學生程序設計大賽)得過獎,轉向iPhone平臺可能并沒有什么障礙,但對于剛入門或者剛畢業的計算機系學生,他們會不會有困難,要注意些什么問題?
139.ME:我覺的他們遇到的***困難應該是習慣問題,他們可能已經很習慣在Windows下開發,習慣的是很多Windows的API,所以轉iPhone開發會很不習慣。我覺得最需要注意的是要克服習慣問題,克服一些心理上的問題。有些人往往先入為主,先接觸Windows就老是用Windows的標準來衡量iPhone開發,這是不應該的。
51CTO:139ME現在已經成為國內最知名的移動開發團隊,以您的經驗,在移動開發方面,要求開發人員具備哪些基本的技術積累和素養?
#p#
139.ME:技術方面我要求他們對C語言很在行就行。其它方面我的要求很簡單,就是多用蘋果,少用Windows。
51CTO:通過139ME的3G夢工廠,您是不是也接觸到很多致力于移動開發的入門者?他們現在處于怎樣的狀態?還欠缺哪些技術和經驗?
139.ME:接觸過一些,他們有Windows下的開發經驗,但是缺少對蘋果的認識。缺少對蘋果文化的理解。技術上主要是對Objective-C語言還很陌生,iPhone SDK的API更加陌生。
51CTO:在近幾期的編程語言排行榜中,Objective-C很火爆,這與iPhone開發的發展有很大關系,有51CTO網友提出:Objective-C是靠硬件產品而崛起的編程語言,您怎么看?
139.ME:Objective-C能更多的被人所認知,肯定得歸功于iPhone。所以我很贊同這種看法。
51CTO:作為C語言的一個OO特性擴展集和Mac平臺的專有開發語言,您如何看Objective-C和C語言的區別和聯系?很多其他語言的開發者在轉向Objective-C的時候抱怨它缺少(像字符串處理、命名空間等)一些有用的特性。
139.ME:Objective-C比C多了面向對象的概念,我把Objective-C看成另外的一種C++。另外我覺得沒什么可抱怨了,如果沒有什么,就直接用C替代就可以了,比如字符串處理,我都是用C。
51CTO:除Objective-C之外,139ME在日常的開發和項目管理中都用到哪些開發工具?
139.ME:開發環境,也就是開發工具當然是Xcode,另外編輯界面還常用到Interface Builder。另外Xcode本身就帶一些代碼管理的功能,如SVN,CVS等等。
51CTO:結合這些工具和Objective-C語言,iPhone程序的開發效率如何?
139.ME:我認為效率是很高的。蘋果把他的設計理念都融合了進去,控件,動畫效果等等,我們可寫很少的代碼,就能做出很Cool的效果。
51CTO:與傳統的軟件開發相比,移動開發還是一個比較新的領域。在軟件工程和方法方面,移動開發的需求分析、項目管理和后期維護方面有沒有不一樣的地方?
139.ME:我覺得基本是一樣的,不同的地方只是在需求分析這塊,很多人不了解iPhone開發,所以經常用一些其它手機的標準來衡量iPhone,所以經常會碰到有些功能不能實現或是實現起來很難的情況。
51CTO:51CTO最近推出了一份移動應用開發者調查,一些數據顯示,目前60%的開發者在進行Android開發,五分之一的移動開發者同時進行iPhone和Android兩個平臺的開發。139.ME是不是也在進行Android應用的開發?
139.ME:我們主要是進行iPhone開發,Android方面我們也有部門在做技術積累。
51CTO:和iOS相比,Android開發有哪些不一樣的地方?在技術難度和開發效率上來說,Java是不是比Objective-C容易些?
139.ME:Android相對iOS開放了很多,很多底層的東西都能訪問到,很多設備都能完全控制。從難度上和開發效率上講,Java和Objective-C,我感覺差不多。
51CTO:有時開發人員喜歡講編程的樂趣,拋開商業和盈利能力不講,單純從技術角度而言,iPhone和Android哪個平臺上的開發更具樂趣?
139.ME:如果單純從技術角度講,那么在什么平臺開發就不是那么重要了,我們最終面對的都是二進制0和1。那么就看你比較喜歡那種平臺的風格,比較習慣那種語言了。我個人還是比較喜歡iPhone開發的。
51CTO:除了開發技術,iPhone開發還有那些不一樣的地方?之前我們有一篇《iPad軟件設計初步》的文章,里面提到iPad在軟件設計和用戶體驗方面的一些不同理念(比如“觸手可及”、功能減法等),手機應用軟件上對UI的設計是不是也是如此?
139.ME:做iPhone開發,實際上是在給蘋果做開發,所以必須遵守蘋果的"游戲規則",如果你的程序不是很"蘋果",那么你的程序就很不容易被大多數人認同。甚至有些時候,連蘋果的審核都過不了。iPhone和iPad都遵循的蘋果的UI設計理念,所以都是差不多的。
51CTO:產品創意、UI、技術實現和后期的推廣,對一款手機軟件來說,您認為那一點更重要一些?
139.ME:在iPhone開發中,還是創意方面比較重要,UI都跟蘋果學,技術也不會有太大區別,而放在App Store上幾乎不用后期推廣。所以還是需要你有Good idea。
51CTO:傳統軟件中,有些產品設計和UI的問題可能程序員并不關注,移動開發是不是也是這樣?還是移動應用對開發人員有不一樣的要求?
139.ME:移動開發只要是因為屏幕小了,輸入方式變了,所以UI的設計很重要。移動開發是很注重這個環節的。如果結合設備自身的特點,設計出適合的UI是一個很大的課題。一個好的移動開發人員基本上都在UI設計上有很好的見解。
【編輯推薦】