• Stars
    star
    5,056
  • Rank 8,152 (Top 0.2 %)
  • Language
  • License
    MIT License
  • Created over 8 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🏯 Better ways to structure iOS apps

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.

More Repositories

1

awesome-ios-animation

☔ A collection of iOS animation repos
5,305
star
2

PushNotifications

🐉 A macOS, Linux, Windows app to test push notifications on iOS and Android
JavaScript
2,230
star
3

DeepDiff

🦀Amazingly incredible extraordinary lightning fast diffing in Swift
Swift
2,049
star
4

IconGenerator

🍱 A macOS app to generate app icons
JavaScript
1,403
star
5

RoughSwift

🎃 Create hand-drawn, sketchy, comic shape in Swift
Swift
1,104
star
6

FinderGo

🐢 Open terminal quickly from Finder
Swift
1,084
star
7

Snowflake

❄️ SVG in Swift
Swift
956
star
8

GifCapture

🏇 Gif capture app for macOS
Swift
916
star
9

awesome-machine-learning

🎰 A curated list of machine learning resources, preferably CoreML
794
star
10

Swiftlane

🚀 Build utilities in pure Swift
Swift
692
star
11

blog

🍁 What you don't know is what you haven't learned
666
star
12

awesome-swiftui

🌮 Awesome resources, articles, libraries about SwiftUI
642
star
13

EasyConfetti

🎊 Fancy confetti effects in Swift
Swift
561
star
14

XcodeWay

⛵ An Xcode Source Editor Extension that helps navigating to many places easier
Swift
550
star
15

Smile

😄 Emoji in Swift
Swift
512
star
16

EasyAnchor

⚓️ Declarative, extensible, powerful Auto Layout
Swift
455
star
17

EasyStash

🗳Easy data persistence in Swift
Swift
377
star
18

Scale

🎏 Unit converter in Swift
Swift
323
star
19

EasyDropdown

💧 Fantastic dropdown in Swift
Swift
309
star
20

XcodeColorSense2

🍉 An Xcode source editor extension that shows hex color info
Swift
285
star
21

Arcane

🔱 CommonCrypto in Swift, and more
Swift
283
star
22

awesome-android-animation

💦 A collection of Android animation repos
Java
253
star
23

EasyTheme

👕👚 Theme management in Swift
Swift
241
star
24

awesome-voip

🤙Learning VoIP, RTP, pjsip and SIP
237
star
25

SwiftHash

🍕 MD5 in pure Swift
Swift
215
star
26

EasyClosure

🍩 Unified communication patterns with easy closure in Swift
Swift
201
star
27

Github.swift

:octocat: Unofficial GitHub API client in Swift
Swift
186
star
28

emoji

❤️ List of emojis
Swift
163
star
29

SwiftSnippets

🍮 A collection of Swift snippets to be used in Xcode
Shell
162
star
30

Wave

🌊 Declarative chainable animations in Swift
Swift
127
star
31

awesome-online-earning

💰Ways to earn extra
124
star
32

Spek

🎏 Function builder BDD testing framework in Swift
Swift
122
star
33

FontAwesomeSwiftUI

Easy to use FontAwesome 5 in SwiftUI
Swift
97
star
34

Recipes

🍣Making Recipes iOS app
Swift
91
star
35

MathSolver

⌨️Camera calculator with Vision
Swift
87
star
36

XcodeColorSense

🎈 An Xcode plugin that makes working with color easier
Swift
77
star
37

Micro

🏎Fast diffing and type safe SwiftUI style data source for UICollectionView
Swift
76
star
38

Omnia

🗿 Everything your projects need to know
Swift
62
star
39

notes

📔 Issues and solutions I found during development, mostly iOS
62
star
40

Sketch-Action

🔎 A Sketch plugin to simulate Spotlight
Objective-C
59
star
41

MainThreadGuard

💂‍♂️ Tracking UIKit access on main thread
Swift
58
star
42

EasyFake

🤹‍♀️ Fake data generation in Swift
JavaScript
57
star
43

Reindeers

❄️ XML and HTML parser in Swift
Swift
55
star
44

awesome-git-commands

🍴 Indispensable git commands for everyday use
55
star
45

RxLifeCycle

🐹 Easy life cycle observation
Swift
53
star
46

Upstream

⛲️ Adapted Data Source in Swift and a little bit more
Swift
53
star
47

BigBigNumbers

🔢Say the number out loud
Swift
49
star
48

GifMagic

💈 Gif maker and extractor in Swift
Swift
48
star
49

awesome-android-architecture

