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