GithubHelp home page GithubHelp logo

acumenrev / awesome-swift-education Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hsavit1/awesome-swift-education

0.0 2.0 0.0 910 KB

:fire: All of the resources for Learning About Swift

License: MIT License

Swift 100.00%

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

⬆️

References

⬆️

Great Learning Resources

⬆️

Books

⬆️

Video

⬆️

Swift Community

⬆️

Programming with Swift

Audio

⬆️

Closures and Functions

⬆️

Collections

⬆️

Command Line and Scripting

  • Swift Command Line Application Template ✏️
  • Using Swift As General Purpose Scripting Language πŸ“„
  • Swift framework for launching shell tasks ✏️
  • Swift framework for parsing command-line arguments ✏️
  • Command Line Utilities in Swift πŸ“„
  • Make command line applications in Swift πŸ“
  • SwiftingBridge ::

⬆️

Concurrency

⬆️

Control Structures

⬆️

Data Structures and Algorithms

⬆️

Dates

⬆️

Debugging

⬆️

Design Patterns and AntiPatterns

⬆️

Development Paradigms

⬆️

Enums and Pattern Matching

⬆️

Error Handling

⬆️

Extensions

⬆️

FAQs

⬆️

Foundation

  • Measurements and Units in Foundation πŸ“„

⬆️

Functional Programming

⬆️

Functional Reactive Programming

⬆️

Generics

  • Generic Arrays in Swift 2.0 πŸ“„
  • Partial Function Application with Generics πŸ”—
  • Template Metaprogramming Swift πŸ“„
  • Generic Functions for Incompatible Types πŸ“„

⬆️

Initialization, Properties, and Dependency Injection

  • Initialization
    • What are get and set? πŸ“„
    • Why is the convenience keyword needed in Swift? πŸ”—
    • When should I use deinit? πŸ”—
    • Designated and Convenience initializers in Swift πŸ“„
    • Writing Class Initalizers πŸ“„
    • Definitive Variable Initialization πŸ“„
  • Properties
    • Type Properties
      • Instance property vs static type property vs computed type property πŸ“„
    • Stored Properties
    • Named Parameters
      • Named Parameters πŸ“„
      • Intuition behind the Swift external/local parameter system πŸ“„
      • Swift named parameters πŸ“„
    • Property Observers
      • Property Observers and Lazy Properties πŸ“„
    • IBOutlets
    • Computed Properties
      • Beware of Computed Properties πŸ“„
      • How to use swift computed properties πŸ“„
      • Computed Properties and Initializers
      • Static Vars are Lazy in Swift πŸ”—
      • Turn Computed Property into Lazy Property πŸ“„
    • Static Properties
      • Static Properties πŸ“„
      • Does Swift have class level static variables πŸ“„
      • Static vs class functions/variables in Swift classes? πŸ”—
    • Read-only
      • Read-only and non-computed variable properties πŸ”—
    • Atomicity
  • Dependency Injection
    • You Used To Inject Me In Your Constructor πŸ’Ύ
    • Dependency Injection with a Custom Initializer πŸ“„

⬆️

Interpolability

⬆️

Internals

⬆️

IO

  • Basic File Reading and Writing Using Swift πŸ“„
  • Read and write data from text file πŸ“„
  • Working with Files in Swift πŸ“„
  • A portable I/O framework for Swift ✏️
  • Reading and Writing Files to the iOS File System πŸ“„
  • Write large files to disk on background thread πŸ“„
  • Zip and unzip files with Swift ✏️
  • NSData extension enables gzip/gunzip using zlib ✏️
  • FileKit πŸ“
  • Zipping and unzipping files in your Swift app πŸ“„

⬆️