🏰 Better ways to structure Android apps
45
star
50

AppStoreConnect

🍎 Interact with AppStoreConnect
Swift
45
star
51

TestTarget

🐳 Notes on configuring test targets
Swift
44
star
52

PhotoFeed

🛵 Instagram in Swift 4
Swift
43
star
53

awesome-conference-videos

🎸 Conference videos. Visit http://learntalks.com/
40
star
54

CollectionUpdateExample

🛶 Demo batch update in UITableView and UICollectionView
Swift
38
star
55

Construction

👷 The many ways to construct and configure your entity
Swift
34
star
56

PastePal

PastePal is the best universal clipboard manager for Mac, iPhone and iPad.
31
star
57

github-extended

:octocat: A Chrome extension to discover more repositories
JavaScript
30
star
58

EasyNetworking

🛰Easy networking with async/await
Swift
28
star
59

Runtime-Headers

💿 iOS, macOS runtime headers
Objective-C
28
star
60

UsingPlayground

👶 Demo how to use Playground
Swift
26
star
61

EasySwiftUI

🍰 Extra sugar for SwiftUI
Swift
25
star
62

Farge

🎈Tell the name of hex color
Swift
24
star
63

Avengers

👾Demo how to use CoreML with IBM Watson, Azure Custom Vision, Turi Create
Swift
21
star
64

ISO8601

🎗 Super lightweight ISO8601 Date Formatter in Swift
Swift
21
star
65

SlidingMenu

🎿 Demo how to create sliding menu on Android
Java
20
star
66

Paramount

🗼 Like Flipboard FLEX, but allows custom action
Swift
20
star
67

Codelime

Codelime is a powerful code snippet manager with many dev tools for iOS development.
19
star
68

DynamicTableViewCellHeight

🍟 Demo how to use Autolayout to make varying row height
Objective-C
18
star
69

github-chat

💬 A Chrome extension to enable chat within GitHub
JavaScript
18
star
70

Resolver

🎊 A simple resolver in Swift
Swift
15
star
71

archives

🚣 Only deliberate practice will make you better
Objective-C
14
star
72

ParticlePlayground

🎊 A Swift playground to play with CAEmitterLayer
Swift
14
star
73

json_resolve

🐰Easy resolving deep json using keypath in Dart
Dart
12
star
74

Then

🏃 Promise A+ in Swift
Swift
11
star
75

LighterAppDelegate

🎣 Lighter AppDelegate by dispatching events
Swift
10
star
76

Xkcd

🦄 Simple Xkcd iOS app
Swift
8
star
77

Border

📐 Make border for all views
Swift
8
star
78

Xmas

🎅 🎄 ⛄ Xmas plugin for Xcode
Objective-C
7
star
79

github-changelogs-maker

🍻 Generate changelogs between 2 latest releases
JavaScript
7
star
80

linphone-iphone

Forked from linphone.org
Objective-C
7
star
81

EasyTracker

🕵️ Trackers in Swift
Swift
6
star
82

FantasticDisplay

🎢 Fantastic HUD and toast in Swift
Swift
6
star
83

ComputerScienceSwift

👨‍💻 Practice computer science in Swift
Swift
6
star
84

PushHero

Push Hero is a native macOS application written in pure Swift that allows us to easily test push notifications
6
star
85

onmyway133

What you don't know is what you haven't learned
5
star
86

Minion

🐝 Working with Xcode plugins
Swift
5
star
87

SketchHeaders

💿 Headers from Sketch
Objective-C
4
star
88

homebrew-formulae

🚗 Homebrew formulae
Ruby
3
star
89

DarkSide

🌌 My dark theme based on Atom One Dark
Shell
3
star
90

chat_webrtc

⌨️ Simple chat application using Node.js and WebRTC Data Channel
JavaScript
3
star
91

slackbot-yoda

💍 Slackbot Yoda
JavaScript
2
star
92

onmyway133.github.io

Showcase
HTML
2
star
93

rtpproxy

🥂 Forked from http://www.rtpproxy.org/ with IP handover support
C
2
star
94

android-architecture-components-kotlin

🥋 Samples for Android Architecture Components in Kotlin
Kotlin
2
star
95

traffic_simulator

🚗 Traffic simulator using enchant.js
JavaScript
2
star
96

Shipmunk

Search, bookmark and track keyword rating for your favorite apps
2
star
97

Dust

🚀 Unofficial, simple push notification
Swift
1
star
98

MarqueeTextBlock

🌴 How to make marquee TextBlock on Windows Phone
C#
1
star