Top Related Projects
A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects
A collaborative list of awesome Swift libraries and resources. Feel free to contribute!
A curated list of awesome ARKit projects and resources. Feel free to contribute!
🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps
Examples projects using SwiftUI released by WWDC2019. Include Layout, UI, Animations, Gestures, Draw and Data.
Good ideas for iOS development, by Futurice developers.
Quick Overview
The awesome-ios-architecture
repository on GitHub is a curated list of iOS architecture patterns and best practices. It provides a comprehensive overview of various architectural approaches and design patterns commonly used in iOS app development.
Pros
- Comprehensive Coverage: The repository covers a wide range of architectural patterns and design principles, making it a valuable resource for iOS developers.
- Organized Structure: The content is well-organized, with clear categorization and descriptions for each architectural pattern.
- Community Contributions: The project benefits from contributions from the iOS development community, ensuring the information is up-to-date and relevant.
- Practical Examples: The repository includes links to sample code and real-world project examples, which can be helpful for understanding the practical application of the architectural patterns.
Cons
- Lack of In-Depth Explanations: While the repository provides a good overview of the architectural patterns, it may not offer in-depth explanations or detailed implementation guidance.
- Potential Outdated Information: As the iOS ecosystem evolves, some of the information in the repository may become outdated over time, requiring regular updates.
- Subjective Recommendations: The choice of architectural patterns and design principles can be subjective, and developers may have different preferences or requirements.
- Limited Code Examples: The repository primarily provides links to external resources and sample projects, rather than including comprehensive code examples within the repository itself.
Getting Started
Since this is a curated list of resources and not a code library, there are no specific getting started instructions. However, developers can explore the repository and navigate to the various architectural patterns and design principles that are relevant to their project requirements.
Competitor Comparisons
A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects
Pros of awesome-ios
- Broader scope, covering various aspects of iOS development beyond architecture
- Larger community and more frequent updates
- Includes sections on tools, testing, and other practical resources
Cons of awesome-ios
- Less focused on architectural patterns and concepts
- May be overwhelming for developers specifically looking for architecture-related resources
- Requires more time to navigate and find relevant information on architecture
Code comparison
While both repositories primarily consist of curated lists and don't contain much code, here's a sample of how they might structure their content:
awesome-ios-architecture:
## Architecture
- MVVM
- VIPER
- Clean Architecture
awesome-ios:
## Table of Contents
- [Architecture](#architecture)
- [Testing](#testing)
- [Tools](#tools)
## Architecture
- [MVVM](#mvvm)
- [VIPER](#viper)
Summary
awesome-ios-architecture is more focused on iOS architectural patterns and concepts, making it easier for developers to find specific architecture-related resources. On the other hand, awesome-ios offers a comprehensive collection of iOS development resources, including architecture, but also covering other aspects like tools, testing, and practical guides. The choice between the two depends on whether you're specifically looking for architecture-related information or a broader range of iOS development resources.
A collaborative list of awesome Swift libraries and resources. Feel free to contribute!
Pros of awesome-swift
- Broader scope, covering various aspects of Swift development beyond just architecture
- More frequently updated with new resources and contributions
- Larger community engagement and more stars on GitHub
Cons of awesome-swift
- Less focused on specific architectural patterns and concepts
- May be overwhelming for developers specifically looking for iOS architecture resources
- Includes resources that may not be directly related to iOS development
Code comparison
While both repositories are curated lists and don't contain much code, here's a sample of how they structure their content:
awesome-swift:
## Contents
- [Guides](#guides)
- [Boilerplates](#boilerplates)
- [REPL](#repl)
- [Editor Support](#editor-support)
awesome-ios-architecture:
## Content
- [Architectural Patterns](#architectural-patterns)
- [Dependency Injection](#dependency-injection)
- [Functional Swift](#functional-swift)
Both repositories use similar Markdown formatting for their lists, but awesome-ios-architecture focuses more on architectural concepts, while awesome-swift covers a wider range of Swift-related topics.
A curated list of awesome ARKit projects and resources. Feel free to contribute!
Pros of Awesome-ARKit
- Focused specifically on ARKit resources, providing a curated list of AR-related tools and projects
- Regularly updated with new ARKit features and iOS versions
- Includes a wide range of resources, from tutorials to open-source projects and commercial tools
Cons of Awesome-ARKit
- Limited scope, focusing only on ARKit and AR-related topics
- May not provide as much depth in general iOS architecture patterns and best practices
- Less emphasis on architectural concepts and design patterns
Code Comparison
While a direct code comparison isn't relevant due to the nature of these repositories, here's an example of how they might differ in content:
Awesome-ARKit example (AR-related content):
import ARKit
let configuration = ARWorldTrackingConfiguration()
sceneView.session.run(configuration)
awesome-ios-architecture example (architectural pattern):
protocol ViewModelType {
associatedtype Input
associatedtype Output
func transform(input: Input) -> Output
}
Both repositories serve different purposes, with Awesome-ARKit focusing on AR-specific resources and awesome-ios-architecture covering broader iOS architectural patterns and practices.
🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps
Pros of open-source-mac-os-apps
- Broader scope, covering macOS applications rather than just iOS architecture
- Larger collection with more diverse categories of apps
- Includes links to App Store for easy discovery of released versions
Cons of open-source-mac-os-apps
- Less focused on architectural patterns and best practices
- May be overwhelming for developers looking specifically for iOS architecture resources
- Requires more filtering to find relevant projects for learning purposes
Code Comparison
While a direct code comparison isn't relevant for these curated lists, we can compare their README structures:
open-source-mac-os-apps:
## Applications
### Audio
* [AudioKit](https://github.com/audiokit/AudioKit) - Powerful audio synthesis...
...
### Video
* [Catch](https://github.com/mipstian/catch/) - Catch for macOS...
awesome-ios-architecture:
## Content
- [Architectural Patterns](#architectural-patterns)
- [Dependency Injection](#dependency-injection)
...
## Architectural Patterns
### MVVM
- [Vue.js](https://vuejs.org/) - Vue.js is a progressive...
The open-source-mac-os-apps repository organizes content by application type, while awesome-ios-architecture focuses on architectural concepts and patterns.
Examples projects using SwiftUI released by WWDC2019. Include Layout, UI, Animations, Gestures, Draw and Data.
Pros of SwiftUI
- Focuses specifically on SwiftUI, providing a comprehensive resource for this modern UI framework
- Includes ready-to-use examples and components, making it easier for developers to implement SwiftUI features
- Regularly updated with new SwiftUI features and best practices
Cons of SwiftUI
- Limited to SwiftUI, not covering other iOS architecture patterns or frameworks
- May not be as comprehensive for developers looking for a broader overview of iOS architecture options
- Less emphasis on architectural patterns and more on UI implementation
Code Comparison
SwiftUI example:
struct ContentView: View {
var body: some View {
Text("Hello, SwiftUI!")
}
}
awesome-ios-architecture example (MVVM pattern):
class ViewModel {
var model: Model
var output: ((String) -> Void)?
func updateView() {
output?(model.data)
}
}
The SwiftUI repository provides more concrete, UI-focused examples, while awesome-ios-architecture offers a broader range of architectural patterns and concepts. SwiftUI is ideal for developers specifically working with SwiftUI, while awesome-ios-architecture serves as a comprehensive resource for various iOS architecture approaches.
Good ideas for iOS development, by Futurice developers.
Pros of ios-good-practices
- More comprehensive coverage of iOS development best practices
- Includes practical tips for project management and workflow
- Offers guidance on tools and continuous integration
Cons of ios-good-practices
- Less focused on architectural patterns
- Not as frequently updated as awesome-ios-architecture
- Lacks detailed explanations of advanced concepts
Code Comparison
awesome-ios-architecture example (MVVM):
class ViewModel {
var model: Model
var output: ((String) -> Void)?
func updateModel() {
model.update()
output?(model.description)
}
}
ios-good-practices example (Dependency Injection):
protocol APIClient {
func fetchData(completion: (Result<Data, Error>) -> Void)
}
class ViewController {
let apiClient: APIClient
init(apiClient: APIClient) {
self.apiClient = apiClient
}
}
Both repositories provide valuable resources for iOS developers, but they serve different purposes. awesome-ios-architecture focuses on various architectural patterns and their implementations, while ios-good-practices offers a broader range of development guidelines and best practices. Developers may find it beneficial to use both repositories in conjunction for a well-rounded approach to iOS development.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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)
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
- Lightweight iOS View Controllers
- Appleâs Take on App Architecture
- Fluent Pagination - no more jumpy scrolling
- AdvancedCollectionView
- iOS: UITableView controller
- Nestable
- Advanced UITableViews Made Simple: YLTableView
- Typed, yet Flexible Table View Controller
- Complex table view state changes made easy
- UMT2016 - John Sundell - Building component-driven UIs at Spotify
- Refactoring at Scale â Lessons Learned Rewriting Instagramâs Feed
- IGListKit Tutorial: Better UICollectionViews
- Dealing with Complex Table Views in iOS and Keeping Your Sanity
- iOS: How to build a Table View with multiple cell types
- Using Dedicated Objects as Delegates & Datasources
- Reusable data sources in Swift
- UITableView Datasource with SwiftUI-style syntax
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 :star:
- 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 :star::star::rocket:
- 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 :star:
- 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 :rocket: :rocket:
- Micro Fast diffing and type safe SwiftUI style data source for UICollectionView :rocket: :rocket:
- Epoxy - Epoxy is a suite of declarative UI APIs for building UIKit applications in Swift
Best Practices
General
- Benchmarking MVC vs MVP vs MVVM in iOS
- iOS Architecture Patterns Demystifying MVC, MVP, MVVM and VIPER :rocket:
- Clean Cocoa :star:
- iOS Development: You're Doing It Wrong
- How to separate view controllers from their view logic
- 8 Patterns to Help You Destroy Massive View Controller
- Intentions
- Model-View-ViewModel for iOS
- Singletons, AppDelegates and top-level data.
- Collection Extensions
- Model View Controller Presenter
- Model View Whatever
- How We Modularized Mediumâs iOS codebase
- Lighter View Controller Swift
- Improve your iOS Architecture with FlowControllers
- Massive View Controller
- Modern application architectures (Reactive programming, MVVM and beyond)
- âTree of Modelsâ as an Alternative App Architecture Model :star:
- A composable pattern for pure state machines with effects
- Architectures comparison
- Basecamp 3 for iOS: Hybrid Architecture
- Highly maintainable app architecture :star:
- Driving view state through data
- Improving Existing Apps with Modern Best Practices :rocket:
- Platformizing UI code
- The State of Statelessness
- Good iOS Application Architecture :rocket:
- Much ado about iOS app architecture :star:
- The Presentation Model
- The New Swipe Right with Swift
- Zero Knowledge Architectures for Mobile Applications
- Top-down iOS error architecture
- App Architectures: Remixed
- iOS Application Architecture
- How to move data sources and delegates out of your view controllers
- App Architecture and Object Composition in Swift
- Let's Talk Architecture
- The Lost Art of System Design
- Maintaining architecture in iOS apps
- Four Rules of Simpler iOS Software Design
- The Art of Designing Code :star:
- Why UI Design matters
API Design
- Everyone is an API designer :rocket:
- Lightweight API design in Swift
- API Design
- Testable interface design with enums
- Designing Swift APIs
- Designing Accessible APIs
Dependency Injection
- Managing objects using Locks & Keys in Swift :star:
- How To Control The World
- Structure and Interpretation of Swift Programs
- Extracting view controller actions in Swift
- Behaviors in iOS Apps
- Logic controllers in Swift
- Model controllers in Swift
- Using protocol compositon for dependency injection
- Cleaning up your dependencies with protocols
- Swift Dependency Injection via Property Wrapper
Refactoring
Model
- Structuring model data in Swift
- Utilizing value semantics in Swift
- Type safe temporary models
- Defining testing data in Swift
View and Model
- View Descriptors
- Preventing views from being model aware in Swift
- UITableViewCell and Model
- Building Better Views
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
- Introducing the Realm Mobile Platform: Realtime Sync Plus Fully Open Source Databas
- wire-ios-sync-engine iOS synchronization library for Wire
Cache
- MVC-RS
- The Missing Light Persistence Layer for Swift
- How to Abstract Your Persistence Layer and Migrate to Another One on iOS With JustPersist
- The Flat Cache
- Cache Nothing but Cache
- RocketData
- Managing Consistency of Immutable Models
- CTPersistance
- JustPersist
- Pantry
- The Many Offline Options for iOS Apps
- How to Design Offline-first Approach in a Mobile App
- Flannel: An Application-Level Edge Cache to Make Slack Scale
Asynchronous/Reactive Programming
- Comparative Asynchronous Programming
- Thinking in RxSwift
- Reducers
- RxSwift Reactive Programming in Swift
- Operations A Swift framework inspired by WWDC 2015 Advanced NSOperations session.
- Modern RxSwift Architectures
- Architecturing an app with functional reactive programming
- TheBinderArchitecture A declarative architecture based on bindings
Navigation/Coordinator/FlowController
- Coordinators Redux
- Deep links with no brainer
- Flow Controllers on iOS for a Better Navigation Control
- Improve your iOS Architecture with FlowControllers
- Coordinators Essential tutorial
- MVVM-C A simple way to navigate
- Compass Compass helps you setup a central navigation system for your application
- Deep Linking at Kickstarter
- One navigator to rule them all - iOS Conf SG 2017
- URL Routing with Compass :star:
- Weavy Navigation framework for iOS applications based on a weaving pattern
- RxFlow RxFlow is a navigation framework for iOS applications based on a Reactive Flow Coordinator pattern
- A Flexible Routing Approach in an iOS App
- Navigation in Swift
- Coordinators Essential tutorial. Part I
- Coordinators Essential tutorial. Part II
- Coordinators Redux
- Coordinators â Soroush Khanlou - CocoaHeads Stockholm
- Passing dependencies through Coordinator chain
- MVC-C · Injecting Coordinator pattern in UIKit
- XCoordinator Powerful navigation library for iOS based on the coordinator pattern
- Controlling Hierachies
- Coordinator and FlowController
- Advanced coordinators in iOS
- iOS Coordinators: A Storyboard Approach
- The Navigator
Analytics
- Building an enum-based analytics system in Swift
- When Not to Use an Enum
- Misusing enums
- Logging in Swift
- Swift Analytics
- Analytics - How to avoid common mistakes in iOS
SDK
- line-sdk-ios-swift Provides a modern way of implementing LINE APIs
- BackchannelSDK-iOS The official iOS SDK for Backchannel
- SpotifyLogin Swift framework for authenticating with the Spotify API
- stripe-ios Stripe iOS SDK
Functional
Types
- Making illegal states unrepresentable
- Functional Snippet #13: Phantom Types
- Never
- Pure functions in Swift
- Phantom types in Swift
Protocols
- Mixins over Inheritance
- Mixins and traits in Swift 2.0
- Protocol Oriented Programming is Not a Silver Bullet
- Value-Oriented Programming
- Beyond Crusty: Real-World Protocols
- A Little Respect for AnySequence
- Protocols Sidebar I: Protocols Are Nonconformists
- Protocols II: A Mockery of Protocols
- A case of premature abstractions
- Protocol-Oriented Library Design
- Protocol Witnesses - Brandon Williams - App Builders 2019
Code
- Splash A fast, lightweight and flexible Swift syntax highlighter for blogs, tools and fun!
Separation of Concerns
Testing
- Defining testing data in Swift
- Time traveling in Swift unit tests
- The power of UserDefaults in Swift
- Unit testing asynchronous Swift code
Generic
Cross platform
- LibSlack: the C++ library at the foundation of our client application architecture
- The (not so) hidden cost of sharing code between iOS and Android
- Client Consistency at Slack: Beyond Libslack
Remote Config / Feature Flagging
Licence
This project is released under the MIT license. See LICENSE.md.
Top Related Projects
A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects
A collaborative list of awesome Swift libraries and resources. Feel free to contribute!
A curated list of awesome ARKit projects and resources. Feel free to contribute!
🚀 Awesome list of open source applications for macOS. https://t.me/s/opensourcemacosapps
Examples projects using SwiftUI released by WWDC2019. Include Layout, UI, Animations, Gestures, Draw and Data.
Good ideas for iOS development, by Futurice developers.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot