Skip to content

timothydang/Awesome-Swift-Education

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

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

Closures

  • Coming Changes for the Function Currying Syntax in Swift 3.0 πŸ”— πŸ“„
  • 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() πŸ“„

Collections / Sequences / Generators

  • Using Generators for UITableView Pagination Purposes πŸ“„
  • A Little Respect for AnySequence πŸ“„
  • Swift Sequence Lib ✏️
  • SINQ - Swift Integrated Query ✏️
  • List Comprehension in Swift πŸ“„
  • Collection Indices, Slices, and Generics πŸ“„
  • Generic Collections, SubSequences and Overloading πŸ“„

Command Line and Swift Scripting

Concurrency

Core Data and Realm

Data Structures and Algorithms

Design Patterns

  • Functional Notification Pattern πŸ“„

Development Paradigms

Enums and Pattern Matching

Error Handling

Extensions

Functional Programming, Category and Type Theory

Functional Reactive Programming in Swift

Generics

Initializers, Properties, and Dependency Injection

Interpolability with C and Objective-C

Language Comparisons and Transitioning to Swift

LLVM Compiler and swiftc

Optionals and Types

Production Swift, Problem Solving, and Developer Tools

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

Security

String Manipulation and RegEx

Swift Language, Open Source, and Opinions

  • Opinions about Swift
    • Wishlist for Swift 3.0 πŸ“„
    • What are the Worst parts of Swift? πŸ“„
    • The Death of Cocoa πŸ“„
    • Swift is not functional πŸ“„
    • Which features overcomplicate Swift? What should be removed? πŸ“„
    • Does Apple Swift have enough functional features to be considered as a functional language? Why? πŸ“„
    • What is the bare minimum you need to learn Swift? πŸ“„
    • How flexible is Swift? πŸ“„

Testing

Web Services and Networking

Interview Situations

Swift Community

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. If the topic of the content is already exists on the list, create an adjacent emoji to the existing content. 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!

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%