換了工作後,發現公司的專案用著一種自身淺薄經驗沒有看過的架構在開發,而且有著大量的protocol與delegate,甚至在自身的class 呼叫自己的protocol function,看得眼花撩亂。

查下去之後才知道,原來公司用了所謂的VIPER開發架構。

從第一天帶著困惑與恐懼,陸陸續續看了一些文章跟影片後,大概歸納出對VIPER架構的認識。

對所有初學者來說,是沒有什麼開發架構的。一個簡單的Table View畫面app也不太需要什麼架構。畢竟就只有一個Table View而已。

但是開發架構會一路從沒有架構(所有東西都塞在ViewController裡面)開始慢慢拆分,往MVC,MVVM/MVP,MVVM-C發展,最後可能就會走向VIPER

這幾個開發架構從單純走向複雜,是一層層為了解決前一層(或其他開發架構)所遇到或產生的問題而形成的。

VIPER可以說是比較複雜的一種控制方式

他把每一套畫面功能組都做成一套Module,然後用VIPER這五個東西串起來。

V: View(Controller)

I: Interactor

P: Presenter

E: Entity

R: Router

在VIPER架構中,每一個部分都分別負責了不同的工作。整個過程會有點雞生蛋蛋生雞的關係,因為他們會不斷地互相溝通協作如下:

Untitled

R: Router