A curated list of resources for learning about the Swift Language
- ๐ = Gist
- โ๏ธ = Repository
- ๐ = Blog
- ๐ = Blog Post
- ๐พ = Slides
- ๐ค = Video Presentation
- ๐น = Video
- ๐ = Link
- ๐ = Book
- ๐ฅ = 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
- 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
- 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 ๐
- 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 ๐ฐ
- Hacking With Swift ๐
- A Better way to learn Swift ๐
- Ray Wenderlich Tutorial Pages ๐
- Swift Education ๐
- Play with Swift ๐
- Realm Roundup: 25 Realm Resources and Tutorials ๐
- Funcitonal Reactive Programming iOS Learning Resources ๐
- Learn Core Data ๐
- All the slides from Swift Summit 2015 ๐ and highlights from the talks ๐ and notes ๐
- All the Presentations from Swift Summit London ๐
- All Presentations from #Pragma Conference ๐
- MobileKonf 2015 ๐น
- Functional Swift Conf 2014 ๐ผ
- 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 ๐พ
- 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 ๐
- 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 ๐
- 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 โ๏ธ
- 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 ๐พ
- 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 ๐
- 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 ๐
- Easy Error Handing ๐
- Swift Failiable Initializers ๐
- Swift 2.0: Why Guard is Better than If ๐
- Swift 2 Error Handling ๐
- Swift 2 Error Handling and Pattern Matching ๐
- Guard and Defer ๐
- 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 ๐
- ๐ Swiftz Functional Programming Library โ๏ธ
- Swiftx Functional Data Types โ๏ธ
- 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 ๐
- Using Local Closures with Swift ๐
- Function Params are Tuples in Swift ๐
- Lenses in Swift ๐
- 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 pencil2
- 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 ๐พ
- 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 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 ๐
- Method Swizzling in Swift ๐
- Building for Open Source ๐พ
- Operator Overloading and JSON Parsing in Swift ๐
- Typelift Community Repo ๐
- 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 ๐
- 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 ๐พ
- 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 ๐
- The 55 Standard Lib Protocols Broken Down ๐
- 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 ๐พ
- 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 ๐
- 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 ๐