Skip to content

gitter-badger/Awesome-Swift-Education

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Awesome-Swift-Education Awesome Build Status

There is no royal road to Swift. β€”Euclid

Index

Open Source Swift

⬆️

Swift Style

⬆️

In-Browser Swift Editors

⬆️

Quick References

⬆️

Great Learning Resources

⬆️

Books

⬆️

Video

⬆️

Swift Community

⬆️

Programming with Swift

Closures and Functions

⬆️

Collections

⬆️

Command Line and Swift Scripting

  • Swift Command Line Application Template :pecnil2:
  • Using Swift As General Purpose Scripting Language πŸ“„

⬆️

Concurrency

⬆️

Control Structures

  • Swift Break and Continue Statements πŸ“„
  • Custom Control Structures in Swift πŸ“„

⬆️

Data Structures and Algorithms

⬆️

Date Programming

⬆️

Design Patterns and AntiPatterns

⬆️

Development Paradigms

⬆️

Enums and Pattern Matching

⬆️

Error Handling

⬆️

Extensions

⬆️

File IO

  • Basic File Reading and Writing Using Swift πŸ“„

⬆️

Functional Programming, Category and Type Theory

⬆️

Functional Reactive Programming in Swift

⬆️

Generics

  • Covariance
    • Covariant and contravariant generic type parameters πŸ”—
  • Protocol Generics

⬆️

Initializers, Properties, and Dependency Injection

⬆️

Interpolability with C and Objective-C

⬆️

Internals

⬆️

Language Comparisons and Transitioning to Swift

⬆️

Linux Development

⬆️

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 πŸ“„
    • Pervasive use of Optional in Swift is penance for nil πŸ“„
    • Optionals under the hood πŸ“„
    • Nil coalescing operator πŸ“„
    • Understanding Optional Chaining πŸ“„
  • Types
    • Reference Types
      • Weak, Strong, Unowned πŸ’Ύ
      • Is Swift Pass By Value or Pass By Reference πŸ”—
      • How can I make a weak protocol reference in 'pure' Swift (w/o @objc) πŸ”—
      • When to use weak pointers with delgates πŸ”—
      • Instance methods and type methods in Swift πŸ“„
    • Value Types
      • Every Swift Value Type Should be Equatable πŸ“„
      • How can I make a container with copy-on-write semantics? πŸ“„
      • When to use mutating functions in swift structs πŸ“„
      • Mutating Funcs in Swift Structs πŸ“„
      • Making Friends with Value Types 🎀
      • Swift copy-on-write behaviour for a struct using HeapBuffer πŸ“
      • Swift pass struct by reference? πŸ“„
    • Abstract Types
      • Understanding Swift’s Abstract Types (Swift 2.2 & above) πŸ“„
      • Understanding Abstract Types πŸ“„
    • Wrapper Types
    • Phantom Types
      • What are Phantom Types good for? πŸ“„
    • Dependent Types
      • An implementation of a dependently-typed intermediate language ✏️
      • Dependent Types: I'm missing something πŸ“„
      • Backwards Dependent Types πŸ“„
      • Type-Level Assertions (or, almost-dependent types) πŸ“
      • Validated: A Swift ΞΌ-Library for Somewhat Dependent Types πŸ“„
    • Dynamic Types
    • Nested Types
    • Type Reflection and Casting
      • Simple Reflection in Swift πŸ“„
      • Understanding Reflection in Swift and how to use it πŸ“„
      • Typecasting and the Swift Runtime πŸ“„
      • Why doesn't Swift have implicit type conversion? πŸ“„
      • as? vs as! πŸ“„
      • Understanding Downcasting Operators in Swift πŸ“„
      • Type check with switch statements πŸ“„
    • Associated Types
    • Metatypes
      • What is ExistentialMetatype in Swift πŸ“„
    • Typeclasses
      • Typeclasses in Swift, Haskell and Scala πŸ“„
    • Type Inference
    • Type Variance
    • Other

⬆️

Problem Solving with Swift

⬆️

Production Swift

⬆️

Protocols

⬆️

Protocol Oriented Programming in Swift 2

  • Properties of Types Conforming to Protocols πŸ“„

⬆️

Security

⬆️

Server Side Swift

⬆️

Strings and Regular Expressions

⬆️

Swift Language FAQs

⬆️

Testing Swift Code

⬆️

Tools

⬆️

Weird Swift

  • Other Swift Attributes you may not have heard of πŸ“„
  • Hipster Swift πŸ“„
  • Namespaces in Swift πŸ“„
  • Swift Literal Convertibles πŸ“„
  • What is the difference in Swift between 'unowned(safe)' and 'unowned(unsafe)'? πŸ“„
  • UnsafePointer πŸ“„
  • UnsafeMutablePointer πŸ“„
  • COPaquePointer and CFunctionPointer πŸ“„
  • How to Dereference an Unsafe Mutable Pointer in Swift πŸ“„
  • Pointers, Pointer Arithmetic, and Raw Data in Swift πŸ“„
  • Swift Method Dispatching πŸ“„
  • Global variables in Swift are not variables πŸ“„
  • Raw​Option​Set​Type πŸ“„

⬆️

iOS Programming with Swift

Application Structure / Architecture

⬆️

Core Data and Realm

⬆️

UI

⬆️

Web Services, JSON, Routing, REST, and Networking

⬆️

Mac Programming with Swift

WatchOS Programming with Swift

tvOS Programming With Swift

Xcode

Interview Questions

⬆️

Emoji Key

  • πŸ“ = Gist
  • ✏️ = Repository
  • πŸ““ = Blog
  • πŸ“„ = Blog Post
  • πŸ“œ = Quick Reference
  • πŸ“š = Book
  • πŸ“– = Guide Book
  • πŸ“° = Newsletter
  • πŸ’Ύ = Slides
  • 🎀 = Video Presentation
  • πŸ“Ή = Video
  • πŸ”— = Link
  • πŸ”₯ = Awesome List
  • πŸŽ“ = Learning Resource
  • πŸ“‹ = Interview Questions
  • πŸ“» = Podcast

⬆️

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 Elm Trailblazers. Shoutout to Haskell Devs and Category Theory legends. Shoutout to FutureKit. And finally, Shoutout to all the Swift Programmers out there, this project is by you and for you!

⬆️

About

πŸ”₯ All of the resources for Learning About Swift

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%