Client-Side Architecture Pattern
MVC
(Massive View Controller) | Model | View | Controller | | ----------------- | ---- | ---------------------- | | Data structure | UI | Life cycle | | Data manipulation | | Setup view & animation | | | | UI navigation | | | | Data source | | | | Delegate | | | | Data conversion | | | | API call | | | | Business logic |
MVP & MVVM
Model | View | Presenter / VM |
Data structure | UI | Data source |
Data manipulation | Life cycle | Data conversion |
| Setup view & animation | API call |
| UI navigation | Business logic |
| Delegate | |
MVVM-C
Model | View | Presenter / VM | Coordinator |
Data structure | UI | Data source | UI navigation |
Data manipulation | Life cycle | Data conversion | |
| Setup view & animation | API call | |
| Delegate | Business logic | |
VIPER
Entity(Model) | View | Presenter / VM | Router(Coordinator) | Interactor |
Data structure | UI | Data source | UI navigation | API call |
| Life cycle | Data conversion | | Business logic |
| Setup view & animation | | | Data manipulation |
| Delegate | | | |
Reference