/100DaysOfSwift

Repository to store the projects made during the 100 Days of Swift challenge by Paul Hudson of Hacking with Swift.

Primary LanguageSwift

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.

  • 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