Ch.2 Build your first iPhone project

翻到第二章節,我們終於有機會可以對程式開發進一步了解了。不論是開發哪一種語言或是技術,好像 Always 從 Hello world! 開始。以前學 VB, 組合語言,當我第一眼看到 Hello world! 我想說,這個東西可以做啥?有用嗎?後來開始學習 Java ,一路從 Console 打出 Hello world! 到 JSP, servlet 總是第一步在 show 訊息於畫面上。一直到現在 iPhone 開發手冊要教的第一個 Project 也是 Hello world。

但是看完這章,我已經從輕視的態度,變成尊敬的心。因為這不只是單單顯示 Hello world 而已,作者相當用心,作者希望我們用最簡單的程式為起頭,但是以一位 iOS 開發人員寫程式過程會碰到的所有周邊事項,全部列了出來。這樣我們可以焦點專注於,身為一個 iOS 開發人員需要具備的操作知識。

介紹了如何 Create, compile, and debug Xcode projects,並且從 Xcode 的 UI panel,每一個區域都相當仔細的介紹,讓讀者可以對於開發 iOS 每天為伍的 Xcode 熟悉操作與上手。

Xcode 提供了簡易使用的 templates 作為 project 的起頭,或者自己開發久了有經驗想要客製化自己熟悉的部份,重新包裝成新的 templates 作為下次使用。


想要成為一個 iOS 開發人員,從 Xcode 打開參考文件 document 是很重要的。沒有人可以把這麼多的知識蒐集在腦袋,所以要知道如何查起,瞭解 class, method, property 如何呼叫與使用。版本一直在演進,所以要記得時常更新,保持最新資訊是很重要的。

Interface Builder 讓程式拉畫面可以更為簡單方便。如果說寫程式也可以辦到是沒錯,但是 Interface Builder 提供了GUI 可以視決化的設計,如此一來讓開發者有很大的福音。

記憶體管理在 iOS 開發是很重要的。因為當一直持續使用大量記憶體,iPhone 會逼迫應用程式跳出,回到 SpringBoard。另外記憶體配製與釋放拿捏要好,如果該記憶體已經釋放了,但是操作指標又要指定過去,那麼這樣會馬上就跳出離開應用程式。,所以過多過少都會造成系統 Crash。

這樣行為對於 user experience 是相當糟糕的,而且這樣也會無法順利通過上 App store 前的審核階段。所以除了控制好記憶體之外,甚至到了 low-memory 階段也要開始釋放。Low-memory 有兩種情形:leaks that allocate memory blocks that can't be accessed 配製 memory 指到不能被定位的地方或者 reused and holding on too much data at one 一次擁有大量的資料。了解 Leaks 發生,知道使用 Caching 技巧示重要的。這章也介紹了使用 Instruments 去 detect leaks 的地方,也可以透過 Instruments 去觀看 Cached object allocations 情形。另外 Xcode 有提供 Clang static analyzer,所以有發生 leak 現象也會告知開發人員。

Organizer pane 提供了知道哪些 Devices 是連接進來,使用部署到上面實體機器測試。另外也讓實體 Devices 可以跟 Organizer pane 擁有更多的互動與抓資訊。

最後當然寫完的 Projects 要準備 release 出去,這邊有兩種 Distribute 方式:可以選擇一般 App Store distribution、Ad Hoc Distribution 到 App Store 外面進行例如 beta 測試。

設定習慣的 Xcode Templates 讓為來開發的初期,不用在那麼的費力。

以上單單簡單的 Hello World! project 就可以用這麼多周邊的 tools 去了解每一個定位和如何輔助開發人員開發程式。我想最令人感到窩心的是,記憶體管理如此重要,導到日常開發就要注意,開發不但要會 debug 更要會去分析記憶體使用的情況好不好。良好的效能不但能讓應用程式跑起來順暢,也是一個 iOS developer 該盡的責任。

更多可參考於 The iPhone Developer's Cookbook - Ch.2 Build your first project

Comments