massive view controller
善用狀態機架構 大幅簡化 View Controller !
我們常常會碰到一個 View Controller 要處理不同狀態的情況,比如說,它本身就提供了編輯與非編輯狀態。如果資料是從網路 API 抓回來的話,那可能要處理載入與錯誤狀態;如果資料缺乏內容的話,也許還要加上空白狀態。這些狀態每一個在處理的事情可能很簡單,但如果全部都丟給同一個 [...]
利用 Container View Controller 拆開職責 視圖控制器不再複雜又臃腫!
視圖控制器 (View Controller) 這個元件提供基本構建塊,作為我們在 iOS 開發中構建 App 的基礎。在 Apple MVC 世界中,它是視圖 (View) 和模型 (Model) 之間的橋樑,充當兩者之間的協調者。控制器是一個觀察者,針對模型的更改作回應,然後更新視圖;並從使用 Target [...]
Massive View Controller 重構: Swift Extension 整理術
Extension 是 Swift 裡用來延伸既有型別的東西。透過 Extension,當我們想為某個型別加功能的時候,就可以不用把新的功能寫在該型別的主體裡面。比如說,如果我們想為 Cat 增加一個 purr() 方法的時候,可以這樣寫: [crayon-5de91a06bc634594599886/] 這種能力讓我們可以為一些碰不到原始碼的型別,加上我們自己給的功能。這也就是所謂的回顧式建模 [...]
Massive View Controller 重構:Coordinator 模式與 Flow Controller
在上一篇文章中,我們用了依賴注入的技巧,來將 View Controller 與 Model Manager 之間的耦合解開。然而,View Controller 的依賴並不只是這樣而已,View Controller 與 View Controller 之間的依賴更為常見。 比如說,當要在 View Controller 之間傳遞資料的時候,Apple 會告訴我們要這樣寫: [...]
Massive View Controller 重構:透過依賴注入 (Dependency Injection) 減輕職責
View Controller 可以說是 iOS 開發裡的核心物件。這不只是因為它佔據了 MVC (Model-View-Controller) 中的中心位置 Controller,還因為 UIKit 團隊有意推動場景導向的設計。UIKit 本身是以當時的 AppKit 為基礎,針對行動系統所重新設計出來的一個框架。在原本的 AppKit 裡面,MVC [...]