所有关于Swift的学习指南

jopen 8年前

Swift Logo

Awesome-Swift-Education

A curated list of resources for learning about the Swift Language

Key

  • :pencil: = Gist
  • :pencil2: = Repository
  • :notebook: = Blog
  • :page_facing_up: = Blog Post
  • :floppy_disk: = Slides
  • :microphone: = Video Presentation
  • :video_camera: = Video
  • :link: = Link
  • :book: = Book
  • :fire: = Awesome List
  • :mortar_board: = Learning Resource
  • :clipboard: = Interview Questions
  • :electric_plug: = Networking Related Post
  • :bar_chart: = Algorithm Related Post

Index

Open Source Swift

  • Apple Master Github Repository :crown:
  • Swift Master Repository :pencil:
  • Download Swift :link:
  • Core Libs Unimplemented Parts :pencil:
  • Swift Core Libs Foundation Repository :pencil:
  • Swift Core Libs Dispatch Repository :pencil:
  • Swift CommonMark parsing and rendering library in C :pencil:
  • Swift Clang Repositroy :pencil:
  • Swift LLDB Repository :pencil:
  • Docker Swift :pencil:
  • Swift Packages :pencil:
  • Swift Compiler Crashes :pencil:
  • Open Radar Swift :page_facing_up:

Swift Style

  • The Official Swift Language Docs :book:
  • Swift Language Evolution :book:
  • Swift Stye Rules :book:
  • SwiftLint :book:
  • Swift Language Philosophies :book:
  • Swift Lang F.A.Q. :book:

In-Browser Swift Editors

  • IBM Swift Sandbox :link:
  • SwiftStub :link:
  • Try Swift in the Browser :link:

Quick References

  • Swift.org :scroll:
  • That Thing In Swift :scroll:
  • SwiftDoc :scroll:
  • iOS Cookies :scroll:
  • :fire: Awesome Swift :scroll:
  • :fire: Another Awesome Swift :scroll:
  • :fire: Awesome Pure Swift :scroll:
  • :fire: Awesome iOS :scroll:
  • iOS Good Practices :scroll:
  • Little Bites of Cocoa :scroll:
  • Libraries used in the top 100 Apps :scroll:
  • Fu*king Closure Syntax :scroll:
  • RAC Marbles :scroll:
  • Swift Knowledge Base :scroll:

Blogs

  • iOS at Artsy :notebook:
  • The Swift Diary :notebook:
  • Human Friendly Swift Blog :notebook:
  • :raised_hands: Objc.io :notebook:
  • NSBlog with Mike Ask :notebook:
  • Use Your Loaf :notebook:
  • Chris Eidhof :notebook:
  • Ole Begemann :notebook:
  • Uramio :notebook:
  • Swift Weekly :notebook:
  • Erica Sadun :notebook:
  • ThinkAndBuild :notebook:
  • MetalByExample.com :link:
  • David Owens :notebook:
  • The iOS Times Curated Review of the latest leading Github Projects :notebook:

Newsletters

  • This Week in Swift News: Curated Swift News :newspaper:
  • iOS Goodies :newspaper:
  • iOS Dev Weekly :newspaper:
  • Swift Sandbox Newsletter :newspaper:
  • SwiftLang Website :newspaper:
  • :fire: Awesome Swift News :newspaper:
  • Swift Weekly :newspaper:
  • Gettin' Swifty With It :newspaper:

Great Learning Resources

  • Hacking With Swift :mortar_board:
  • A Better way to learn Swift :mortar_board:
  • Ray Wenderlich Tutorial Pages :mortar_board:
  • Swift Education :mortar_board:
  • Play with Swift :mortar_board:
  • Realm Roundup: 25 Realm Resources and Tutorials :scroll:
  • Funcitonal Reactive Programming iOS Learning Resources :scroll:
  • Learn Core Data :scroll:

Free Books

  • Learn Swift :books:
  • Swift for Programmers :books:

Presentations

  • All the slides from Swift Summit 2015 :link: and highlights from the talks :link: and notes :page_facing_up:
  • All the Presentations from Swift Summit London :link:
  • All Presentations from #Pragma Conference :link:
  • MobileKonf 2015 :video_camera:
  • Functional Swift Conf 2014 :vhs:
  • CocoaConf Videos :vhs:
  • :fire: Awesome iOS Conferences :pencil:

