iOS MVC App 的 Xcode 專案如何分類檔案(project organization)
開發 iOS App 時,隨著我們的技術愈來愈厲害,能夠開發愈多的功能和畫面,專案裡的檔案往往也愈來愈多。此時最好能將檔案做個分類,在 project navigator 建立 group(黃色資料夾),方便我們一目瞭然了解 App 的架構。但是該怎麼分類呢 ?
分類的方式其實沒有標準答案,對於採用 MVC 架構開發 iOS App 的初學者來說,不妨參考 Apple 在 Develop in Swift Data Collections 電子書裡的建議:
Lesson 1.3 Model View Controller
簡單版的分類:
分成 5 種:
- View controllers
view controller 相關的檔案。
2. Views
畫面相關的檔案,比方自訂的 cell 類別,自訂的 button。
3. Models
資料相關的檔案。
4. Other controllers
其它 controller,主要有 model controller & helper controller 兩種。
(1) model controller:
負責控制 model,比方 Notes App 裡可用 NoteController 控制 note 的相關功能。
(2) helper controller
負責某個特別的功能,比方負責網路功能的 NetworkController。
5. AppDelegate, SecenDelegate & Main.storyboard 單獨放在最外層。
複雜版的分類:
分成 8 種:
- View controllers
- Views
- Model
- Model controllers
- Helper controllers
- Protocols
- Extensions
- Resources ( 裡頭包含 storyboards,frameworks 等)
其它參考的分類
ray wenderlich 的教學範例將某些特別功能的檔案分在 Services 底下,比方抓取網路資料的 WeatherbitService & 將地址轉換成經緯度的 LocationGeocoder。