INCLUDES FREE UPDATES FOR SWIFT 6 AND BEYOND! Click here for full details.
If you're ready to learn Swift, there's no better place to start than Swift for Complete Beginners! It includes a 230-page book and 70 detailed videos walking you through all the core concepts of the Swift programming language, including:
- Constants and variables
- Data types and type annotations
- Conditions and loops
- Functions and closures
- Structs and classes
- Protocols and protocol extensions
Each concept is explained first with slides, and then with hands-on code so you can see it running for yourself.
What's in the course?
- Why Swift?
- About this course
- How to follow along
- How to create variables and constants
- How to create strings
- How to store whole numbers
- How to store decimal numbers
- How to store truth with Booleans
- How to join strings together
- Summary: Simple data
- Checkpoint 1
- How to store ordered data in arrays
- How to store and find data in dictionaries
- How to use sets for fast data lookup
- How to create and use enums
- How to use type annotations
- Summary: Complex data
- Checkpoint 2
Conditions and loops
- How to check a condition is true or false
- How to check multiple conditions
- How to use switch statements to check multiple conditions
- How to use the ternary conditional operator for quick tests
- How to use a for loop to repeat work
- How to use a while loop to repeat work
- How to skip loop items with break and continue
- Summary: Conditions and loops
- Checkpoint 3
- How to reuse code with functions
- How to return values from functions
- How to return multiple values from functions
- How to customize parameter labels
- How to provide default values for parameters
- How to handle errors in functions
- Summary: Functions
- Checkpoint 4
- How to create and use closures
- How to use trailing closures and shorthand syntax
- How to accept functions as parameters
- Summary: Closures
- Checkpoint 5
- How to create your own structs
- How to compute property values dynamically
- How to take action when a property changes
- How to create custom initializers
- How to limit access to internal data using access control
- Static properties and methods
- Summary: Structs
- Checkpoint 6
- How to create your own classes
- How to make one class inherit from another
- How to add initializers for classes
- How to copy classes
- How to create a deinitializer for a class
- How to work with variables inside classes
- Summary: Classes
- Checkpoint 7
Protocols and extensions
- How to create and use protocols
- How to use opaque return types
- How to create and use extensions
- How to create and use protocol extensions
- How to get the most from protocol extensions
- Summary: Protocols and extensions
- Checkpoint 8
- How to handle missing data with optionals
- How to unwrap optionals with guard
- How to unwrap optionals with nil coalescing
- How to handle multiple optionals using optional chaining
- How to handle function failure with optionals
- Summary: Optionals
- Checkpoint 9
- Where now?
Download a free sample!
Prefer to read for free?
This is the download edition of SwiftUI By Example that gives you the PDF and ePub for offline reading, but if you'd rather read for free online you can find the book online here: Swift free complete beginners.
The Hacking with Swift guarantee
We want everyone to be happy with all the Hacking with Swift courses they buy, both now and in the future, which is why all our books come with free lifetime Swift updates and free bonus content with our Frequent Flyer Club, and we also encourage folks to join our Slack community to help solve problems.
However, if you aren't happy with a course you bought from us, we offer a 30-day No Questions Asked refund policy. This applies to all books and video courses purchased through Gumroad, which is our primary distributor. So, if you aren't happy with your purchase, if you changed your mind, or if you just bought the wrong thing by accident, we can refund your purchase up to 30 days after it was made.
Any other questions?
You can email me at email@example.com or tweet me @twostraws, and I'll do my best to help.