Awesome-Swift-Education ![Awesome](https://camo.githubusercontent.com/abb97269de2982c379cbc128bba93ba724d8822bfbe082737772bd4feb59cb54/68747470733a2f2f63646e2e7261776769742e636f6d2f73696e647265736f726875732f617765736f6d652f643733303566333864323966656437386661383536353265336136336531353464643865383832392f6d656469612f62616467652e737667)
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
- Swift Style
- In-Browser Swift Editors
- Quick References
- Blogs
- Newsletters
- Great Learning Resources
- Books
- 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
- Development
- Enums and Pattern Matching
- Error Handling
- Extensions
- Functional Programming and Category Theory in Swift
- Functional Reactive Programming in Swift
- Generics
- Initializers
- Interpolability
- Language Comparisons
- LLVM Compiler
- Objective C Transitioning to Swift
- Open Source Swift
- Operator Overloading
- Opinions about Swift
- Optionals and Types
- Problem Solving in Swift
- Production Swift
- Protocol Oriented Programming in Swift 2
- Realm
- Security
- String Manipulation
- Swift Language
- Testing
- Type Reflection and Casting
- Web Services and Networking
- Web Services - Other
- Interview Situations
- Contributing Guidelines
- Shoutouts
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
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
- iOS at Artsy ๐
- ๐ Objc.io ๐
- NSBlog with Mike Ash ๐
- Use Your Loaf ๐
- Chris Eidhof ๐
- Ole Begemann ๐
- Uramio ๐
- Swift Weekly ๐
- Erica Sadun ๐
- Appventure ๐
- MetalByExample.com ๐
- David Owens ๐
- The iOS Times ๐
- Crunchy Development ๐
- iOS Blog ๐
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
- Not Free (but still awesome) Swift Books
Video
- 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
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 ๐
- 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
- 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 โ๏ธ
Functional Reactive Programming in Swift
- MVVM + FRP ๐
- MVVM + RxSwift โ๏ธ, ๐, ๐
- Introduction ๐
- Reacting to Events ๐
- ReactiveCocoa 4.0 Info ๐
- 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
Objective C Transitioning to Swift
Open Source Swift
- 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
Optionals and Types
- Optionals
- 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
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 ๐
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 ๐
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!