All Projects → nick6969 → MVVM

nick6969 / MVVM

Licence: MIT License
MVVM - POP & OOP

Programming Languages

swift
15916 projects
perl
6916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to MVVM

Modelassistant
Elegant library to manage the interactions between view and model in Swift
Stars: ✭ 26 (+100%)
Mutual labels:  mvp, mvvm
Thirtyinch
a MVP library for Android favoring a stateful Presenter
Stars: ✭ 1,052 (+7992.31%)
Mutual labels:  mvp, mvvm
Karchi
Repository that showcases 3 different Android app architectures, all with Java and Kotlin versions: "Standard Android", MVP and MVVM. The exact same app is built 6 times following the different patterns.
Stars: ✭ 20 (+53.85%)
Mutual labels:  mvp, mvvm
Iosdesignpatternsamples
This is Github user search demo app which made by many variety of design patterns. You can compare differences in MVC, MVP, MVVM and Flux.
Stars: ✭ 622 (+4684.62%)
Mutual labels:  mvp, mvvm
Ios Design Patterns
Learning ground for iOS Design Pattern included with sample projects for MVC, MVP, MVVM, and VIPER
Stars: ✭ 120 (+823.08%)
Mutual labels:  mvp, mvvm
Devutils
🔥 ( 持续更新,目前含 160+ 工具类 ) DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。该项目尽可能的便于开发人员,快捷、高效开发安全可靠的项目。
Stars: ✭ 680 (+5130.77%)
Mutual labels:  mvp, mvvm
Mvvm Kotlin Android Architecture
MVVM + Kotlin + Retrofit2 + Hilt + Coroutines + Kotlin Flow + mockK + Espresso + Junit5
Stars: ✭ 1,014 (+7700%)
Mutual labels:  mvp, mvvm
Westore
更好的小程序项目架构
Stars: ✭ 3,897 (+29876.92%)
Mutual labels:  mvp, mvvm
Ios Architectures
Sample app for iOS architectures
Stars: ✭ 90 (+592.31%)
Mutual labels:  mvp, mvvm
Architecturesamplewithfirebase
これは、iOSアプリを色々なアーキテクチャで実装してみたものです。
Stars: ✭ 89 (+584.62%)
Mutual labels:  mvp, mvvm
Androidquick
做外包用的快速开发库--微信、支付宝支付(含签名,下单)、自定义View(验证码/密码,九宫格图片上传等)、换肤、图片预览、RxJava、EventBus、JetPack、CameraX、base层封装等
Stars: ✭ 565 (+4246.15%)
Mutual labels:  mvp, mvvm
Android Firebase Kotlin Java Mvp Mvc Mvvm Chat
Simple chat Application with one to one connectivity using Firebase Real time Database written in MVC,MVP and MVVM architecture to better understand the android coding patterns. Purpose of writing same application functionality with 3 different pattern is to show how single application can be developed using 3 different patterns(Mvc, Mvp, Mvvm).
Stars: ✭ 180 (+1284.62%)
Mutual labels:  mvp, mvvm
Viabus Architecture
让 Android 开发可以像流水线一样高效的,职责分离架构 ⚡ 不同于 MVP 的配置解耦,也不能和 似是而非 的 MVVM - Clean 同日而语。VIABUS 是世界范围内首个明确提出,通过职责分离,来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念。
Stars: ✭ 485 (+3630.77%)
Mutual labels:  mvp, mvvm
Ribs
Uber's cross-platform mobile architecture framework.
Stars: ✭ 6,641 (+50984.62%)
Mutual labels:  mvp, mvvm
Androidproject
Android 技术中台,但愿人长久,搬砖不再有
Stars: ✭ 4,398 (+33730.77%)
Mutual labels:  mvp, mvvm
Flair
This is powerful android framework
Stars: ✭ 31 (+138.46%)
Mutual labels:  mvp, mvvm
TpHulk
androidx,mvp,mvvm,jetpack
Stars: ✭ 19 (+46.15%)
Mutual labels:  mvp, mvvm
mvc-tree
🌳 A chronological visualization of the family of MVC patterns.
Stars: ✭ 40 (+207.69%)
Mutual labels:  mvp, mvvm
Business Search App Java
Showcases object oriented programming in Java, Java Swing, Kotlin, and Android
Stars: ✭ 53 (+307.69%)
Mutual labels:  mvp, mvvm
Androidarchitecture
Android Architecture using Google guides
Stars: ✭ 127 (+876.92%)
Mutual labels:  mvp, mvvm

關於

這是一個 MVVM 的展示專案

ViewModel 使用 POP & OOP 建立

方便使用,並且減少大量重複的 Code

--

架構

Model

Just Model


ViewModel

持有 Models

var models: [Model]

有自己的狀態

var status: ViewModelStatus

負責取得資料(Web Api / Locale DB)

func loadData()
func loadDataMode()

負責通知 ViewController Loading 狀態

var loadingDelegate: ViewModelLoadingDelegate?
var loadingStatusDelegate: ViewModelLoadingStatusDelegate?

提供 Method 讓 ViewController 取用 Model

var datasCount: Int
func model(at index: Int) -> Model?
func isLastData(index: Int) -> Bool
func isLoadMore(index: Int) -> Bool

提供 Method 讓 ViewController 呼叫做事

func refreshData()
func nextStatus()

ViewController

持有 ViewModel

var viewModel: BaseViewModel

conform ViewModel 的 Delegate

extension ViewController: ViewModelLoadingDelegate

func loadingDone()
func loadingFail(_ error: Error?)

extension ViewController: ViewModelLoadingStatusDelegate

func showEmptyView(with: Error?)
func removeEmptyView()
func showLoading(_ bool: Bool)

請 ViewModel 做事

viewModel.nextStatus()
viewModel.refreshData()
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].