/fantastic-ios-architecture

:japanese_castle: Better ways to structure iOS apps

MIT LicenseMIT

π™›π™–π™£π™©π™–π™¨π™©π™žπ™˜ π™žπ™€π™¨ π™–π™§π™˜π™π™žπ™©π™šπ™˜π™©π™ͺπ™§π™š

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

MVP

Model View Presenter

Posts

Repos

MVVM

Model View ViewModel

Posts

Repos

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 πŸš€
  • Reminders An iOS application written in Swift to demonstrate how to implement a Clean Architecture in iOS

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

VIPER

View Interactor Presenter Entity Router

Posts

Repos

VIP

View Interactor Presenter

Posts

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
  • Static Simple static table views for iOS in Swift.

Misc

General

Coordinator

FlowController

AppDelegate

Repos

Sync

Cache

Asynchronous Programming

Navigation

Analytics

Licence

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