/Awesome-Swift-Education

All the resources for Learning About Swift

Primary LanguageSwiftMIT LicenseMIT

Swift Logo

Awesome-Swift-Education Awesome

A curated list of resources for learning about the Swift Language.

Key

  • 📝 = 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

Index

Open Source Swift

  • 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 ✏️

Swift Style

  • Functional Swift Style Guide 📖
  • The Official Swift Language Docs 📖
  • Swift Language Evolution 📖

In-Browser Swift Editors

  • IBM Swift Sandbox 🔗
  • SwiftStub 🔗
  • Try Swift in the Browser 🔗

Quick References

  • 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 📜

Blogs

Newsletters

  • This Week in Swift News 📰
  • iOS Goodies 📰
  • iOS Dev Weekly 📰
  • Swift Open Source Newsletter 📰
  • SwiftLang Website 📰
  • Swift Weekly 📰
  • Gettin' Swifty With It 📰
  • Indie iOS Dev Weekly 📰

Great Learning Resources

  • 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 📜
  • Udacity Swift Syntax Course 🎓

Books

  • Free Books
    • The Swift Programming Language 2.2 📚
    • Learn Swift 📚
    • Swift for Programmers 📚
  • Not Free (but still awesome) Swift Books
    • Objc.io Book Series 📚
    • Ray Wenderlich Book Series 📚
    • Packt Publishing Book Series 📚
    • Apress Book Series 📚
    • Oreilly Book Series 📚
    • Your First Swift App 📚

Video

  • Presentations
    • 🔥 pomo.tv Presentations from all of the events 🎤
    • WWDC 2015 Presentations 🎤 ✏️ 📝
    • 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 ✏️
    • All Presentations from 360iDev 2015 📹
    • NSSpain 2015 interviews 📹
  • Other Video
    • Swift Language Youtube Channel 📹
    • Free Swift Lang Course 📹
    • Explaining the mutating keyword 📹
    • Swift tutorial Video Series 📹

Posts

Animations and Front End Stuff

  • 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 💾
  • Cartography Autolayout DSL ✏️

Application Structure / Architecture

  • Demystifying iOS Architecture Patterns 📄
  • Mutating Funcs in Swift Structs 📄
  • Refractor the Mega Controller 🎤
  • 250 Days of using VIPER Architecture with Swift 🎤
  • Safer with VIPER 📄
  • Preventing Massive View Controllers 🎤
  • A Structy Model Layer 📄
  • Unidirectional Data Flow Architecture ✏️
  • Ziggurat iOS App Architecture 📄
  • One Way Data Flow Architecture in Swift 🎤
  • Unidirectional Dataflow Architecture with Swift-Flow 💾 ✏️
  • CocoaFlow Architecture 📄
  • You Used To Inject Me In Your Constructor 💾
  • Swift Inject Dependency Injection ✏️
  • How to Dependency Inject on iOS 🎤
  • Dependency Injection in Swift 📄
  • Lighter View Controllers in Swift 📄 📝

Associated Types and Objects

  • 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

  • Swift Function Currying 📄
  • 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? 📄
  • @autoclosure, @inline, @noescape, and @noreturn Keywords 📄
  • How to use @noescape 📄
  • How to use @autoclosure 📄
  • Closures in API Design 🎤
  • weak vs unowned 📄
  • Swift weak references 📄
  • Difference between weak self vs weak self() 📄
  • Partial Function Application 📝

Collections / Sequences / Generators

  • A quick guide to SequenceType 📄
  • Swift Collections 📄
  • 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 ✏️
  • SINQ - Swift Integrated Query ✏️
  • List Comprehension in Swift 📄

Command Line and Swift Scripting

  • 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 📄

Concurrency

  • 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 ✏️
  • NSOperations and NSOperationQueues 📄
  • Threading with Closures 📄
  • Building Responsive and Efficient Apps with GCD 🎤 💾

Core Data

  • 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 🎤
  • My Core Data Stack 📄 📝

Data Structures and Algorithms

  • 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 📝

Design Patterns

  • 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 📊
  • Facade Functions 📊
  • Observable-Swift KVO Replacement ✏️

Development

  • Result Driven Development 💾
  • Library Oriented Programming 🎤
    • Oriented Programming 🎤
  • Hole Driven Development 📄
  • Entering a New Codebase 💾
  • Railway Oriented Programming 🎤
  • Swift in Practice 🎤 💾
  • Denotational Design 💾

Enums and Pattern Matching

  • 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 📄
    • Using Enums as Constants 📄
  • 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 📄

Error Handling

  • 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 💾
  • Let it Throw! 📄
  • Magic Methods in Swift 📄
  • Understanding Optional Chaining 📄

Extensions

  • ExSwift ✏️
  • Useful Swift Extensions ✏️
  • EZSwiftExtensions ✏️
  • Public Extension 📓
  • Adding Class Properties via Extension 📄
  • Type Constrained Extensions in Swift 📄

Functional Programming and Category Theory in Swift

  • Category Theory
    • What the heck is a monad? 📄
    • Category Theory for Programmers 📖
    • Cheat Sheet For Typeclasses and Monads in Haskell 📜 📜 📄
    • Category Theory For Beginners 💾 💾
    • Category Theory and Progamming 🎤
    • Awesome Math/Category Theory 📝
    • Category Theory in Haskell 📄
  • Functional Programming in Swift
    • Deriving higher order functions in Swift 📄
    • Typelift Community Repo 📝
    • 🙌 Swiftz Functional Programming Library ✏️
    • Second Bridge Swift Functional Framework ✏️
    • 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 Talk 🎤
    • 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 📝
    • Simple Monoid Example 📝 📝
    • Dollar.Swift Functional Toolkit like Lodash and Underscore ✏️
    • 🔥 Awesome Functional Programming ✏️
    • Continuation Monad 📝 📝 📝
    • Does Swift implement tail call optimization? and in mutual recursion case? 🔗 🔗
    • (Tail)Recursion with nested functions in Swift 2.0 📄 📄 📝
    • Reduce all the things 📄
    • zipWith 📝

Functional Reactive Programming in 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 📄
  • State, Promises, and Reactive Programming 🎤 ✏️
  • State Machines in Swift ✏️
  • RxSwift Community Webpage 🔗
  • Functional Reactive Programming on iOS 💾

Generics

  • Generic Arrays in Swift 2.0 📄
  • The shortcomings of generic protocols 📄
  • Generics in Swift, Part 1 📄, Part 2 📄
  • Official Docs 📝
  • Covariant and contravariant generic type parameters 🔗
  • Generic Protocols 📄
  • Partial Function Application with Generics 🔗

Initializers

  • Swift Initializers 📄
  • Immutable Swift 📄
  • What's the point of Laziness? 📄
  • IBOutlet Style in Swift 📄
  • Lazy Properties in Structs 📄
  • Swift Initialization and the Pain of Optionals 📄

Interpolability with C and Objective-C

  • 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 ✏️
  • Mapping Swift Types to C Pointers 📄

Language Comparisons

  • Comparing Swift and Javascript 📄
  • C++ Advice to Swift Devs 📄
  • Swift Protocols vs Java 8 Interfaces 📄
  • Learning Swift from Haskell 💾 and corresponding 🎤
  • Swift vs Golang 💾
  • Swift 2.0 Protocol Extensions vs Java Abstract Classes 🔗
  • What do Haskell developers think of Swift? 🔗

LLVM Compiler

  • LLVM by Chris Lattner 📄
  • Swift Intermediate Language 💾
  • Using the LLVM API With Swift 📄
  • LLVM and Swift 🎤
  • Swift Performance 💾
  • Swift 2 Under the Hood 💾

Objective C Transitioning to Swift

  • Method Swizzling in Swift 📄
  • How to Method Swizzle in Swift 📄
  • A Eulogy for Objective C 🎤
  • The best of Obj-C to Swift 🎤

