cchongXD / Awesome-Swift-Education

All the resources for Learning About Swift

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Swift Logo

Awesome-Swift-Education

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

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

Application Structure / Architecture

  • Demystifying iOS Architecture Patterns πŸ“„
  • 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 πŸ“„
  • Typesafe Associated Objects ✏️

Closures

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

Collections / Sequences / Generators

Command Line and Swift Scripting

Concurrency

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 πŸ“Š
  • Facade Functions πŸ“Š

Development

Enums and Pattern Matching

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

Extensions

Functional Programming in Swift

Functional Reactive Programming in Swift

Generics

Initializers

Interpolability with C and Objective-C

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

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

Realm

Security

String Manipulation and RegEx

Swift Language

  • Function Params are Tuples in Swift πŸ“„

Testing

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

Web Services - Other

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

Interview Situations

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. If you would like to contribute to this list, make sure to check out the enoji 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 @ash_furrow for being so incredibly helpful. Shoutout to @CodaFi_ and the Typelift team for promoting FP. Shoutout to the trillmoji project

About

All the resources for Learning About Swift

License:MIT License


Languages

Language:Swift 100.0%