Skip to content

MrE-Fog/awesome-ios-architecture

Repository files navigation

awesome iOS architecture Awesome

❤️ Support my apps ❤️

❤️❤️😇😍🤘❤️❤️

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

Model View Controller

Posts

Repos

  • MVCTodo A very simple "To Do" app to illustrate the principles from my "A Better MVC" talk

MVP

Model View Presenter

Posts

Repos

MVVM

Model View ViewModel

Posts

Repos

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

Unidirectional Data Flow

Posts

Repos

  • ReSwift Unidirectional Data Flow in Swift - Inspired by Redux ⭐
  • 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 🚀 🚀
  • 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

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

Repos

  • Harvest Harvest: Apple's Combine.framework + State Machine, inspired by Elm.
  • Stinsen Coordinators in SwiftUI. Simple, powerful and elegant.
  • FlowStacks FlowStacks allows you to hoist SwiftUI navigation and presentation state into a Coordinator

Data Source

Posts

Repos

  • Mensa Smart, modern table and collection views on iOS.
  • RLDTableViewSuite Reusable table view controller, data source and delegate for all your UITableView needs
  • PagedArray A Swift data structure for easier pagination
  • ReadingList An example on using the Mantle Modeling Framework with Overcoat AFNetworking extension.
  • DTTableViewManager Protocol-oriented UITableView management, powered by generics and associated types.
  • Spots Spots is a view controller framework that makes your setup and future development blazingly fast ⭐
  • JSQDataSourcesKit Type-safe, value-oriented, composable data source objects that keep your view controllers light
  • HubFramework Spotify’s component-driven UI framework for iOS
  • ComponentKit A React-inspired view framework for iOS
  • IGListKit A data-driven UICollectionView framework for building fast and flexible lists.
  • JASONETTE-iOS Native App over HTTP ⭐⭐🚀
  • StackScrollView iOS Form UI Builder in Swift (powered by UICollectionView)
  • ScrollingStackViewController A view controller that uses root views of child view controllers as views in a UIStackView.
  • ScrollingStackContainer Efficient Scrolling UIStackView in Swift
  • Flow A new declarative approach to UITableView
  • FlowKit Declarative type-safe manager for UITableView & UICollectionView
  • Static Simple static table views for iOS in Swift.
  • Bento Swift library for building component-based interfaces on top of UITableView
  • ReactiveLists React-like API for UITableView & UICollectionView
  • LiveCollections
  • AloeStackView A simple class for laying out a collection of views with a convenient API, while leveraging the power of Auto Layout ⭐
  • Carbon A declarative library for building component-based user interfaces in UITableView and UICollectionView
  • Owl A declarative type-safe framework for building fast and flexible lists with Tables & Collections
  • Collor A MVVM data-oriented framework for UICollectionView with great and useful features.
  • FunctionalTableData Declarative UITableViewDataSource implementation
  • Upstream ⛲️ Adapted Data Source in Swift and a little bit more 🚀 🚀
  • Micro Fast diffing and type safe SwiftUI style data source for UICollectionView 🚀 🚀
  • Epoxy - Epoxy is a suite of declarative UI APIs for building UIKit applications in Swift

Best Practices

General

API Design

Dependency Injection

Refactoring

Model

View and Model

AppDelegate

Repos

  • Logician Logic programming in Swift
  • modular-architecture Examples of iOS Modular Architecture in Swift
  • Delta Delta takes an app that has custom state management spread throughout all the VCs and simplifies it by providing a simple interface to change state and subscribe to its changes.
  • eigen The Art World in Your Pocket or Your Trendy Tech Company's Tote, Artsy's iOS app
  • ENGINEERING THE ARCHITECTURE BEHIND UBER’S NEW RIDER APP
  • RIBs Uber's cross-platform mobile architecture framework.
  • Alicerce A base for iOS Applications by Mindera
  • Flint The Flint framework for building apps on Apple platforms using Feature Driven Development
  • ios-architecture A collection of iOS architectures - MVC, MVVM, MVVM+RxSwift, VIPER, RIBs and many others
  • SwiftHub GitHub iOS client in RxSwift and MVVM-C clean architecture

Sync

Cache

Asynchronous/Reactive Programming

Navigation/Coordinator/FlowController

Analytics

SDK

Functional

Types

Protocols

Code

  • Splash A fast, lightweight and flexible Swift syntax highlighter for blogs, tools and fun!

Separation of Concerns

Testing

Generic

Cross platform

Remote Config / Feature Flagging

Licence

This project is released under the MIT license. See LICENSE.md.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages