A repo of resources for learning the Swift programming language.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Learning Swift (by Discussion)

What is Swift?

In early June, 2014 Apple dropped a bomb on developers worldwide, unveiling Swift, a new programming language and set of tools for creating dynamic, fast iOS mobile and OS X desktop applications. Although only recently made public, Swift is among the hottest topics in software development. Swift has rapidly become the preferred language for development of iOS and OS X applications.

What will you get?

Through heavy use of examples, and coding via the Read Eval Print Loop (REPL), Playgrounds, and test scaffolding, we’ll spend a day getting to know the Swift programming language. We'll focus on fostering a discussion of Swift via hands-on experimentation.

How is this different?

This course is a Swift basics primer, taught via examples, participation, and discussion. Other classes can teach you how to build apps, and involve a giant (and quite wonderful) world of tools, languages, techniques, and libraries. We’re not going to do that. This course focuses only on the Swift programming language.

Who is this for?

Are you familiar with at least one programming language? Do you enjoy programming or wish you did? Are you interested in or do you have experience developing iOS or OS X applications? If so, this class is for you.

What should I do before this course?

Join in the discussion of what topics should be included in this course, on the course wiki.

Would you like to contribute?

Pull requests and other forms of collaboration welcome.

Suggested Topics

  • currying
    • (PLAYGROUNDS/LSB_C005_Currying.playground)
  • pattern matching
    • (PLAYGROUNDS/LSB_013_Enumerations.playground)
  • initializers
    • (PLAYGROUNDS/LSB_011_Classes.playground)
  • struct and class differences
    • (PLAYGROUNDS/LSB_B003_ClassesAndStructs.playground)
  • immutability
    • (PLAYGROUNDS/LSB_002_VariablesAndConstants.playground)
  • ? ! and optionals
    • (PLAYGROUNDS/LSB_009_Optionals.playground)
  • nullability safety rules
    • (PLAYGROUNDS/LSB_009_Optionals.playground)
  • trailing closures
    • (PLAYGROUNDS/LSB_008_Closures.playground)
  • internal and external parameter names, first parameter exception to the rule
    • (PLAYGROUNDS/LSB_011_Classes.playground)
  • destructuring
    • (PLAYGROUNDS/LSB_011_Classes.playground)
  • generics
    • (PLAYGROUNDS/LSB_017_Generics.playground)
  • how to read function signatures, higher order functions
    • (PLAYGROUNDS/LSB_007_Functions.playground)
  • list comprehensions
    • (Something like this... PLAYGROUNDS/LSB_B019_ApplicativeFunctorsArrays.playground)