A curated list of resources for learning about the Swift Language
- ๐ = Gist
- โ๏ธ = Repository
- ๐ = Blog
- ๐ = Blog Post
- ๐ = Quick Reference
- ๐ = Book
- ๐ = Guide Book
- ๐ฐ = Newsletter
- ๐พ = Slides
- ๐ค = Video Presentation
- ๐น = Video
- ๐ = Link
- ๐ฅ = Awesome List
- ๐ = Learning Resource
- ๐ = Interview Questions
- ๐ = Networking Related Post
- ๐ = Algorithm Related Post
- Open Source Swift
- Swift Style
- In-Browser Swift Editors
- Quick References
- Blogs
- Newsletters
- Great Learning Resources
- Free Books
- Not Free (but still awesome) Swift Books
- Presentations
- Other Video
- Posts
- Animations and Front End Stuff
- Application Structure / Architecture
- Associated Types and Objects
- Closures
- Collections / Sequences / Generators
- Command Line and Swift Scripting
- Concurrency
- Core Data
- Data Structures and Algorithms
- Design Patterns
- Generics
- Development
- Enums and Pattern Matching
- Error Handling
- Extensions
- Functional Programming in Swift
- Functional Reactive Programming in Swift
- Initializers
- Interpolability
- Language Comparisons
- LLVM Compiler
- Objective C Transitioning to Swift
- Open Source Swift
- Operator Overloading
- Opinions about Swift
- Optionals and Types
- Other
- Problem Solving in Swift
- Production Swift
- Protocol Oriented Programming in Swift 2
- Realm
- Security
- Swift Language
- Testing
- Text Manipulation
- Type Reflection and Casting
- Web Services and Networking
- Web Services - Other
- Interview Situations
- Apple Master Github Repository ๐
- Swift Master Repository โ๏ธ
- Download Swift ๐
- Core Libs Unimplemented Parts โ๏ธ
- Swift Core Libs Foundation Repository โ๏ธ
- Swift Core Libs Dispatch Repository โ๏ธ
- Swift CommonMark parsing and rendering library in C โ๏ธ
- Swift Clang Repositroy โ๏ธ
- Swift LLDB Repository โ๏ธ
- Swift Packages โ๏ธ
- Swift Compiler Crashes โ๏ธ
- Functional Swift Style Guide ๐
- The Official Swift Language Docs ๐
- Swift Language Evolution ๐
- Swift.org ๐
- That Thing In Swift ๐
- SwiftDoc ๐
- iOS Cookies ๐
- ๐ฅ Awesome Swift ๐
- ๐ฅ Another Awesome Swift ๐
- Pure Swift List ๐
- ๐ฅ Awesome iOS ๐
- iOS Good Practices ๐
- Little Bites of Cocoa ๐
- Libraries used in the top 100 Apps ๐
- Fu*king Closure Syntax ๐
- RAC Marbles ๐
- Swift Knowledge Base ๐
- iOS at Artsy ๐
- The Swift Diary ๐
- Human Friendly Swift Blog ๐
- ๐ Objc.io ๐
- NSBlog with Mike Ask ๐
- Use Your Loaf ๐
- Chris Eidhof ๐
- Ole Begemann ๐
- Uramio ๐
- Swift Weekly ๐
- Erica Sadun ๐
- ThinkAndBuild ๐
- MetalByExample.com ๐
- David Owens ๐
- The iOS Times Curated Review of the latest leading Github Projects ๐
- This Week in Swift News: Curated Swift News ๐ฐ
- iOS Goodies ๐ฐ
- iOS Dev Weekly ๐ฐ
- Swift Sandbox Newsletter ๐ฐ
- SwiftLang Website ๐ฐ
- Swift Weekly ๐ฐ
- Gettin' Swifty With It ๐ฐ
- Official Swift Documentation ๐
- Swift Education Community Repository โ๏ธ
- iOS Swift Reference โ๏ธ
- Hacking With Swift ๐
- A Better way to learn Swift ๐
- Ray Wenderlich Tutorial Pages ๐
- Swift Education ๐
- Play with Swift ๐
- CS193P: Developing iOS 8 Apps with Swift ๐
- Realm Roundup: 25 Realm Resources and Tutorials ๐
- Funcitonal Reactive Programming iOS Learning Resources ๐
- Learn Core Data ๐
- Objc.io Book Series ๐
- Ray Wenderlich Book Series ๐
- Packt Publishing Book Series ๐
- Apress Book Series ๐
- Oreilly Book Series ๐
- All the slides from Swift Summit London 2015 ๐
- All the Presentations from Swift Summit London ๐น
- All Presentations from #Pragma Conference ๐น
- MobileKonf 2015 ๐น
- Functional Swift Conf 2014 ๐น
- Functional Swift Conf 2015 ๐น
- CocoaConf Videos ๐น
- ๐ฅ Awesome iOS Conferences โ๏ธ
- Swift Language Youtube Channel ๐น
- Free Swift Lang Course ๐น
- Explaining the mutating keyword ๐น
- Swift tutorial Video Series ๐น
- Mixing SpriteKit with UIKit in iOS 9 ๐
- AdaptiveUI Animations ๐ค and ๐พ
- iOS Animations with AutoLayout ๐ค and โ๏ธ
- Metal and Swift ๐ค
- Animating Constraints ๐
- Advanced UITableViews ๐ค
- SpriteKit as an intro to SceneKit ๐พ
- Demystifying iOS Architecture Patterns ๐
- You Used To Inject Me In Your Constructor ๐พ
- Swift Inject Dependency Injection โ๏ธ
- Class or Struct? ๐
- RE: Class or Struct ๐
- Uber Jetstream โ๏ธ
- Mutating Funcs in Swift Structs ๐
- MVVM in Swift ๐
- MVVM is not very good ๐
- Refractor the Mega Controller ๐ค
- 250 Days of using VIPER Architecture with Swift ๐ค
- Safer with VIPER ๐
- Dependency Injection in Swift ๐
- Preventing Massive View Controllers ๐ค
- A Structy Model Layer ๐
- Unidirectional Data Flow Architecture โ๏ธ
- Protocols with Associated Types and how they got that way ๐พ
- Associated Types in Swift Explained ๐
- Illuminating Forum Post ๐
- How to make Generic Protocols in Swift ๐
- Associated Enum Data As Types ๐
- Typesafe Associated Objects โ๏ธ
- Closures and Capturing Values in Swift ๐
- Instance methods are Curried Functions in Swift ๐
- Using Local Closures with Swift ๐
- Delaying Code Execution through Closures ๐
- Can we please make a standard style for closures? ๐
- A quick guide to SequenceType ๐
- Sequences and Generators in Swift ๐
- Experimenting with Seqs and Generators ๐
- Sets vs Dictionaries in Swift ๐
- The Fibonacci SequenceType ๐
- Truly Lazy Sequences ๐
- Using Generators for UITableView Pagination Purposes ๐
- A Little Respect for AnySequence ๐
- Swift Sequence Lib โ๏ธ
- Swift Scripting ๐ค
- Learn Swift by running Scripts ๐
- Scripting in Swift is Pretty Awesome! ๐
- Swiftline โ๏ธ
- How Swift Scripting was used to make iOS Cookies ๐
- Writing an Xcode Plugin with Swift ๐
- Basics of GCD ๐
- Methods of concurrency โ GCD, agents, tasks and invocations ๐
- Code at the end of the queue ๐
- Actor Model Concurrency in Swift โ๏ธ
- Coroutines in Swift ๐
- STM in Swift โ๏ธ
- Core Competencies ๐
- A Swift Into To Core Data ๐
- Moving from ObjC to Swift with Core Data ๐
- What, if any, ACID gurantees does Core Data Make? ๐
- Core Data Libraries and NSKeyedArchiver ๐
- Ditching Core Data for Something else ๐
- JSQCoreDataKit ๐
- Comparing Core Data Stacks ๐
- Using Core Data with Swift ๐ค
- Better Core Data Models with Swift ๐
- Core Data in 2015 and Magical Record in Swift ๐ค
- Core Data Threading Demystified ๐ค
- An Array implemented in Swift by Mike Ash ๐
- A Trie ๐
- A persistent tree using indirect enums ๐
- Deques, Queues, and Lists in Swift with indirect ๐
- Linked Lists are really slow ๐
- Linked Lists, Enums, Value Types ๐
- Singly Linked List ๐
- Deques, Queues, and Lists in Swift ๐ ๐
- Contiguous Arrays in Swift ๐
- NSArrays are implemente with Circular Buffers ๐
- Open sourced CFArray ๐
- Abstract Algebraic Structures in Swift 2 โ๏ธ
- Patricia/Radix trees for Swift โ๏ธ
- Genetic Programming in Swift โ๏ธ
- Finger Trees in Swift โ๏ธ
- Neural Networks in Swift โ๏ธ
- Swift AI โ๏ธ
- Lazy infinite streams โ๏ธ
- Naive Bayes Classifier โ๏ธ
- Swix Swift Matrix Math Library โ๏ธ
- Red Black Tree ๐
- Tensor Methods in Swift โ๏ธ
- Sort Utils โ๏ธ
- Disjoint Sets โ๏ธ
- Metaprogrammable โ๏ธ
- Binary Tree โ๏ธ
- SwiftPriorityQueue โ๏ธ
- SwiftGraph โ๏ธ
- Fisher-Yates Shuffle for Swift ๐
- Swift Design Patterns ๐พ
- Template Method Pattern in Swift ๐
- Design Patterns Library in Swift ๐
- Creating a Cocoa Bindings Observable Pattern in Swift ๐
- Observer Pattern in Swift ๐
- The Sin of Singletons ๐
- The Null Object Pattern ๐
- Segues > Delegation ๐
- Functions as Factories ๐
- Conform to Objective C Protocols in Swift ๐
- Optional Protocol Methods ๐
- The Builder Pattern and Fluent Interface ๐
- A Better NSNotificationCenter Observer Pattern ๐
- Key Value Coding in Swift ๐
- Exploring KVO Alternatives in Swift ๐
- Result Driven Development ๐พ
- Library Oriented Programming ๐ค
-
- Oriented Programming ๐ค
- Hole Driven Development ๐
- Entering a New Codebase ๐พ
- Railway Oriented Programming ๐ค
- Enums
- Enums in Swift ๐
- Advanced and Practical Enum Usage in Swift ๐
- Enumerating Tuple Values in Swift ๐
- Simplfied Login with Swift Enums ๐
- Testing of Enums made easy ๐
- How to compare Enums with Equatable ๐
- Raw representable enumeration ๐
- Enums with Associated Data vs Structs ๐
- The Sum Types are here ๐
- Algebraic Data Types in Swift ๐
- Handling Enums with Raw Values ๐
- Pattern Matching
- Official Docs ๐
- Swift's pattern-matching switch statement ๐
- Custom pattern matching in Swift ๐
- Advanced Swift Pattern Matching in Detail ๐
- Control Flow & Pattern Matching ๐
- Ranges and Intervals in Swift ๐
- More Pattern Matching Examples ๐
- What is a variadic parameter? ๐
- Pattern Matching in Swift ๐
- Swift Pattern Matching in Detail ๐
- Pattern Matching with an if case ๐
- Pattern Matching with Recursive Values in Swift ๐
- The Value of Guard ๐
- Swift 2.0: Why Guard is Better than If ๐
- Guard and Defer ๐
- When to (not) use guard ๐
- Thoughts on Swift 2 Error Handling ๐
- Easy Error Handing ๐
- Swift Failiable Initializers ๐
- Swift 2 Error Handling ๐
- Swift 2 Error Handling and Pattern Matching ๐
- Unmanaged Type ๐
- try/catch with asynchronous closures ๐
- Using the assert() keyword ๐
- Result: Swift type modelling the success/failure of arbitrary operations โ๏ธ
- Error Styling in Swift ๐
- Async Error Handling in Swift ๐พ
- Deriving higher order functions in Swift ๐
- Typelift Community Repo ๐
- ๐ Swiftz Functional Programming Library โ๏ธ
- Swiftx Functional Data Types โ๏ธ
- Aquifier Functional streaming abstractions in Swift โ๏ธ
- Basis Pure Declarative Programming in Swift โ๏ธ
- Functional Concurrency Primitives โ๏ธ
- Functional View Controllers ๐ ๐
- Covariance and Contravariance in Swift 2.1 ๐
- Monads & C# Tasks in Swift ๐
- Introduction to Function Currying in Swift ๐
- Practical Use of Curried Functions in Swift ๐
- Composing functions in Swift ๐
- Swift is not functional ๐
- Functional Paradigms in Swift ๐
- Functional Programming in the Swift Language ๐
- Map and FlatMap demystified ๐
- Lenses in Swift ๐
- Lenses ๐
- Prelude Library ๐
- Functional Programming in a Playground ๐ค
- Functional Programming as a Functionalist ๐ค
- Object Oriented Functional Programming ๐ค
- ๐ Functional Programming in Swift ๐ค
- NatashaTheRobot Explains Functional Programming ๐พ
- Make Swift More Functional ๐พ
- FP in Swift ๐พ
- Thinking Functionally Using Swift ๐พ
- Practical Declarative ๐พ and Functional ๐พ Swift
- Functional Notification Pattern ๐
- The monad among us ๐พ
- ๐ Functors, Applicatives, and Monads in Swift ๐
- Futures and Latency as an effect in Swift ๐
- Continuation Passing Style in Swift ๐
- An intro to Continuation Passing Style in Swift ๐
- Proof in Functions ๐ ๐
- Functional Thinking ๐พ
- Chris Eidhof Functional Swift Talk ๐ค
- Transducers and Reducers in Swift 2 โ๏ธ
- Lenses, Prisms, Isos in Swift 2 โ๏ธ
- Better Recursion with Swift ๐ค
- Folds in Swift ๐ ๐
- Swift Adventures in Monad Land โ๏ธ
- Functor and Monad in Swift ๐
- Llama Calculus ๐พ
- FingerTrees ๐
- FizzBuzz with infinite streams ๐
- 6 Killer Functional Swift Features ๐
- Thunks in Swift ๐
- 7 Habits for more functional Swift ๐พ
- Y Combinators in Swift ๐
- Arrows in Swift ๐
- Understanding Reduce in Swift ๐
- Monadic Functions in Swift โ๏ธ
- Lazy Streams in Swift โ๏ธ
- Funky Functional Programming Tools and Experiements โ๏ธ
- Functional Memoization in Swift ๐
- Reader Monad in Swift ๐
- Writer Monad in Swift ๐
- Back to the Futures with Swift ๐พ
- State Monads in Swift โ๏ธ
- Array to Zipper โ๏ธ
- From Category Theory to Swift ๐ โ๏ธ
- Higher Kinded Types ๐
- Categories in Swift ๐
- Applicatives in Swift โ๏ธ
- Church Encoding ๐
- Lambda Calculus in Swift 2 ๐
- The Difference between RxSwift and ReactiveCocoa ๐, ๐
- FRP in Swift 2.0 ๐ค
- Functional Reactive Programming in an Imperative World ๐ค
- ๐ RAC 3 with Ash Furrow ๐พ, and some other nice ๐พ
- FRP with RAC in Swift ๐พ
- Learning RxSwift ๐
- Upgrading to RxSwift ๐
- FRP is a forbidden term ๐
- What is FRP? On StackOverflow ๐
- From RAC to RxSwift: The (Mini) Survival Guide ๐
- State, Promises, and Reactive Programming ๐ค โ๏ธ
- State Machines in Swift โ๏ธ
- Generic Arrays in Swift 2.0 ๐
- The shortcomings of generic protocols ๐
- Generics in Swift, Part 1 ๐
- Generics in Swift, Part 2 ๐
- Official Docs ๐
- Swift Initializers ๐
- Immutable Swift ๐
- What's the point of Laziness? ๐
- IBOutlet Style in Swift ๐
- Swift and C ๐ค
- Swift & the ObjC Runtime ๐
- How is Swift Faster than Objective-C? ๐
- Wrapping a C library in a Swift Framework ๐
- How are NSDictionaries implemented in-memory? ๐
- Exposing NSMutableArray ๐
- Source-Code for the Objective-C Runtime โ๏ธ
- Comparing Swift and Javascript ๐
- C++ Advice to Swift Devs ๐
- Swift Protocols vs Java 8 Interfaces ๐
- Building for Open Source ๐พ
- Swift Android โ๏ธ
- Swift Version Manager โ๏ธ
- Docker Swift โ๏ธ
- Open Radar Swift ๐
- How to run Swift within a Docker container ๐
- Operator Overloading and JSON Parsing in Swift ๐
- Optionals
- Types
- Swift's Type System ๐
- Typeclasses in Swift, Haskell and Scala ๐
- Understanding Downcasting Operators in Swift ๐
- Swift Manual Retain/Release ๐
- Make a DSL in Swift ๐
- Type-Erased Wrappers in Swift ๐ค
- Swift MetaTypes ๐
- Tying the Knot in Swift ๐
- Make all Value Types Equatable ๐ค
- The Natural Numbers Encoded as Types ๐
- @autoclosure, @inline, @noescape, and @noreturn Keywords ๐
- How to use @noescape ๐
- How to use @autoclosure ๐
- Magic Methods in Swift ๐
- weak vs unowned ๐
- Swift weak references ๐
- Difference between weak self vs weak self() ๐
- Creating and Building a DSL in Swift ๐พ
- ๐ FizzBuzz on steroids with Swift ๐พ
- Learning Swift the Euler Way ๐ค
- Swift in Practice ๐ค
- How Carthage works ๐พ
- Bottom Up Programming in Swift ๐ค
- Make a Cocoapods Framework ๐ค
- Lessons from Production Swift ๐พ
- Using the Swift Package Manager ๐
- Exclude folders in the SPM ๐
- ๐ Protocol-Oriented Programming in Swift ๐ค
- Protocols in Swift ๐
- POP is OOP Thesis ๐
- Standard Template Protocols โ๏ธ
- Protocol Oriented MVVM ๐, ๐พ
- Functional thinking via Protocol Extensions ๐
- Protocol Extensions vs Type Extensions ๐
- Swift Diagrams Playground for P.O.P. ๐
- Gist covers whatever went on in the official presentation ๐
- What are the advantages? ๐
- Another look into the concept of P.O.P. ๐
- If you're subclassing, you're doing it wrong. POP and VOP explained ๐
- Every Swift Value Type Should be Equatable ๐
- Protocol Oriented Programming through UIKit ๐
- Protocols in Swift ๐
- Ray Wenderlich intro to P.O.P. ๐
- Protocol Extensions and the death of the Pipe forward operator ๐
- How Protocol Oriented Programming could still improve ๐
- THe Swift Protocol Proposal ๐
- Swift Default Protocol Implementations ๐
- ๐ Mixins and Traits in Swift 2.0 ๐
- Minimal Swift 2.1 Protocol Coformance ๐
- Favor Mixins over inheritance ๐
- Use Protocol Composition ๐
- Can Swift have Dependent Types? ๐
- More Misunderstanding of Dependent Types ๐
- 55 Standard Library Swift Protocols ๐พ ๐ ๐ค
- Current Recommmended Protocol Usage ๐
- POP in Swift vs ObjC and C++ ๐
- POP Utility Belt โ๏ธ
- Super simple Realm Intro ๐
- Why Realm over Core Data? ๐
- Official Realm Introduction ๐
- Realm Tutorial ๐
- Why Realm is great and why we're not going to use it ๐
- Realm Best Practices ๐
- Realm Repo ๐
- What Realm does that Core Data doesn't ๐
- Reddit Thread ๐
- A look into Realm's Core DB Engine ๐ค
- Working with Realm ๐
- Best of Swift 2 ๐
- New Features in Swift 2 ๐
- Switching your brain to Swift ๐
- Short Circuit Evaluation ๐
- How Swift makes your life better ๐
- Emerging best practices in Swift ๐ค
- Swift Thinking ๐ค
- Hidden Gems in Swift ๐ค
- Making Friends with Value Types ๐ค
- Catching up with Swift ๐พ
- Idiomatic Swift ๐พ
- Swiftly Methods ๐
- Function Params are Tuples in Swift ๐
- Better Unit Testing with Swift ๐
- UI Testing Cheat Sheet ๐
- SwiftTest BDD Testing Framework โ๏ธ
- More functional testing ๐
- Unit Testing with @testable in Xcode 7 ๐
- Mocking Objects in Swift ๐
- Reverse Engineering iOS Apps ๐ค
- TDD on iOS ๐ค
- The state of iOS testing in 2015 ๐
- Testing in Swift with Quick ๐ค
- Network Testing in Swift ๐ค
- Testing View Controllers with Quick ๐ค
- TDD By Controlling Dependencies in Swift ๐ค, ๐ค
- iOS Snapshot Test Cases โ๏ธ
- Quick Testing Framework โ๏ธ
- Nimble Matcher Framework โ๏ธ
- Swift Lint โ๏ธ
- How to configure Travis CI for iOS Testing ๐
- Setting up KIF for iOS Acceptance Testing ๐
- Replacing KIF with XCUI Tests ๐
- SwiftCheck: QuickCheck for Swift โ๏ธ
- Swift String Cheat Sheet ๐ ๐
- RegularExpressions in Swift ๐
- Creating a Lexer in Swift ๐
- Creating an Abstract Syntax Tree Parser in Swift ๐ ๐
- String to Number Parser โ๏ธ
- Madness: Parsing strings in simple context-free grammars โ๏ธ
- NSRegularExpression Cheat Sheet ๐
- Parser combinators, for Swift โ๏ธ
- Simple Reflection in Swift ๐
- Understanding Reflection in Swift and how to use it ๐
- Typecasting and the Swift Runtime ๐
- SwiftHTTPStatusCodes ๐
- Calling APIs and Parsing JSON with Swift ๐
- Parsing Embedded JSON and Arrays in Swift ๐
- Real World JSON Parsing ๐
- Efficient JSON Parsing with Functional Concepts ๐
- Swift and JSON: Are we doing it right? ๐ค
- Calling a REST Api in Swift ๐
- How to Make REST API Calls and Parse JSON with Swift ๐
- HTTP in Swift ๐
- Reachability Library ๐
- JSON in Swift ๐
- Functional JSON Parsing ๐
- NSURLSession Basics ๐
- Background Downloads ๐
- An AlamoFire Router ๐
- Moya: Network Abstraction Layer written in Swift โ๏ธ
- CloudKit Introduction ๐
- Create a Data Access Layer with SQLite.swift and Swift 2 ๐
- Using YapDatabase ๐