2010年7月21日 星期三

大黑狗之iPhone APP Development初體驗(iPhone App上架流程))

原文連結:http://tw.myblog.yahoo.com/embedded_system_book/article?mid=823
昨天(20100718)把Studio BigBlackdog的第一個iPhone提交Apple審查。

從idea生成,到完成提交,斷斷續續約半個月的時間。因為這個AP的規格比較簡單,實際寫code與測試的時間約三天,但既然想在Apple的商店賣,當然就得按照Apple的規定來走,所以當第一次進行iPhone AP開發時,其實要執行的步驟與流程不少,而且並不是那麼的直覺。

基本上大黑狗認為iPhone APP開發並非傳說中那般直覺簡單,只是大黑狗這輩子做系統做久了,AP的API也訂了不少次,所以對系統該有的功能,與SDK該有的API比較有sense,再加上對memory leak有種反射性的直覺,所以coding時碰到卡關的時間較少。

趁著記憶還深刻時,我想列舉一些到目前為止對iPhone APP開發的心得,應該可以對想要進入此領域的朋友多少有點幫助。大黑狗對此也算初學者,持續從實作學習中,若有不正確的地方,請路過的高手不吝指教:

1. 因為開發iPhone程式必須使用apple的開發環境-xcode,所以首先就是要有蘋果電腦囉; 大黑狗買了一台二手的MacBook,花費兩萬多(創業維艱,現在沒法像當初花七八萬買VAIO那樣的大手大腳),個人認為這筆交易相當值得,這台小白用來編譯程式,裝VMware or iParallel跑Win7都很順 - 順帶一題,上述那台七萬多的VAIO目前當作server與暖爐。

其實MacBook, MacBook Pro或Mac Mini與知名品牌的筆電比起來並不算貴,且CP值高; 個人認為不需要費心去搞黑蘋果啦。

2. 不用擔心在MaxOS上工作的問題,幾天就習慣了。

3. 開發iPhone APP只要從Apple下載xcode與最新版的iPhone/iPad SDK,free!安裝好後就可以寫程式在模擬器上run了!

4. 先不管其他非正式管道,要把寫好的程式下載到實體機器上執行,只有交Apple保護費一途,也就是購買 iPhone Developer Program。這個步驟網路上教學很多,幾乎沒有人沒碰到問題,還有需要跟Apple以電話或mail往返多次才搞定的,許多朋友看到這些資訊,很容易在此卻步。

但大黑狗在申請時完全沒碰到問題,除了apple持續在改善它的一些申請流程外,其實只要注意兩個重點就可以了:1. 使用iTunes時所設定的Apple ID,以及申請iPhone Developer Program時所需設定的帳號,兩者最好完全一樣 (這樣就不會混淆,保證一路暢通)  2. 需要輸入名字時千萬不要用中文。 That's it!

5. 交了保護費後還要到 iPhone Provisioning Portal 搞定一些事情才能真正下載程式到機器上測試,Apple網站的指引蠻清楚的,如果不放心,買本書或問問Google照著做就是了,步驟不少。

許多朋友一時可能無法完全弄懂Development Cerificates, provisioning profile, APP key...這些鬼東西是幹麼的,大黑狗建議先別花時間在弄懂這個,它們會讓你很挫折...

6. helloWorld可以run了,然後呢?每個人都很熟iPhone有哪些功能,但要如何對應到obj-C這怪程式語言,與該使用哪些iPhone SDK API,就實在很茫然了。

有人會選擇找一堆書來看,然後看完後會發現似乎沒有一本書可以把iPhone SDK所有功能都解釋完整的; 此外看了後面,就忘了前面,而且簡直忘的比張無忌學太極劍還快,看了一堆書,還是不知如何下手。

對此學習階段,大黑狗的建議是:

a. 先弄懂obj-c的語法 - 如果你熟C or C++,則入門門檻不高,不會花太多時間,之後多看範例程式很快就會熟悉這個鬼東西了。如果要大黑狗說在學習obj-C時最重要的事情,我會說是搞懂object的生命週期,亦即retain counter的運作原理。

b. 弄熟xcode的操作方式 - 如何加入程式,如何加入resource,如何對程式除錯...