Open Source Swift

  • Booleans 📄
  • Swift Open Source Overview 📄
  • Open Source Swift 3.0 Roadmap 📄
  • Building for Open Source 💾
  • Swift Android ✏️
  • Swift Version Manager ✏️
  • Docker Swift ✏️
  • Open Radar Swift 📄
  • How to run Swift within a Docker container 📄
  • Version Manager ✏️

Operator Overloading

  • Operator Overloading and JSON Parsing in Swift 📄

Opinions about Swift

  • Wishlist for Swift 3.0 📄
  • What are the Worst parts of Swift? 📄
  • The Death of Cocoa 📄

Optionals and Types

  • Optionals
    • How I handle Optionals in Swift 📄
    • How to unwrap an optional in 9 different ways 📄
    • Optional Protocol Methods in Pure Swift 📄
    • Swift Optionals Made Simple 📄
    • Every Kind of Optional 📄
  • Types
    • Swift's Type System 📄
    • Types and Metatypes in Swift 📄
    • 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 📄
    • Type Introspection 📄
    • Safer Swift Code With Value Types 🎤 💾
    • Dependent Types in Swift 📄

Problem Solving

  • Creating and Building a DSL in Swift 💾
  • 🙌 FizzBuzz on steroids with Swift 💾
  • Learning Swift the Euler Way 🎤
  • Swift in Practice 🎤

Production Swift

  • 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 2

  • 🙌 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 ✏️
  • Typesafe and Composable Data Sources in Swift 📄
  • Protocol Extension Method Dispatch 📄
  • The Genius of Protocols 📄

Realm

  • 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 🔌

Security

  • Encryptor / Decryptor Data Format ✏️
  • CommonCrypto in Swift 🎤
  • 🔥 Awesome iOS Security 🔗

String Manipulation and RegEx

  • 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 ✏️
  • Clean Regular Expressions in Swift 📄
  • Simple Regex 📝

Swift Language

  • What's new in Swift 2 🎤 💾
  • Diving into Swift 2 📄
  • 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 📄
  • Improving your Existing Apps with Swift 💾

Testing

  • Profiling in Depth 🎤 💾
  • BDD Testing with Swift 📄
  • TDD with Swift 📄
  • Unit Testing 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 ✏️

Type Reflection and Casting

  • Simple Reflection in Swift 📄
  • Understanding Reflection in Swift and how to use it 📄
  • Typecasting and the Swift Runtime 📄
  • Advanced Type Safety in Swift 💾, and corresponding 🎤

Web Services and Networking

  • 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 ✏️

Web Services - Other

  • CloudKit Introduction 🔌
  • Create a Data Access Layer with SQLite.swift and Swift 2 🔌
  • Using YapDatabase 🔌
  • { JSON, Swift, and Type Safety } 💾
  • MagicalRecord loves Swift 🎤
  • Networking with Monads 📹
  • Swift-MongoDB ✏️

Interview Situations

  • Ray Wenderlich 📋
  • Toptal 📋
  • LeetCode 📋
  • Coding Questions 📋
  • 🔥 Awesome Swift Interview Questions 📋
  • 🔥 Awesome iOS Interview Questions 📋

Contributing Guidelines

Let this list serve as a huge thank you to the incredible Swift Community. It would not exist if the people behind Swift were not so incredibly innovative, intellectual, and enthusiastic about the language and about open source. I created this list because I believe that the Swift community can be just as smart as the Haskell Community if guided properly. If you would like to make the Swift community smarter and contribute to this list, make sure to check out the emoji key and please open up a pull request or send a tweet of the content to @FeelFunnyFlow. I realize that this list is by no means perfect, so if you have an idea as to how I can change it, please let me know!

Shoutouts

Shoutout to @clattner_llvm, the OG Swift Developer. Shoutout to @chriseidhof for encouraging me to promote this idea and for being a huge baller. Shoutout to @ashfurrow and @bennRodri for being so incredibly helpful. Shoutout to @CodaFi_, the TypeLift, and the Antitypical teams for promoting FP. Shoutout to the trillmoji project. Shoutout to Haskell Devs and Category Theory legends. And finally, Shoutout to all the Swift Programmers out there, this project is by you and for you!