最近有越來越多軟體工程師想要開發手機軟體,有一位寫程式的朋友告訴我,最近搭捷運看到人手一隻iPhone的景象,讓他深刻感受到行動網際網路(Mobile Internet)比想像中要來得快,因此他想要開始學習手機程式。

在沒有iPhone之前,要談行動網際網路的應用可早得很。但是,iPhone綁著3G一起賣,竟意外地踢開了3G費用這個絆腳石,幾乎所有購買iPhone的消費者都連帶成為3G用戶了。

當你看到身旁有越來越多人開始使用iPhone、Android等新一代手機,不時拿來玩遊戲、聽歌,或是趁通勤時上網處理郵件,行動網際網路似乎瞬間就來臨了。而軟體工程師置身其中的感受,或許就像我那寫網頁程式的朋友一樣,似乎看到了未來的景象:不久的將來必須會開發手機程式才行。

新一代手機軟體跟以往有很大的不同,有許多意想不到的事情。以往手機開發常遇到的大問題,現在可能不再是個問題,但以前不困難的事,現在卻可能是手機軟體開發的一大挑戰。

例如,過往開發手機得特別注意效能問題,像是得小心翼翼地處理記憶體,因為以前智慧型手機不論是處理器或記憶體,效能都不甚理想。而今,Google手機Nexus One可是配備1GHz的處理器,這可是不輸PC的配備了,有Android開發經驗的人,甚至覺得寫Android程式比較像是在寫Java程式,而不是行動版的Java。

但是對於從來都沒有寫過手機軟體的人而言,首先得克服的難題就是,手機作業系統不會幫你處理記憶體回收的問題,即便記憶體容量比以往大很多,但你得自己處理記憶體的問題,這些經驗是以往在開發桌面與網頁應用程式不須顧慮的。

至於iPhone的開發則有更多的不同。要開發iPhone程式之前,你得先有一臺蘋果電腦,學會用Mac OS,因為iPhone的開發工具Xcode只提供Mac OS版本。接下來,你還得通過Apple的審查。許多人寫了一輩子程式,壓根沒遇過寫個程式還得先接受身家調查,而且程式寫完之後還得由Apple審查過內容,才能上架,很像是言論管制的時代。

此外,iPhone採用與C語言類似的Objective C,相較於大家用慣了.NET、Java、PHP等等,寫iPhone程式得重頭補強C語言,這也是一個較難克服的門檻。

不過,這些都還不是最難克服的。新一代手機平臺,其實都提供了很友善的操作介面,直接照著開發工具給的元件來用,像是很漂亮的按鈕等等,許多軟體工程師其實都能寫出UI很漂亮的程式。但是軟體如果只是呈現漂亮,而操作方式難用,那麼在新一代手機平臺上就很容易會出局。因為消費者自從開啟iPhone電源的那一刻,他的操作體驗就馬上提升到Apple的檔次,日後當他用到設計不夠好用的軟體,很容易會察覺出軟體的難用。所以,軟體工程師最大的挑戰之一,在於你得跟Apple比UI設計。

到底新一代手機好不好開發,需要注意什麼想不到的事,在本期的封面故事──「新一代手機開發:iPhone vs. Android」,我們綜合了過來人的開發經驗,讓想寫手機程式的人有個指引。(請見第24頁)

現在,有了令人喜愛的手機、時時刻刻連線的3G網路,以及足夠多的3G用戶,行動網際網路的大門已經打開了一半,剩下的就看軟體工程師的創意了。

專欄作者

熱門新聞

Advertisement