Language Comparisons

  • Language Comparisons
    • Haskell
      • What do Haskell developers think of Swift? πŸ”—
      • A Swift introduction to Haskell πŸ’Ύ
      • Hindley-Milner languages πŸ”—
      • Quicksort in Swift with Haskell style πŸ”—
      • Lesson In Swift Through Haskell πŸ’Ύ
    • Javascript
      • Comparing Swift and Javascript πŸ“„
    • C
    • C++
      • Is Swift a viable alternative to C++ for performance critical code? πŸ“„
      • Swift vs Modern C++ πŸ”—
      • Use a C++ Library from Swift πŸ“„
    • C#
      • Swift for C# Developers πŸ“„
      • Swift is a lot like C# πŸ”—
      • Swift vs C# πŸ“„
      • Swift vc C# reference guide πŸ”—
      • Is something in Swift like LINQ in C# πŸ”—
      • Are the Tuples in Swift complete alternative to Anonymous types as in C# πŸ”—
      • Swift Protocol Extensions and C# Abstract Classes πŸ“„
      • C# like async in Swift πŸ“„
    • Java
      • Swift Protocols vs Java 8 Interfaces πŸ“„
      • Swift 2.0 Protocol Extensions vs Java Abstract Classes πŸ”—
      • Swift vs Java Performance πŸ“„
      • Making Abstract Classes in Swift πŸ“„ πŸ“„
      • Why doesn't Apple Swift adopt the memory management method of garbage collection like in Java? πŸ“„
      • Class level or struct level method in swift like static method in Java? πŸ”—
      • Difference between Swift 2.0 protocol extensions and Java/C# abstract classes? πŸ“„
    • Kotlin
    • Android
      • How to Start Android Development with an iOS Background πŸ“„
      • Faceoff: Android vs. iOS 🎀
      • Using JNI in Swift to put an app into the Android Play Store πŸ“„
      • How we put an app in the Android Play Store using Swift πŸ“„
    • Go
    • Rust
    • Ruby
    • Scala
    • OCaml
    • Python
    • Elixir
      • Comparing Protocols and Extensions in Swift and Elixir πŸ“„
    • Groovy
      • Apple's Swift programming language inspired by Groovy πŸ“„
    • React Native
      • Tutorial: Custom React Native Components in Swift πŸ“„
      • Bridge a Swift view in React Native πŸ“„

⬆️

Linux

⬆️

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

⬆️

Problem Solving

⬆️

Production

  • Dependency Managers
  • Modules and frameworks
  • Docker
    • Deploy and run Swift Kitura Applications with Docker πŸ“„
    • Docker image that contains all dependencies for building and running the Kitura sample application ✏️
    • Docker for iOS Development ✏️
    • How I'm dockerizing Swift web apps πŸ“„
    • Docker containers used for spinning up different Swift web frameworks πŸ“„
    • Easy Server Side Swift with Docker πŸ“„
    • Swift example to run on Kubernetes ✏️
    • Run Linux Swift on your Mac or PC with Docker πŸ“„
  • Other

⬆️

Protocols

  • Using the Hashable Protocol πŸ“„ πŸ“„
  • Swift Protocol Naming Conventions πŸ“„
  • A default CustomStringConvertible implementation for Swift types πŸ“„
  • A protocol that allows any class to be printed as if it were a struct πŸ“„
  • Implementing Equatable for Protocols in Swift πŸ“„

⬆️

Protocol Oriented Programming

  • Practical Protocol-Oriented-Programming 🎀
  • Protocol Extensions vs Type Extensions πŸ“„
  • 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 πŸ“„
  • Protocol Oriented Programming through UIKit πŸ“„
  • Protocols in Swift πŸ“„
  • Ray Wenderlich intro to POP πŸ“„
  • Protocol Extensions and the death of the Pipe forward operator πŸ“„
  • How Protocol Oriented Programming could still improve πŸ“„
  • The Swift Protocol Proposal πŸ“„
  • πŸ™Œ Mixins and Traits in Swift 2.0 πŸ“„
  • Minimal Swift 2.1 Protocol Coformance πŸ“„
  • Favor Mixins over inheritance πŸ“„
  • Current Recommended Protocol Usage πŸ“„
  • POP in Swift vs ObjC and C++ πŸ“„
  • POP Utility Belt ✏️
  • Typesafe and Composable Data Sources in Swift πŸ“„
  • Protocol Extension Method Dispatch πŸ“„
  • Weird things you can do with protocol extension πŸ“„ πŸ“„
  • Improved Protocol-Oriented Programming with Untyped Type Aliases πŸ“„ πŸ“„
  • Protocol-Oriented Problems and the Immutable 'self' Error πŸ“„
  • Multiple Inheritance vs. Traits or Protocol Extensions πŸ“„
  • Protocol Oriented Networking πŸ“„ πŸ“„ πŸ’Ύ
  • Protocol-Oriented Views in Swift πŸ“„
  • Protocol oriented loading of resources from a network service in Swift πŸ“„