WWDC Presentations

  • Search through WWDC Presentations :microphone:
  • Code Samples From WWDC :microphone:
  • WWDC Full Text WriteUps :microphone:
  • :raised_hands: Protocol-Oriented Programming in Swift :microphone:
  • Make all Value Types Equatable :microphone:
  • Advanced NSOperations :microphone:
  • UI Testing in Xcode :microphone:
  • Continuous Integration made Easy in Xcode 7 :microphone:
  • What's new in Xcode :microphone:
  • Swift in Practice :microphone:
  • Networking with NSURLSession :floppy_disk:

Other Video

  • Swift Language 油Tube Channel :vhs:
  • Free Swift Lang Course :vhs:
  • Explaining the mutating keyword :vhs:
  • Swift tutorial Video Series :vhs:

Posts

Animations and Front End Stuff

  • Mixing SpriteKit with UIKit in iOS 9 :page_facing_up:
  • AdaptiveUI Animations :microphone: and :floppy_disk:
  • iOS Animations with AutoLayout :microphone: and :pencil2:
  • Metal and Swift :microphone:
  • Animating Constraints :page_facing_up:
  • Advanced UITableViews :microphone:
  • SpriteKit as an intro to SceneKit :floppy_disk:

Application Structure / Architecture

  • You Used To Inject Me In Your Constructor :floppy_disk:
  • Swift Inject Dependency Injection :pencil2:
  • Class or Struct? :page_facing_up:
  • RE: Class or Struct :page_facing_up:
  • Uber Jetstream :pencil:
  • Mutating Funcs in Swift Structs :page_facing_up:
  • MVVM in Swift :page_facing_up:
  • Refractor the Mega Controller :microphone:
  • 250 Days of using VIPER Architecture with Swift :microphone:
  • Safer with VIPER :page_facing_up:
  • Dependency Injection in Swift :page_facing_up:
  • Preventing Massive View Controllers :microphone:
  • A Structy Model Layer :page_facing_up:

Associated Types and Objects

  • Protocols with Associated Types and how they got that way :floppy_disk:
  • Associated Types in Swift Explained :page_facing_up:
  • Illuminating Forum Post :page_facing_up:
  • How to make Generic Protocols in Swift :page_facing_up:
  • Associated Enum Data As Types :page_facing_up:

Closures

  • Closures and Capturing Values in Swift :page_facing_up:
  • Instance methods are Curried Functions in Swift :page_facing_up:

Collections / Sequences / Generators

  • A quick guide to SequenceType :page_facing_up:
  • Sequences and Generators in Swift :page_facing_up:
  • Experimenting with Seqs and Generators :page_facing_up:
  • Can we please make a standard style for closures? :page_facing_up:
  • Sets vs Dictionaries in Swift :page_facing_up:
  • The Fibonacci SequenceType :page_facing_up:
  • Truly Lazy Sequences :link:
  • Using Generators for UITableView Pagination Purposes :page_facing_up:
  • A Little Respect for AnySequence :page_facing_up:
  • Swift Sequence Lib :pencil2:

Command Line and Swift Scripting

  • Swift Scripting :microphone:
  • Learn Swift by running Scripts :page_facing_up:
  • Scripting in Swift is Pretty Awesome! :page_facing_up:
  • Swiftline :pencil:
  • How Swift Scripting was used to make iOS Cookies :page_facing_up:
  • Writing an Xcode Plugin with Swift :page_facing_up:

Core Data

  • Core Competencies :electric_plug:
  • A Swift Into To Core Data :electric_plug:
  • Moving from ObjC to Swift with Core Data :electric_plug:
  • What, if any, ACID gurantees does Core Data Make? :electric_plug:
  • Core Data Libraries and NSKeyedArchiver :electric_plug:
  • Ditching Core Data for Something else :electric_plug:
  • JSQCoreDataKit :electric_plug:
  • Comparing Core Data Stacks :electric_plug:
  • Using Core Data with Swift :microphone:
  • Better Core Data Models with Swift :page_facing_up:
  • Core Data in 2015 and Magical Record in Swift :microphone:

