awesome iOS architecture
- Checkout https://indiegoodies.com/
Better ways to structure apps
let buzzWords = [
"Model", "View", "Controller", "Entity", "Router", "Clean", "Reactive",
"Presenter", "Interactor", "Megatron", "Coordinator", "Flow", "Manager"
]
let architecture = buzzWords.shuffled().takeRandom()
let acronym = architecture.makeAcronym()
Content
- MVC
- MVP
- MVVM
- Composable Archiecture
- Clean Architecture
- Unidirectional Data Flow
- VIPER
- VIP
- SwiftUI
- Data Source
- Best Practices
MVC
Model View Controller
Posts
- Model-View-Controller, Apple Docs
- Looking at Model-View-Controller in Cocoa
- Do MVC like it’s 1979
- A Better MVC, Part 1: The Problems :rocket:
- Using child view controllers as plugins in Swift
- MVC.
- Model-View-Controller without the Controller
- Just Controllers
- A Better MVC
- MVC: Many View Controllers
Repos
- MVCTodo A very simple "To Do" app to illustrate the principles from my "A Better MVC" talk
MVP
Model View Presenter
Posts
Repos
- AppDemo
- foodMVP
- ios-mvp-clean-architecture
- iOS_MVC_MVP_MVVM_SampleApp
- MVP-iOS
- MVP-iOS
- MVPExample
- MVP
MVVM
Model View ViewModel
Posts
- Introduction to MVVM
- MVVM is Not Very Good
- Simplification Of IOS View Controllers: MVVM Or Presentation Controls?
- On MVVM, and Architecture Questions
- Reddit-MVVM-Benchmark MVVM with FRP Benchmark project
- The MVVM Pattern for iOS Apps in Swift: a Pragmatic Approach
- MVVM Is Quite Okay at What It Is Supposed to Do
- MVVM-C In Practice
- MVVM in Practice - RWDevCon Session
- View Models at Kickstarter
- How not to get desperate with MVVM implementation
- iOS Architecture: A State Container based approach :rocket:
- Different flavors of view models in Swift
- Reactive view models, simplified
Repos
- TheReactiveArchitecture The modern and reactive architecture for RxSwift application
- kickstarter vm structure Rx input and output
- Coordinator-MVVM-Rx-Example Example of MVVM-C architecture implemented with RxSwift
- RxCoordinator iOS framework that helps you implement Model-View-ViewModel-Coordinator architecture.
- ModernMVVM - A movie iOS app built with the MVVM architecture, Combine and SwiftUI frameworks
Composable Architecture
Repos
- swift-composable-architecture A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
Clean Architecture
Posts
Repos
- CleanStore A sample iOS app built using the Clean Swift architecture
- CleanArchitectureRxSwift Example of Clean Architecture of iOS app using RxSwift :rocket:
- Reminders An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS
- CleanSwiftArchitectureGenerator A generator of Clean Swift Architecture files
Unidirectional Data Flow
Posts
- Unidirectional Data Flow in Swift: An Alternative to Massive View Controllers
- Ziggurat iOS App Architecture
- ziggurat App architecture with one-way data data flow and view models
- Rethinking iOS App Architecture Using a One Way Data Flow
- Elmification of Swift
- StateView Views that automatically update themselves.
- Render Swift and UIKit a la React.
- Real World Flux Architecture on iOS :star:
- Turning UIKit Inside Out :star:
- App Coordinators and Redux on iOS
- ReSwift Tutorial: Memory Game App
- Building a Unidirectional Data Flow App in Swift with Realm
- Architecture Thoughts: Migrating Marvel's iOS App to ReSwift ..
- Functional architecture for Swift
- iOS Architecture: Separating logic from effects :star:
Repos
- ReSwift Unidirectional Data Flow in Swift - Inspired by Redux :star:
- Reactor Unidirectional data flow in Swift
- Aftermath Stateless message-driven micro-framework in Swift
- Renderer Swift and UIKit a la React.
- Few.swift Views as functions of their state.
- SwiftFlux A type-safe Flux implementation for Swift
- katana-swift Swift Apps in a Swoosh
- Dispatch Multi-store Flux implementation in Swift.
- ReactorKit A framework for reactive and unidirectional Swift application architecture :rocket: :rocket:
- RxFeedback Architecture for RxSwift
- tea-in-swift The Elm Architecture in Swift
- Suas-iOS Unidirectional data flow architecture implementation for iOS, macOS, tvOS and watchOS http://suas.readme.io
- ReactComponentKit ReactComponentKit is a library for building UIViewController based on Components.
- Highway Fast and simple multi-store Redux-like architecture for iOS/OSX applications
- Mobius.swift A functional reactive framework for managing state evolution and side-effects from Uber
- ReCombine A Swift Redux library utilizing Apple's Combine Framework
- SwiftRex Swift + Redux + (Combine|RxSwift|ReactiveSwift) -> SwiftRex
- tempura-swift A holistic approach to iOS development, inspired by Redux and MVVM
- OneWay A Swift library for state management with unidirectional data flow.
VIPER
View Interactor Presenter Entity Router
Posts
- Introduction to VIPER
- Architecting iOS Apps with VIPER
- Brigade’s Experience Using an MVC Alternative
- First Observations on TDD with VIPER
- Building Modular iOS Apps
- iPhreaks Show – VIPER with Conrad Stoll and Jeff Gilbert
- Clean Architecture - VIPER by Redbooth
- Humble Object Pattern in Swift
- Should I use Viper architecture for my next iOS application, or it is still very new to use?
- VIPER to be or not to be?
- iOS Project Architecture: Using VIPER
- iOSModulesArchitecture Quick example of how divide an app into modules to respect the SOLID principles
- ARCHITECTING MOBILE APPS WITH (B)VIPER MODULES - A STRUCTURED ENGINEERING APPROACH FOR BIG MOBILE APPS
- Clean Architecture - VIPER at Redbooth by @sergigracia
- VIPER to be or not to be
- Building iOS App With VIPER Architecture
- Viper Framework for iOS using Swift v3
- VIPER-S: WRITING YOUR OWN ARCHITECTURE AND UNDERSTAND ITS IMPORTANCE (PART 3)
- Facing the VIPER
- Building a Framework with VIPER
- Implementing VIPER Architecture Pattern for iOS
Repos
- iOS-Viper-Architecture A detailed sample app that implements VIPER architecture
- iOS Viper XCode Templates Another detailed sample app that implements VIPER architecture with code generation templates
- iOSSwiftStarter A sample iOS app written in Swift using the VIPER architecture.
- VIPER-TDD A sample iOS app written in Swift 4 using VIPER architecture with unit tests.
VIP
View Interactor Presenter
Posts
SwiftUI
Posts
- SwiftUI Architectures: Model-View, Redux & MVVM
- Building a Scalable SwiftUI Architecture
- SwiftUI and State Management
- Building complex modular architectures with SwiftUI, Combine and Swift Package Manager (SPM)