⬆️

REPL

⬆️

Security

⬆️

Server Side Swift

⬆️

Strings and Regular Expressions

⬆️

Testing

⬆️

Tools

⬆️

Types

  • Reference Types (Classes)
    • 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 (Structs)
    • 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 behavior for a struct using HeapBuffer πŸ“
    • Swift pass struct by reference? πŸ“„
    • Value Types πŸ“„
    • Fully Value-Typed Arrays in Swift πŸ“„
    • Swift and mutating struct πŸ”—
    • Safer swift code with value types πŸ’Ύ
    • Value oriented Architecture πŸ’Ύ
    • Reference and Value Types in Swift πŸ“„
  • Algebraic Types
  • Compose Types
    • Named Types and Compound Types πŸ“„
  • 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
    • DynamicType and MultiMethods πŸ“„
    • DynamicTypes and Metatypes πŸ“„
    • A Definition of Dynamic Programming in the Cocoa World πŸ“„
  • Nested Types
  • Type Reflection and Casting
    • Basic Reflection in Swift πŸ“
    • Swift class introspection & generics πŸ“„
    • 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 πŸ“„
    • Increased Safety in Swift 3.0 πŸ“„
  • Associated Types
    • Swift: What are Protocols with Associated Types? πŸ“„
    • Associated Types Considered Weird πŸ“„
    • Swift Associated Types, cont πŸ“„
  • Type Aliases
  • Metatypes
    • What is ExistentialMetatype in Swift πŸ“„
    • Bridging Existentials and Generics in Swift 2 πŸ“„
  • MirrorTypes
    • Using a Mirror Struct to get an object's type πŸ”—
  • Typeclasses
    • Typeclasses in Swift, Haskell and Scala πŸ“„
  • Type Inference
    • Implicit Member Expression πŸ“„
    • Referential Transparency πŸ”—
    • Swift Type Inference Closure Constraints πŸ“„
  • Type Variance
  • Type Erasures
  • Type Checking
    • Exponential time complexity in the Swift type checker πŸ“„

⬆️

Weird Swift

⬆️

iOS Programming with Swift

Application Structure / Architecture

⬆️

Core Data and Realm

⬆️

Core Image

⬆️

iOS

  • All of the Apple Device Frameworks πŸ”—
  • Apple Example Code πŸ”—
  • iOS 9 Programming Fundamentals with Swift πŸ”—
  • Top SDKs used by App Store Top 200 Free Apps πŸ”—
  • Introduction to SiriKit πŸ”—

⬆️

JSON

  • Functional Parsing
    • Efficient JSON Parsing with Functional Concepts πŸ“„
  • { JSON, Swift, and Type Safety } πŸ’Ύ
  • JSON in Swift πŸ“„

⬆️

Persistence

⬆️

UI

⬆️

Web Services, Routing, and Networking

⬆️

Mac Programming with Swift

WatchOS Programming with Swift

tvOS Programming With Swift

⬆️

Xcode

  • About
  • Build System
  • Interface Builder
    • Implementing UI Designs in Interface Builder πŸ“
    • Integrating Designs through IB 🎀
    • IBInspectable / IBDesignable πŸ“„

⬆️

Emoji Key

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

⬆️

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 @Ben-Evolently 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, made by my former coworker @michaelgray. And finally, Shoutout to all the Swift Programmers out there, this project is by you and for you!

⬆️

awesome-swift-education's People

Contributors

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

Watchers

 avatar  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.