Data Structures and Algorithms

  • An Array implemented in Swift by Mike Ash :pencil2:
  • A Trie :bar_chart:
  • A persistent tree using indirect enums :bar_chart:
  • Deques, Queues, and Lists in Swift with indirect :page_facing_up:
  • Linked Lists are really slow :bar_chart:
  • Linked Lists, Enums, Value Types :bar_chart:
  • Singly Linked List :pencil2:
  • Deques, Queues, and Lists in Swift :bar_chart: :link:
  • Contiguous Arrays in Swift :bar_chart:
  • NSArrays are implemente with Circular Buffers :bar_chart:
  • Open sourced CFArray :link:
  • Abstract Algebraic Structures in Swift 2 :pencil2:
  • Patricia/Radix trees for Swift :pencil2:
  • Genetic Programming in Swift :pencil2:
  • Finger Trees in Swift :pencil2:
  • Neural Networks in Swift :pencil2:
  • Swift AI :pencil2:
  • Lazy infinite streams :pencil2:
  • Naive Bayes Classifier :pencil2:
  • Swix Swift Matrix Math Library :pencil2:
  • Red Black Tree :pencil:
  • Tensor Methods in Swift :pencil2:
  • Sort Utils :pencil2:
  • Disjoint Sets :pencil2:
  • Metaprogrammable :pencil2:
  • Binary Tree :pencil2:

Design Patterns

  • Swift Design Patterns :floppy_disk:
  • Template Method Pattern in Swift :bar_chart:
  • Design Patterns Library in Swift :bar_chart:
  • Creating a Cocoa Bindings Observable Pattern in Swift :bar_chart:
  • Observer Pattern in Swift :bar_chart:
  • The Sin of Singletons :bar_chart:
  • The Null Object Pattern :bar_chart:
  • Segues > Delegation :bar_chart:
  • Functions as Factories :bar_chart:
  • Conform to Objective C Protocols in Swift :bar_chart:
  • Optional Protocol Methods :bar_chart:
  • The Builder Pattern and Fluent Interface :bar_chart:
  • A Better NSNotificationCenter Observer Pattern :bar_chart:
  • Key Value Coding in Swift :bar_chart:
  • Exploring KVO Alternatives in Swift :page_facing_up:

Development

  • Result Driven Development :floppy_disk:
  • Library Oriented Programming :microphone:
  • * Oriented Programming :microphone:
  • Hole Driven Development :page_facing_up:
  • Entering a New Codebase :floppy_disk:

Enums and Pattern Matching

  • Enums
    • Enums in Swift :link:
    • Advanced and Practical Enum Usage in Swift :page_facing_up:
    • Enumerating Tuple Values in Swift :page_facing_up:
    • Simplfied Login with Swift Enums :page_facing_up:
    • Testing of Enums made easy :page_facing_up:
    • How to compare Enums with Equatable :page_facing_up:
    • Raw representable enumeration :page_facing_up:
    • Enums with Associated Data vs Structs :page_facing_up:
    • The Sum Types are here :page_facing_up:
    • Algebraic Data Types in Swift :page_facing_up:
  • Pattern Matching
    • Swift's pattern-matching switch statement :page_facing_up:
    • Custom pattern matching in Swift :page_facing_up:
    • Advanced Swift Pattern Matching in Detail :page_facing_up:
    • Control Flow & Pattern Matching :page_facing_up:
    • Ranges and Intervals in Swift :page_facing_up:
    • More Pattern Matching Examples :page_facing_up:
    • What is a variadic parameter? :page_facing_up:
    • Pattern Matching in Swift :page_facing_up:
    • Swift Pattern Matching in Detail :page_facing_up:
    • Pattern Matching with an if case :page_facing_up:
    • Pattern Matching with Recursive Values in Swift :page_facing_up:

Error Handling

  • Easy Error Handing :page_facing_up:
  • Swift Failiable Initializers :page_facing_up:
  • Swift 2.0: Why Guard is Better than If :page_facing_up:
  • Swift 2 Error Handling :page_facing_up:
  • Swift 2 Error Handling and Pattern Matching :page_facing_up:
  • Guard and Defer :page_facing_up:
  • Unmanaged Type :page_facing_up:
  • try/catch with asynchronous closures :page_facing_up:
  • Using the assert() keyword :page_facing_up:
  • Result: Swift type modelling the success/failure of arbitrary operations :pencil2:
  • Error Styling in Swift :pencil:
  • Async Error Handling in Swift :floppy_disk:

Extensions

  • Useful Swift Extensions :pencil2:
  • EZSwiftExtensions :pencil2:
  • Public Extension :notebook:

