Skip to content

13hoop/Awesome-Swift-Education

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

85 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Swift Logo

Awesome-Swift-Education

A curated list of resources for learning about the Swift Language

Key

  • πŸ“ = Gist
  • ✏️ = Repository
  • πŸ““ = Blog
  • πŸ“„ = Blog Post
  • πŸ’Ύ = Slides
  • 🎀 = Video Presentation
  • πŸ“Ή = Video
  • πŸ”— = Link
  • πŸ“– = Book
  • πŸ”₯ = 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

Free Books

Presentations

WWDC Presentations

Other Video

Posts

Animations and Front End Stuff

  • Mixing SpriteKit with UIKit in iOS 9 πŸ“„

Application Structure / Architecture

  • Mutating Funcs in Swift Structs πŸ“„

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 πŸ“„

Closures

  • Closures and Capturing Values in Swift πŸ“„
  • Instance methods are Curried Functions in Swift πŸ“„

Collections / Sequences / Generators

  • 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 πŸ”—

Command Line and Swift Scripting

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 πŸ”Œ

Data Structures and Algorithms

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 πŸ“„

Development

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 πŸ“„
  • 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 πŸ“„

Error Handling

Extensions

Functional Programming 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 Reactive Programming in Swift

GCD and NSOperation

  • Basics πŸ“„
  • Methods of concurrency β€” GCD, agents, tasks and invocations πŸ“„
  • Code at the end of the queue πŸ”—
  • Delaying Code Execution through Closures πŸ“„

Generics

Initializers

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 πŸ”—

Language Comparisons

  • Comparing Swift and Javascript πŸ“„
  • C++ Advice to Swift Devs πŸ“„
  • Swift Protocols vs Java 8 Interfaces πŸ“„

LLVM Compiler

Objective C Transitioning to Swift

Open Source Swift

Operator Overloading

  • Operator Overloading and JSON Parsing in Swift πŸ“„

Opinions about Swift

Optionals and Types

Other

Problem Solving

  • Creating and Building a DSL in Swift πŸ’Ύ
  • πŸ™Œ FizzBuzz on steroids with Swift πŸ’Ύ
  • Learning Swift the Euler Way 🎀

Production Swift

Protocol Oriented Programming in Swift 2

  • 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 πŸ“„

Realm

Security

Swift Language

Text Manipulation

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 πŸ“„
  • Calling a REST Api in Swift πŸ“„
  • How to Make REST API Calls and Parse JSON with Swift πŸ“„
  • HTTP in Swift πŸ“„
  • Reachability Library πŸ“„

Web Services - Other

  • CloudKit Introduction πŸ”Œ
  • Create a Data Access Layer with SQLite.swift and Swift 2 πŸ”Œ
  • Using YapDatabase πŸ”Œ

Interview Situations

About

All the resources for Learning About Swift

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%