c. "盡量"弄懂Interface Builder的操作方式 - iPhone AP的GUI設計不像在Visual Studio上,只要把control拉到合適位置,然後選擇event,double click後就跳到幫你產生好的event handler的空method了。interface Builder雖然也是拉來拉去,但絕對比你想像的還不直覺!建議找本書按照它的範例做,當然還是從button, lable...開始,然後是較複雜的view controller...,多做幾次,也許你就會抓到感覺。
(好吧,我承認我欠缺想像力,我現在還是無法完全領悟IB的精隨,但基本GUI元件操作還OK)

d.找一兩本iPhone programming的教科書,很快的翻過,重點在程式架構以及有哪些API模組即可,這個階段不宜超過三到五天,否則前面會忘光光,看了也白看。

7. 接下來就是開始寫程式了嗎? 

不對!大黑狗帶team多年,始終堅持沒有規格是不能寫程式的。當然拿些範例來改改是ok啦,但就算是一人團隊,一開始把產品規格寫好,絕對可以節省自己很多時間。

7. product spec.完成後總可以開始寫程式了吧?

建議再稍等一兩天,找幾個人氣較旺的iPhone AP開發論壇,爬爬文,稍微感受一下你可能會碰到的問題有哪些。

8. 基本寫程式該注意的事項我就不提了。開發時,當碰到某些功能不知如何實作,基本上從Google或論壇上都很容易找到答案。在此大黑狗要強調的是:如何使用iPhone SDK的API完成某些功能,這些都是Apple的規定,你很容易就忘了,就算記得流程,你也很難完全記得要使用的class與method的名稱,難道每次都要在google並人工過濾一次嗎?

解決方法大家都知道,就是把這些功能包裝起來變成自己的模組,下次使用時直接調用即可。如果不想包裝,至少要加註解,下次可以很快可以從code裡面搜尋出來。

9. 程式在模擬器與實機上測試完後,接下來要製作上傳APP store的版本。在此你會面對要支援哪些機器(iPhone3G, 3GS, iPad, iPhone4)的選擇,如果程式用到iOS4的功能,如iAD,則就無法在iPhone3G/3GS上執行,對該AP的銷售是好是壞,必須自己評估(e.g. 是否值得為了iAD,放棄許多尚未升級到iOS4的潛在買家?)。

10. 製作上傳給Apple審查的執行檔則是另一個故事,你必須到iPhone Provisioning Portal去搞定Distribution Cerificates, provisioning profile... 同樣是找本書照著做比較不會出錯。

11. 上傳程式時先把相關資料準備好:
a. 執行檔的壓縮檔(檔名不能有空格)
b. icon - 可以的話,請備齊以下解析度(請出photoshop吧): 
    Application Icons - 
        57x57(Icon.png)    
        114 x 114 pixels (high resolution)  
        iPad - 72x72
    Small Icons - 
        29x29(Icon-Small.png)    
        58 x 58  (high resolution) 

    512x512 (iTune Connect需要)
c. 對該AP的功能介紹 (至少要有一個英文的版本,可依銷售地區再增加其他語言的版本)
d. screen shot - 有規定解析度 (e.g. 320x480...)

12. 連上iTune Conneect,要上傳AP或管理帳務等都在這個網站,這裡有不少事情要做:
a. 銀行帳戶認證 (現在的流程比網上論壇裡看到的要簡單,可以很容易搜到台灣的銀行分行。你只要確認你的銀行帳戶可以轉美金進來即可 - 否則Apple會幫你把美金轉台幣,聽說手續費是天價)
b. 稅務認證 - 這個不會碰到什麼問題,唯一要做的是如果你的AP要賣日本,日本政府default會抽走20%的稅,除非你填一張表格,簽名後寄給美國Apple,Apple會幫你寄給日本稅務機關。(有一種說法是台灣與日本沒有關稅協定,所以這張表格對台灣人沒用,因為尚未得到證實,所以大黑狗還是把表格寄給Apple了)
c. 上傳程式,並設定price

然後就是等待Apple的審查了,Steve Jobs說一個星期就可以有結果,我來看看是不是真的。


以上是大黑狗目前記得起來的 - 開發第一隻iPhone AP的流程與注意事項,有想到其他的我之後再補上吧。

沒有留言:

張貼留言