Repository to store the projects made during the 100 Days of Swift challenge by Paul Hudson of Hacking with Swift.
The first 12 days provide a gentle warm up for your Swift learning. You’ll watch about a selection of one-minute videos every day, and complete short quizzes about each of those videos.
- Variables
- Strings and integers
- Multi-line strings
- Doubles and Booleans
- String interpolation
- Constants
- Type annotations
- Simple types: Summary
- Arrays
- Sets
- Tuples
- Arrays vs Sets vs Tuples
- Dictionaries
- Dictionary default values
- Creating empty collections
- Enumerations
- Enum associated values
- Enum raw values
- Complex types: Summary
- Arithmetic Operators
- Operator overloading
- Compund assignment operators
- Comparison operators
- Conditions
- Combining conditions
- The ternary operator
- Switch statements
- Range operators
- Operators and conditions: Summary
- For loops
- While loops
- Repeat loops
- Exiting loops
- Exiting multiple loops
- Skipping items
- Infinite loops
- Looping: Summary
- Writing functions
- Accepting parameters
- Returning values
- Parameter labels
- Omitting parameter labels
- Default parameters
- Varidic functions
- Writing throwing functions
- Running throwing functions
- inout parameters
- Functions: Summary
- Creating basic closures
- Accepting parameters in a closure
- Returning values from a closure
- Closures as parameters
- Trailing closure syntax
The least you need to know
- Using closures as parameters when they accept parameters
- Using closures as parameters when they return values
- Shorthand parameter names
Advanced closures
- Closures with multiple parameters
- Returning closures from functions
- Capturing values
- Closures: Summary
- Creating your own structs
- Computed properties
- Property observers
- Methods
- Mutating methods
- Properties and mathods of strings
- Properties and methods of arrays
- Initializers
- Referring to the current instance
- Lazy properties
- Static properties and methods
- Access controle
- Structs: Summary
- Creating your own classes
- Class inheritance
- Overriding methods
- Final classes
- Copying objects
- Deinitializers
- Mutability
- Classes: Summary
- Protocols
- Protocol inheritance
- Extensions
- Protocol extensions
- Protocol-oriented programming
- Protocol and extensions: Summary
- Handling missing data
- Unwrapping optionals
- Unwrapping with guard
- Force unwrapping
- Implicity unwrapped optionals
- Nil coalescing
- Optional chaining
- Optional try
- Faiable initializers
- Typecasting
- Optionals: Summary
- Variables and constants
- Types of Data
- Operators
- String interpolation
- Arrays
- Dictionaries
- Conditional statements
- Loops
- Switch case
- Functions
- Optionals
- Optional chaining
- Enumerations
- Structs
- Classes
- Properties
- Static properties and methods
- Access control
- Polymorphism and typecasting
- Closures