- Started from Pawel Krawiec's ios-architecture & Bo-Young PARK's BringMyOwnBeer-
- Studied MVVM+RxSwift with Miguel Lin's RxSwift-MVVM-Demo
- Studied Coodinator Pattern with wojciech-kulik's Swift-MVVMC-Demo
- Studied Clean Architecture with Oleh's iOS-Clean-Architecture-MVVM
Thank for people of this list!
List | Search | Random |
---|---|---|
![]() |
![]() |
![]() |
Swift 5, Xcode 12.5
Image Download - Kingfisher
Package Management - Cocoapods
$ pod install
1. Objc-MVC
UI - Storyboard
Image - NSCache
Network - NSData to Json
UI - Storyboard
Network - URLSession
UI - SnapKit
Network - URLSession
UI - SnapKit, Then
Network - URLSession
UI - Storyboard, RxDatasource
Network - RxURLSession
Unit Tests π - RxTest
UI - Storyboard, RxDatasource
Network - RxURLSession
Unit Tests π - RxTest
Xcodegen π
$ brew install xcodegen
$ cd MVVM-RxSwift-xcodegen/
$ xcodegen
UI - Storyboard, RxDatasource
Network - RxURLSession
Unit Tests π - RxTest
Tuist π
$ bash <(curl -Ls https://install.tuist.io)
$ cd MVVM-RxSwift-tuist/
$ tuist generate
SPM,
- Rome, Carting, Fastlane
$ chmod +x carthage.sh
$ ./carthage.sh update --platform iOS
Reference
UI - SnapKit, Then, RxDatasource
Network - Moya
Unit Tests π - RxTest
UI - SnapKit, Then, RxDatasource
Network - RxURLSession
Repositoy Pattern - CoreData
Unit Tests π - RxTest, Nimble
UI - SnapKit, Then, RxDatasource
Network - RxURLSession
Repositoy Pattern - Realm
Unit Tests π - RxTest, Nimble
UI - SnapKit, Then, RxDatasource
Network - RxURLSession
Repositoy Pattern - Sqlite3
Unit Tests π - RxTest, Nimble
5-1. MVVM - RxSwift - coreData to Clean Architecture
UI - SnapKit, Then, RxDatasource
Network - Moya
Unit Tests π - RxTest, Nimble, Quick
CI - Github Actions π
UI - SnapKit, Then, RxDatasource
Network - Moya
Unit Tests π - RxTest, Nimble, Quick
CI - Github Actions π
DI - Swinject
UI - SnapKit, Then, RxDatasource
Network - Moya
Unit Tests π - RxTest
- MVVM - RxSwift - RxFlow to Clean Architecture
DI - Swinject
UI - SnapKit, Then, RxDatasource
Network - Moya
Unit Tests π
9. VIPER + Rx
UI - SnapKit, Then, RxDatasource
Network - Moya
Unit Tests π - RxTest
VIPER Template - VIPER + Rx Xcode Template
10. RIBs + Rx
Package Management - SPM
UI - SnapKit, Then, RxDatasources
Network - Moya
Unit Tests π
Reference
1. SwiftUI- MV
- iOS 13
Using @State only
Network - Moya
2. SwiftUI-MVVM
Using @Published
Network - Moya
Unit Tests π
Using Combine's PassthroughSubject
Network - Moya
Unit Tests π
Using Combine's PassthroughSubject
Network - Moya
Unit Tests π
4. SwiftUI 2.0
- iOS 14
- SwiftUI-MVVM-Combine's SwiftUI 2.0
Used
ScrollView {
LazyVStack {
Instead of
List {
Used
if viewModel.isLoading {
ProgressView()
.progressViewStyle(CircularProgressViewStyle())
.scaleEffect(2.0, anchor: .center)
}
Instead of
ActivityIndicator(isAnimating: $viewModel.isLoading, style: .large)
5. SwiftUI 3.0
- iOS 15, Xcode 13.0
- SwiftUI-MVVM-Combine's SwiftUI 3.0
Used
.refreshable {
Instead of
.introspectTableView { scrollView in
Used
AsyncImage
Instead of
KFImage
Used
.searchable(text: $viewModel.text)
Instead of
TextField("Search ...", text: $viewModel.text