munibsiddiqui / ios-architectures

iOS architectures - MVC, MVP, MVVM, MVVM-C, ReactorKit, VIPER, Clean Architecture, RIBs; Repository Pattern, Rxflow, Swinject, Tuist, Xcodegen, Cocoapods, SPM, Carthage + Rome

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iOS Architectures

API

Reference

  1. Started from Pawel Krawiec's ios-architecture & Bo-Young PARK's BringMyOwnBeer-
  2. Studied MVVM+RxSwift with Miguel Lin's RxSwift-MVVM-Demo
  3. Studied Coodinator Pattern with wojciech-kulik's Swift-MVVMC-Demo
  4. Studied Clean Architecture with Oleh's iOS-Clean-Architecture-MVVM

Thank for people of this list!

Screenshots

List Search Random

Concept

  1. Objc
  2. Swift
  3. SwiftUI

Environment

Swift 5, Xcode 12.5

0. Shared

Image Download - Kingfisher

Package Management - Cocoapods

$ pod install

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

MVVM - RxSwift - storyboard's

CocoaPods(original),

SPM,

Carthage

  • 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

❗️ Bug : If the simulator saves more than 1 page of beer list in CoreData, CoreDataManagerTest's randomTests fails. If you know a solution, Please PR.

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

❗️ Bug : CoreDataTests same.

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

❗️ Alert : I used ' DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) ' Because If tabbarflow does not navigate to a total of 3 flows, it cannot navigate to an alert. If you know a better solution, please PR!

❗️ Alert : I used ' DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) ' Because If tabbarflow does not navigate to a total of 3 flows, it cannot navigate to an alert. If you know a better solution, please PR!

❗️ Bug : CoreDataTests same.

UI - SnapKit, Then, RxDatasource

Network - Moya

Unit Tests πŸ‘Œ

❗️ Alert : I used ' DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) ' Because If tabbarflow does not navigate to a total of 3 flows, it cannot navigate to an alert. If you know a better solution, γ…‡

UI - SnapKit, Then, RxDatasource

Network - Moya

Unit Tests πŸ‘Œ - RxTest

VIPER Template - VIPER + Rx Xcode Template

Package Management - SPM

UI - SnapKit, Then, RxDatasources

Network - Moya

Unit Tests πŸ‘Œ

Reference

Using @State only

Network - Moya

Using @Published

Network - Moya

Unit Tests πŸ‘Œ

Using Combine's PassthroughSubject

Network - Moya

Unit Tests πŸ‘Œ

Using Combine's PassthroughSubject

Network - Moya

Unit Tests πŸ‘Œ

πŸ’• WAITING YOUR PR for the better codes.

About

iOS architectures - MVC, MVP, MVVM, MVVM-C, ReactorKit, VIPER, Clean Architecture, RIBs; Repository Pattern, Rxflow, Swinject, Tuist, Xcodegen, Cocoapods, SPM, Carthage + Rome

License:MIT License


Languages

Language:Swift 98.4%Language:Ruby 1.6%