Giter Club home page Giter Club logo

awesome-swift-education's Introduction

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!

⬆️

awesome-swift-education's People

Contributors

ashfurrow avatar awesome-bot avatar bcylin avatar davecom avatar dmthomas avatar greg3z avatar hsavit1 avatar johnmuchow avatar lufzi avatar mhorga avatar prayagverma avatar readmecritic avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.