📂
CMiOSBook
  • CMoney iOS Book
  • Coding 101
    • Value / Reference Type
    • ARC + Retain Cycle
    • 物件之間的溝通方式
  • 工具主題
    • 基本工具篇
    • Git 篇
  • 架構主題
    • MVC
  • CodingStyle主題
    • CodingStyle 規則
      • 專案(Project)
      • 命名(Naming)
      • 程式格式(Format)
      • 註解(Comment)
      • 類別與結構(Classes and Structures)
      • 修飾詞(Modifier)
      • 閉包表達式(Closures)
    • 靜態檢查器
    • 專案基本規定
  • UI主題
    • UIScrollViewDelegate & UITableViewDelegate
  • Charts主題
    • 簡介
    • Lesson1 Chart Setup
    • Lesson2 Chart Data
    • Lesson3 CombinedChartView
    • Lesson4 Renderer
  • Test主題
    • 單元測試的基本概念
    • XCTest-UnitTest
    • XCTest-UITest
  • 學習資源
    • 相關網站
    • 相關會議與社群
    • 計算機考題
Powered by GitBook
On this page
  • MVX 家族
  • MVC - 一切的原型
  • 下圖的架構是 iOS 的 MVC
  • MVP - Model-View-Presenter
  • MVVM - Model-View-ViewModel
  • MVVM-C - Model-View-ViewModel-Cordinator
  • VIPER - View-Interactor-Presenter-Entity-Router
  • 參考資料

Was this helpful?

  1. 架構主題

MVC

MVC是學習iOS最基本的設計模式,理解並應用他,使你的程式不再是義大利麵。

PreviousGit 篇NextCodingStyle 規則

Last updated 4 years ago

Was this helpful?

MVX 家族

現在主流的 iOS App 架構,都可以規類在 MVX,最早應可追溯至 MVC 架構。在 App 日益複雜的演進下,開始切出其他相對應職責的類別。

以跨平台為目的的 App,從不一定使用 MVX 系列。有可能會使用其他大公司定出的架構,也有可能發展出自己的架構。如 Redux 的 One way data flow (後來也被引入 SwiftUI 中),或是 Uber 提出的 RIBs 等。

MVC - 一切的原型

當你和另一個開發者談 MVC之前,請先確認雙方講的是不是同一個 MVC。

下圖的架構是 iOS 的 MVC

下圖的架構是 iOS 的 MVC

下圖的架構是 iOS 的 MVC

如果你的 App 發生下面這樣的資料流動,可能 MVC 的架構就是沒有照 Apple 的規範所設計。

MVP - Model-View-Presenter

Todo - 把資料補完

MVVM - Model-View-ViewModel

Todo - 把資料補完

MVVM-C - Model-View-ViewModel-Cordinator

Todo - 把資料補完

VIPER - View-Interactor-Presenter-Entity-Router

聽說 Agoda 是用這個架構

Todo - 把資料補完

參考資料

  • 架構MVC

  • 推薦影片

  • 其他架構

蘋果官方的 MVC 架構介紹
Ray Wenderlich 的 MVC 架構介紹
iOS 各種架構
The only viable iOS architecture(唯一可行的 iOS 架構)
iPlayground 2019 | 漫談 iOS 架構:MVC / MVVM / VIPER 與 Redux
iPlayground 2019 | 從MVC到MVVM,再到MVVMC的開發經驗分享
Uber/RIBs
Uber 新架构 RIBs 的前世今生
浅谈swift - uber/RIBs理解
SwiftUI data flow - Redux
MVC 在不同平台,會有不一樣的資料流動,iOS 的 MVC 是 Apple 的架構師針對 Cocoa 框架設計的,和其他平台不一樣,是很正常的
不遵守 Apple 規範下的 MVC
每一組 MVC 都照規範進行