📱
100DaysOfSwift Repository to store the projects made during the 100 Days of Swift challenge by Paul Hudson of Hacking with Swift.
Days 1-12: Introduction to 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.
Day 1 - variables, simple data types, and string interpolation
✨
- Variables
- Strings and integers
- Multi-line strings
- Doubles and Booleans
- String interpolation
- Constants
- Type annotations
- Simple types: Summary
Day 2 – arrays, dictionaries, sets, and enums
✨
- 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
Day 3 – operators and conditions
✨
- Arithmetic Operators
- Operator overloading
- Compund assignment operators
- Comparison operators
- Conditions
- Combining conditions
- The ternary operator
- Switch statements
- Range operators
- Operators and conditions: Summary
Day 4 – loops, loops, and more loops
✨
- For loops
- While loops
- Repeat loops
- Exiting loops
- Exiting multiple loops
- Skipping items
- Infinite loops
- Looping: Summary
Day 5 – functions, parameters, and errors
✨
- 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
Day 6 – closures part one
✨
- Creating basic closures
- Accepting parameters in a closure
- Returning values from a closure
- Closures as parameters
- Trailing closure syntax
Day 7 – closures part two
✨
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
Day 8 – structs, properties, and methods
✨
- Creating your own structs
- Computed properties
- Property observers
- Methods
- Mutating methods
- Properties and mathods of strings
- Properties and methods of arrays
Day 9 – access control, static properties, and laziness
✨
- Initializers
- Referring to the current instance
- Lazy properties
- Static properties and methods
- Access controle
- Structs: Summary
Day 10 – classes and inheritance
✨
- Creating your own classes
- Class inheritance
- Overriding methods
- Final classes
- Copying objects
- Deinitializers
- Mutability
- Classes: Summary
Day 11 – protocols, extensions, and protocol extensions
✨
- Protocols
- Protocol inheritance
- Extensions
- Protocol extensions
- Protocol-oriented programming
- Protocol and extensions: Summary
Day 12 – optionals, unwrapping, and typecasting
✨
- Handling missing data
- Unwrapping optionals
- Unwrapping with guard
- Force unwrapping
- Implicity unwrapped optionals
- Nil coalescing
- Optional chaining
- Optional try
- Faiable initializers
- Typecasting
- Optionals: Summary