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
- Functional Programming in Swift
- Functional Reactive Programming in Swift
- GCD and NSOperation
- Generics
- Development
- Enums and Pattern Matching
- Error Handling
- 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 π