Functional Programming in Swift

  • Deriving higher order functions in Swift :page_facing_up:
  • :raised_hands: Swiftz Functional Programming Library :pencil2:
  • Swiftx Functional Data Types :pencil2:
  • Functional View Controllers :page_facing_up:
  • Covariance and Contravariance in Swift 2.1 :page_facing_up:
  • Monads & C# Tasks in Swift :page_facing_up:
  • Introduction to Function Currying in Swift :page_facing_up:
  • Practical Use of Curried Functions in Swift :page_facing_up:
  • Composing functions in Swift :page_facing_up:
  • Swift is not functional :page_facing_up:
  • Functional Paradigms in Swift :page_facing_up:
  • Functional Programming in the Swift Language :page_facing_up:
  • Map and FlatMap demystified :page_facing_up:
  • Using Local Closures with Swift :page_facing_up:
  • Function Params are Tuples in Swift :page_facing_up:
  • Lenses in Swift :page_facing_up:
  • Prelude Library :page_facing_up:
  • Functional Programming in a Playground :microphone:
  • Functional Programming as a Functionalist :microphone:
  • Object Oriented Functional Programming :microphone:
  • :raised_hands: Functional Programming in Swift :microphone:
  • NatashaTheRobot Explains Functional Programming :floppy_disk:
  • Make Swift More Functional :floppy_disk:
  • FP in Swift :floppy_disk:
  • Thinking Functionally Using Swift :floppy_disk:
  • Practical Declarative :floppy_disk: and Functional :floppy_disk: Swift
  • Functional Notification Pattern :page_facing_up:
  • The monad among us :floppy_disk:
  • :raised_hands: Functors, Applicatives, and Monads in Swift :page_facing_up:
  • Futures and Latency as an effect in Swift :page_facing_up:
  • Continuation Passing Style in Swift :page_facing_up:
  • An intro to Continuation Passing Style in Swift :page_facing_up:
  • Proof in Functions :page_facing_up:
  • Functional Thinking :floppy_disk:
  • Chris Eidhof Functional Swift Talk :microphone:
  • Transducers and Reducers in Swift 2 :pencil2:
  • Lenses, Prisms, Isos in Swift 2 pencil2
  • Better Recursion with Swift :microphone:
  • Folds in Swift :page_facing_up: :page_facing_up:
  • Swift Adventures in Monad Land :pencil:
  • Functor and Monad in Swift :page_facing_up:
  • Llama Calculus :floppy_disk:
  • FingerTrees :page_facing_up:
  • FizzBuzz with infinite streams :page_facing_up:
  • 6 Killer Functional Swift Features :page_facing_up:
  • Thunks in Swift :page_facing_up:
  • 7 Habits for more functional Swift :floppy_disk:
  • Y Combinators in Swift :pencil2:
  • Arrows in Swift :pencil2:
  • Understanding Reduce in Swift :page_facing_up:
  • Monadic Functions in Swift :pencil2:
  • Lazy Streams in Swift :pencil2:
  • Funky Functional Programming Tools and Experiements :pencil2:
  • Functional Memoization in Swift :page_facing_up:
  • Reader Monad in Swift :pencil2:
  • Writer Monad in Swift :pencil2:
  • Back to the Futures with Swift :floppy_disk:

Functional Reactive Programming in Swift

  • MVVM + FRP :page_facing_up:
  • Introduction :page_facing_up:
  • Reacting to Events :page_facing_up:
  • ReactiveCocoa 4.0 Info :link:
  • The Difference between RxSwift and ReactiveCocoa :page_facing_up:, :page_facing_up:
  • FRP in Swift 2.0 :microphone:
  • Functional Reactive Programming in an Imperative World :microphone:
  • :raised_hands: RAC 3 with Ash Furrow :floppy_disk:, and some other nice :floppy_disk:
  • FRP with RAC in Swift :floppy_disk:
  • Learning RxSwift :link:
  • Upgrading to RxSwift :page_facing_up:
  • FRP is a forbidden term :page_facing_up:
  • What is FRP? On StackOverflow :page_facing_up:
  • From RAC to RxSwift: The (Mini) Survival Guide :link:

GCD and NSOperation

  • Basics :page_facing_up:
  • Methods of concurrency — GCD, agents, tasks and invocations :page_facing_up:
  • Code at the end of the queue :link:
  • Delaying Code Execution through Closures :page_facing_up:

Generics

  • Generic Arrays in Swift 2.0 :page_facing_up:
  • The shortcomings of generic protocols :page_facing_up:
  • Generics in Swift, Part 1 :page_facing_up:
  • Generics in Swift, Part 2 :page_facing_up:

Initializers

  • Swift Initializers :page_facing_up:
  • Immutable Swift :page_facing_up:
  • What's the point of Laziness? :page_facing_up:
  • IBOutlet Style in Swift :page_facing_up:

