A curated list of resources for learning about the Swift Language
- 📝 = Gist
- ✏️ = Repository
- 📓 = Blog
- 📄 = Blog Post
- 📜 = Quick Reference
- 📚 = Book
- 📖 = Guide Book
- 💾 = 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
- WWDC 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
- Core Data
- Data Structures and Algorithms
- Design Patterns
- GCD and NSOperation
- 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 ✏️
- Docker Swift ✏️
- Swift Packages ✏️
- Swift Compiler Crashes ✏️
- Open Radar Swift 📄
- How to run Swift within a Docker container 📄
- Swift.org 📜
- That Thing In Swift 📜
- SwiftDoc 📜
- iOS Cookies 📜
- 🔥 Awesome Swift 📜
- 🔥 Another Awesome Swift 📜
- 🔥 Awesome Pure Swift 📜
- 🔥 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 📰
- 🔥 Awesome Swift News 📰
- Swift Weekly 📰
- Gettin' Swifty With It 📰
- Swift Education Community Repository ✏️
- iOS Swfit 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 ✏️
- Search through WWDC Presentations 🎤
- Code Samples From WWDC 🎤
- WWDC Full Text WriteUps 🎤
- 🙌 Protocol-Oriented Programming in Swift 🎤
- Make all Value Types Equatable 🎤
- Advanced NSOperations 🎤
- UI Testing in Xcode 🎤
- Continuous Integration made Easy in Xcode 7 🎤
- What's new in Xcode 🎤
- Swift in Practice 🎤
- Networking with NSURLSession 💾
- 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 📄
- 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 📄
- Closures and Capturing Values in Swift 📄
- Instance methods are Curried Functions in Swift 📄
- Using Local Closures with Swift 📄
- A quick guide to SequenceType 📄
- Sequences and Generators in Swift 📄
- Experimenting with Seqs and Generators 📄
- Can we please make a standard style for closures? 📄
- 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 📄
- 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 🎤
- 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 ✏️
- 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
- 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 📄
- 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 ✏️
- 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 🔗
- Basics 📄
- Methods of concurrency — GCD, agents, tasks and invocations 📄
- Code at the end of the queue 🔗
- Delaying Code Execution through Closures 📄
- Generic Arrays in Swift 2.0 📄
- The shortcomings of generic protocols 📄
- Generics in Swift, Part 1 📄
- Generics in Swift, Part 2 📄
- 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 ✏️
- Building for Open Source 💾
- Swift Android ✏️
- Swift Version Manager ✏️
- Keeping up with Open Source Swift :page_faing_up:
- Operator Overloading and JSON Parsing in Swift 📄
- Swift Optionals Made Simple 📄
- Swift's Type System 📄
- Every Kind of Optional 📄
- Understanding Downcasting Operators in Swift 📄
- Swift Manual Retain/Release 📄
- How I handle Optionals in Swift 📄
- How to unwrap an optional in 9 different ways 📄
- Optional Protocol Methodsin Pure Swift 📄
- Make a DSL in Swift 📄
- Type-Erased Wrappers in Swift 🎤
- Swift MetaTypes 📄
- Typing the Knot in Swift 🔗
- @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 🎤
- 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 📄
- 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 📄
- BDD Testing with Swift 📄
- TDD with Swift 📄
- Unit Testing in Swift 📄
- Xcode 7 UI Testing 📄
- 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 📄
- Part 2 of the AST 📄
- String to Number Parser ✏️
- 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 🔌