All Projects → ClintJang → sample-swift-mvvm

ClintJang / sample-swift-mvvm

Licence: MIT License
This is MVVM pattern testing with Swift.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to sample-swift-mvvm

YouTube-Downloader
An easy-to-use, YouTube video downloader, without pesky ads or malware.
Stars: ✭ 22 (-52.17%)
Mutual labels:  mvvm
mvcvm-swift-file-templates
Swift file templates for boosting mobile app development.
Stars: ✭ 16 (-65.22%)
Mutual labels:  mvvm
GBCLV3
Goose Bomb's Minecraft Client Launcher
Stars: ✭ 50 (+8.7%)
Mutual labels:  mvvm
TVToday
iOS TV Shows app with TMDb Api. RxSwift, MVVM, Clean Architecture. Tuist + Swift Package Manager
Stars: ✭ 27 (-41.3%)
Mutual labels:  mvvm
hros
基于SpringBoot的人事管理系统
Stars: ✭ 38 (-17.39%)
Mutual labels:  mvvm
LoginMVVM
Android login application with form validation and Database storage made using MVVM and Data binding
Stars: ✭ 19 (-58.7%)
Mutual labels:  mvvm
AppsTracker
Windows Application for tracking computer usage. C# + WPF + MVVM
Stars: ✭ 27 (-41.3%)
Mutual labels:  mvvm
WanAndroidMVVM
WanAndroid 客户端,采用 Kotlin 语言编写,项目使用 JetPack-MVVM 架构,采用 Retrofit + Coroutines + Coil 等开源框架开发。
Stars: ✭ 21 (-54.35%)
Mutual labels:  mvvm
AndroidGo
Android、Flutter 开发者帮助 APP。包含事件分发、性能分析、Google Jetpack组件、OkHttp、RxJava、Retrofit、Volley、Canvas绘制以及优秀博文代码案例等内容,帮助开发者快速上手!
Stars: ✭ 30 (-34.78%)
Mutual labels:  mvvm
awtk-mvvm
Model-View-ViewModel for AWTK
Stars: ✭ 55 (+19.57%)
Mutual labels:  mvvm
DeezerClone
This Application using Dagger Hilt, Coroutines, Flow, Jetpack (Room, ViewModel, LiveData),Navigation based on MVVM architecture.
Stars: ✭ 81 (+76.09%)
Mutual labels:  mvvm
RickAndMorty-AndroidMVVMSample
An android sample project using Jetpack libraries and MVVM design pattern
Stars: ✭ 17 (-63.04%)
Mutual labels:  mvvm
socket-chat
This project will help you build a chat app by using the Socket IO library.
Stars: ✭ 36 (-21.74%)
Mutual labels:  mvvm
DMSkin-Soft-Hide
隐藏软件&游戏的界面&任务栏图标&支持热键
Stars: ✭ 21 (-54.35%)
Mutual labels:  mvvm
MovieInfoMVVMiOS
Movie Info app using TMDb API built with MVVM
Stars: ✭ 38 (-17.39%)
Mutual labels:  mvvm
DevStories-app
A community app built using Kotlin, MVVM and Jetpack Libraries.
Stars: ✭ 24 (-47.83%)
Mutual labels:  mvvm
TMDbMultiplatform
Step-by-step guide on Kotlin Multiplatform
Stars: ✭ 86 (+86.96%)
Mutual labels:  mvvm
MoYu
MoYu 一款能够帮助你在工作时摸鱼的欢乐软件
Stars: ✭ 14 (-69.57%)
Mutual labels:  mvvm
WPF-Keyboard-Control
WPF Keyboard Control
Stars: ✭ 53 (+15.22%)
Mutual labels:  mvvm
Launcher-OnePlus
Customizable and Open Source Launcher for Android
Stars: ✭ 73 (+58.7%)
Mutual labels:  mvvm

swift mvvm sample

License Swift 4

Use Swift to study, note, and sample MVVM pattern.

MVVM의 과거

Microsoft architects인 Ken Cooper와 Ted Peters가 고안했었다고 합니다. 이후 Windows Presentation Foundation (WPF) (Microsoft의 .NET 그래픽 시스템)과 Silverlight (WPF의 인터넷 응용 프로그램 확장)에 통합되었고, John Gossman의 블로그에 의해 2005년 에서 MVVM을 발표되었다고 합니다.

이후 다양하게 파생?되어진 것 같습니다.

MVVM 란?

MVVM(Model-view-viewmodel) 패턴은 소프트웨어 아키텍처 패턴입니다.

비슷한 용어 (model-view-binder), 인터페이스의 이벤트 중심 프로그래밍을 단순화하기 위한 목적을 가지고 있습니다.

Model-View-ViewModel 패턴의 약자입니다.

M (Model)
- 실제 상태 데이터 모델, 접근 할 데이터

V (View)
- 모양, 레이아웃
- 추상화
- 재사용성과 테스트 용이성

VM (ViewModel)
- 개체를 쉽게 관리하기 위함
- 데이터 개체를 변환하는 역활
- 화면 표현의 대부분을 처리

그리고 Binder 개념이 내포되어있어서, 데이터와 커멘드바인딩(command-binding, Declarative data)가 
뷰 모델과 뷰을 데이터가 동기화할 의무를 없도록 만듭니다. 
이벤트 실행과, 속성이 연결되어있어서 속성값 변경시 뷰에 반영되도록 합니다.


※ 개체 : 전체나 집단에 상대하여 하나하나의 낱개를 이르는 말.

MVVM 상세

흐름도

계층으로 보면

프로젝트 안에서의 모습을 상상하면..

생각

1. MVVM 패턴의 소스를 처음 접하신다면, ViewModel 부터 분석해 나가시면 보다 수월하지 않을 까 싶습니다.
2. View는 디자이너 영역이라는 표현의 글도 읽었습니다. 그만큼 화면 표현에만 집중합니다.
3. Unit Test 도입이 수월하다고 합니다. 느낌은 오는 데, 실제 해봐야 확실히 안다 할 수 있을 것 같네요. (이것은 언제 할지.. 일단 후순위)
   - 테스트 주도 개발(Test-driven development) 도입도 쉽다.
4. 개발속도에 대해 생각하면, 그냥 패턴없이 개발하면 보다 결과물이 빨리 나오죠.. 그러나 개발 속도 향상이 아닌 유지보수의 비용 감소에 그 목적이 있다는 의견을 읽었습니다.
5. 뷰의 추상화를 만드는 것이 핵심이라고 합니다. 뷰의 추상화는 재사용할 수 있고(reusable) 테스트하기 쉽다(testable)의 글을 읽었습니다.
6. 이벤트를 발생시킬때 ViewModel이 명령을 가집니다. 모델의 행위를 실행할 수 있습니다.
7. Controller 는 바인딩 하는데 핵심역활을 하는 것 같습니다. 데이터 바인딩에 의존하는 데 그역활을 적절하게 수행하는 역활을 할 것 같습니다.


셈플 소스 구성

첫번째 셈플을 만들고 끝나면 두번째 셈플을 만들어 나가면서 여러형태의 셈플을 늘려나가며 MVVM 에 대해 셈플을 만들어보며 이해하려고 합니다.

구조 실행 전 (첫번째 셈플)
스토리보드
실행 후 (첫번째 셈플)

링크

etc

아직........셈플링 해보는 중.. 2번째 셈플 테스팅중, 정리중, 고민중, 생각중

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].