Interpolability with C and Objective-C

  • Swift and C :microphone:
  • Swift & the ObjC Runtime :page_facing_up:
  • How is Swift Faster than Objective-C? :page_facing_up:
  • Wrapping a C library in a Swift Framework :page_facing_up:
  • How are NSDictionaries implemented in-memory? :page_facing_up:
  • Exposing NSMutableArray :page_facing_up:
  • Source-Code for the Objective-C Runtime :link:

Language Comparisons

  • Comparing Swift and Javascript :page_facing_up:
  • C++ Advice to Swift Devs :page_facing_up:
  • Swift Protocols vs Java 8 Interfaces :page_facing_up:
  • Learning Swift from Haskell :floppy_disk: and corresponding :microphone:
  • Swift vs Golang :floppy_disk:

LLVM Compiler

  • Swift Intermediate Language :floppy_disk:
  • Using the LLVM API With Swift :page_facing_up:
  • LLVM and Swift :microphone:
  • Swift Performance :floppy_disk:
  • Swift 2 Under the Hood :floppy_disk:

Objective C Transitioning to Swift

  • Method Swizzling in Swift :page_facing_up:
  • A Eulogy for Objective C :microphone:
  • The best of Obj-C to Swift :microphone:

Open Source Swift

  • Booleans :page_facing_up:
  • Swift Open Source Overview :page_facing_up:
  • Open Source Swift 3.0 Roadmap :page_facing_up:
  • Building for Open Source :floppy_disk:

Operator Overloading

  • Operator Overloading and JSON Parsing in Swift :page_facing_up:

Opinions about Swift

  • Wishlist for Swift 3.0 :page_facing_up:
  • What are the Worst parts of Swift? :page_facing_up:
  • The Death of Cocoa :page_facing_up:

Optionals and Types

  • Typelift Community Repo :pencil:
  • Swift Optionals Made Simple :page_facing_up:
  • Swift's Type System :page_facing_up:
  • Every Kind of Optional :page_facing_up:
  • Understanding Downcasting Operators in Swift :page_facing_up:
  • Swift Manual Retain/Release :page_facing_up:
  • How I handle Optionals in Swift :page_facing_up:
  • How to unwrap an optional in 9 different ways :page_facing_up:
  • Optional Protocol Methodsin Pure Swift :page_facing_up:
  • Make a DSL in Swift :page_facing_up:
  • Type-Erased Wrappers in Swift :microphone:
  • Swift MetaTypes :page_facing_up:
  • Typing the Knot in Swift :link:

Other

  • @autoclosure, @inline, @noescape, and @noreturn Keywords :page_facing_up:
  • How to use @noescape :page_facing_up:
  • How to use @autoclosure :page_facing_up:
  • Magic Methods in Swift :page_facing_up:
  • weak vs unowned :page_facing_up:
  • Swift weak references :page_facing_up:

Problem Solving

  • Creating and Building a DSL in Swift :floppy_disk:
  • :raised_hands: FizzBuzz on steroids with Swift :floppy_disk:
  • Learning Swift the Euler Way :microphone:

Production Swift

  • How Carthage works :floppy_disk:
  • Bottom Up Programming in Swift :microphone:
  • Make a Cocoapods Framework :microphone:
  • Lessons from Production Swift :floppy_disk:

Protocol Oriented Programming in Swift 2

  • Protocols in Swift :page_facing_up:
  • POP is OOP Thesis :page_facing_up:
  • Standard Template Protocols :link:
  • Protocol Oriented MVVM :page_facing_up:, :floppy_disk:
  • Functional thinking via Protocol Extensions :page_facing_up:
  • Protocol Extensions vs Type Extensions :page_facing_up:
  • Swift Diagrams Playground for P.O.P. :page_facing_up:
  • Gist covers whatever went on in the official presentation :page_facing_up:
  • What are the advantages? :page_facing_up:
  • Another look into the concept of P.O.P. :page_facing_up:
  • If you're subclassing, you're doing it wrong. POP and VOP explained :page_facing_up:
  • Every Swift Value Type Should be Equatable :page_facing_up:
  • Protocol Oriented Programming through UIKit :page_facing_up:
  • Protocols in Swift :page_facing_up:
  • Ray Wenderlich intro to P.O.P. :page_facing_up:
  • Protocol Extensions and the death of the Pipe forward operator :page_facing_up:
  • How Protocol Oriented Programming could still improve :page_facing_up:
  • THe Swift Protocol Proposal :page_facing_up:
  • Swift Default Protocol Implementations :page_facing_up:
  • :raised_hands: Mixins and Traits in Swift 2.0 :page_facing_up:
  • Minimal Swift 2.1 Protocol Coformance :page_facing_up:
  • Favor Mixins over inheritance :page_facing_up:
  • Use Protocol Composition :page_facing_up:
  • The 55 Standard Lib Protocols Broken Down :page_facing_up:
  • Can Swift have Dependent Types? :page_facing_up:
  • More Misunderstanding of Dependent Types :page_facing_up:
  • 55 Standard Library Swift Protocols :floppy_disk:
  • Current Recommmended Protocol Usage :page_facing_up:
  • POP in Swift vs ObjC and C++ :page_facing_up:
  • POP Utility Belt :pencil2:

Realm

  • Super simple Realm Intro :electric_plug:
  • Why Realm over Core Data? :electric_plug:
  • Official Realm Introduction :electric_plug:
  • Realm Tutorial :electric_plug:
  • Why Realm is great and why we're not going to use it :electric_plug:
  • Realm Best Practices :electric_plug:
  • Realm Repo :electric_plug:
  • What Realm does that Core Data doesn't :electric_plug:
  • Reddit Thread :electric_plug:
  • A look into Realm's Core DB Engine :microphone:
  • Working with Realm :electric_plug:

Security

  • Encryptor / Decryptor Data Format :pencil2:
  • CommonCrypto in Swift :microphone:
  • :fire: Awesome iOS Security :link:

Swift Language

  • Best of Swift 2 :page_facing_up:
  • New Features in Swift 2 :page_facing_up:
  • Switching your brain to Swift :page_facing_up:
  • Short Circuit Evaluation :page_facing_up:
  • How Swift makes your life better :page_facing_up:
  • Emerging best practices in Swift :microphone:
  • Swift Thinking :microphone:
  • Hidden Gems in Swift :microphone:
  • Making Friends with Value Types :microphone:
  • Catching up with Swift :floppy_disk:
  • Idiomatic Swift :floppy_disk:

Text Manipulation

  • RegularExpressions in Swift :page_facing_up:
  • Creating a Lexer in Swift :page_facing_up:
  • Creating an Abstract Syntax Tree Parser in Swift :page_facing_up:
  • Part 2 of the AST :page_facing_up:
  • String to Number Parser :pencil2:

Type Reflection and Casting

  • Simple Reflection in Swift :page_facing_up:
  • Understanding Reflection in Swift and how to use it :page_facing_up:
  • Typecasting and the Swift Runtime :page_facing_up:
  • Advanced Type Safety in Swift :floppy_disk:, and corresponding :microphone:

Web Services and Networking

  • SwiftHTTPStatusCodes :pencil:
  • Calling APIs and Parsing JSON with Swift :page_facing_up:
  • Parsing Embedded JSON and Arrays in Swift :page_facing_up:
  • Real World JSON Parsing :page_facing_up:
  • Efficient JSON Parsing with Functional Concepts :page_facing_up:
  • Calling a REST Api in Swift :page_facing_up:
  • How to Make REST API Calls and Parse JSON with Swift :page_facing_up:
  • HTTP in Swift :page_facing_up:
  • Reachability Library :page_facing_up:
  • JSON in Swift :electric_plug:
  • Functional JSON Parsing :electric_plug:
  • NSURLSession Basics :electric_plug:
  • Background Downloads :electric_plug:
  • An AlamoFire Router :electric_plug:
  • Moya: Network Abstraction Layer written in Swift :pencil2:

Web Services - Other

  • CloudKit Introduction :electric_plug:
  • Create a Data Access Layer with SQLite.swift and Swift 2 :electric_plug:
  • Using YapDatabase :electric_plug:
  • { JSON, Swift, and Type Safety } :floppy_disk:
  • MagicalRecord loves Swift :microphone:
  • Networking with Monads :video_camera:
  • Swift-MongoDB :pencil:

Interview Situations

  • Ray Wenderlich :clipboard:
  • Toptal :clipboard:
  • LeetCode :clipboard:
  • Coding Questions :clipboard:
  • iOS Dev interview questions :clipboard:
  • Macroscopic iOS interview questions :clipboard:
  • :fire: Awesome Swift Interview Questions :clipboard:
  • :fire: Awesome iOS Interview Questions :clipboard:
  • From a FB Group :clipboard:

项目主页:http://www.open-open.com/lib/view/home/1450273103860