Skip to content

emin-grbo/100DaysOfSwiftUI

Repository files navigation

Header Header

100DaysOfSwiftUI

100 Days Of SwiftUI Challenge by Paul Hudson -> https://www.hackingwithswift.com/100/swiftui

  • Day 1
  • Variables.
  • Strings and integers.
  • Multi-line strings.
  • Doubles and booleans.
  • String interpolation.
  • Constants.
  • Type annotations.
  • Simple types: Summary.

  • Day 2
  • 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
  • Arithmetic Operators.
  • Operator overloading.
  • Compound assignment operators.
  • Comparison operators.
  • Conditions.
  • Combining conditions.
  • The ternary operator.
  • Switch statements.
  • Range operators.
  • Operators and conditions summary.

  • Day 4
  • For loops.
  • While loops.
  • Repeat loops.
  • Exiting loops.
  • Exiting multiple.
  • Skipping items.
  • Infinite loops.
  • Looping summary.

  • Day 5
  • Writing functions.
  • Accepting parameters.
  • Returning values.
  • Parameter labels.
  • Omitting parameter labels.
  • Default parameters.
  • Variadic functions.
  • Writing throwing functions.
  • Running throwing functions.
  • inout parameters.
  • Functions summary.

  • Day 6
  • Creating basic closures
  • Accepting parameters in a closure
  • Returning values from a closure
  • Closures as parameters
  • Trailing closure syntax

  • Day 7
  • Using closures as parameters when they accept parameters
  • Using closures as parameters when they return values
  • Shorthand parameter names
  • Closures with multiple parameters
  • Returning closures from functions
  • Capturing values
  • Closures summary

  • Day 8
  • Creating your own structs
  • Computed properties
  • Property observers
  • Methods
  • Mutating methods
  • Properties and methods of strings
  • Properties and methods of arrays

  • Day 9
  • Initializers
  • Referring to the current instance
  • Lazy properties
  • Static properties and methods
  • Access control
  • Structs summary

  • Day 10
  • Creating your own classes
  • Class inheritance
  • Overriding methods
  • Final classes
  • Copying objects
  • Deinitializers
  • Mutability
  • Classes summary

  • Day 11
  • Protocols
  • Protocol inheritance
  • Extensions
  • Protocol extensions
  • Protocol-oriented programming
  • Protocols and extensions summary

  • Day 12
  • Handling missing data
  • Unwrapping optionals
  • Unwrapping with guard
  • Force unwrapping
  • Implicitly unwrapped optionals
  • Nil coalescing
  • Optional chaining
  • Optional try
  • Failable initializers
  • Typecasting
  • Optionals summary

  • Day 13
  • Variables and constants
  • Types of Data
  • Operators
  • String interpolation
  • Arrays
  • Dictionaries
  • Conditional statements
  • Loops
  • Switch case

REVIEW DAY

  • Day 14
  • Functions
  • Optionals
  • Optional chaining
  • Enumerations
  • Structs
  • Classes

  • Day 15
  • Properties
  • Static properties and methods
  • Access control
  • Polymorphism and typecasting
  • Closures

  • Day 16
  • WeSplit: Introduction
  • Understanding the basic structure of a SwiftUI app
  • Creating a form
  • Adding a navigation bar
  • Modifying program state
  • Binding state to user interface controls
  • Creating views in a loop

  • Day 17
  • Reading text from the user with TextField
  • Creating pickers in a form
  • Adding a segmented control for tip percentages
  • Calculating the total per person

  • Day 18
  • WeSplit - *Challenges

  • Day 19
  • Converter app **MILESTONE

  • Day 20
  • Guess the Flag

  • Day 21
  • Guess the Flag

  • Day 22
  • Guess the Flag - *Challenges

  • Day 23
  • Views and modifiers: Introduction
  • Why does SwiftUI use structs for views?
  • What is behind the main SwiftUI view?
  • Why modifier order matters
  • Why does SwiftUI use “some View” for its view type?
  • Conditional modifiers
  • Environment modifiers
  • Views as properties
  • View composition
  • Custom modifiers
  • Custom containers

  • Day 24
  • Views and Modifiers

  • Day 25
  • Rock, Paper, or Scissors **MILESTONE

  • Day 26
  • BetterRest: coreML project

  • Day 27
  • BetterRest: coreML project

  • Day 28
  • BetterRest: coreML project - *Challenges

  • Day 29
  • Word Scramble

  • Day 30
  • Word Scramble

  • Day 31
  • Word Scramble - *Challenges

  • Day 32
  • Animations

  • Day 33
  • Animations

  • Day 34
  • Animations - *Challenges

  • Day 35
  • Consolidation

  • Day 36
  • iExpense

  • Day 37
  • iExpense

  • Day 38
  • iExpense - *Challenges

  • Day 39
  • Moonshot - Introduction

  • Day 40
  • Moonshot

  • Day 41
  • Moonshot

  • Day 42
  • Moonshot - *Challenges

  • Day 43
  • Drawing day 1

  • Day 44
  • Drawing day 2

  • Day 45
  • Drawing day 3

  • Day 46
  • Drawing day - *Challenges

  • Day 47
  • iHabit **MILESTONE

  • Day 48
  • Video - Expanding your horizons

  • Day 49
  • CupcakeCorner

  • Day 50
  • CupcakeCorner

  • Day 51
  • CupcakeCorner

  • Day 52
  • CupcakeCorner

  • Day 53
  • CupcakeCorner - *Challenges

  • Day 54
  • BookWorm

  • Day 55
  • BookWorm

  • Day 56
  • BookWorm - *Challenges

  • Day 57
  • CoreData

  • Day 58
  • CoreData

  • Day 59
  • CoreData - *Challenges

  • Day 60
  • FriendFace **MILESTONE

  • Day 61
  • CoreData - *NOT DONE

  • Day 62
  • InstaFilter

  • Day 63
  • InstaFilter

  • Day 64
  • InstaFilter

  • Day 65
  • InstaFilter

  • Day 66
  • InstaFilter

  • Day 67
  • InstaFilter - *Challenges

  • Day 68
  • BucketList

  • Day 69
  • BucketList

  • Day 70
  • BucketList

  • Day 71
  • BucketList

  • Day 72
  • BucketList

  • Day 73
  • BucketList - *Challenges

  • Day 74
  • Accessibility

  • Day 75
  • Accessibility

  • Day 76
  • Accessibility

  • Day 77
  • NameFace **MILESTONE

  • Day 78
  • NameFace **MILESTONE+MAP

  • Day 79
  • Hot Prospects

  • Day 80
  • Hot Prospects

  • Day 81
  • Hot Prospects

  • Day 82
  • Hot Prospects

  • Day 83
  • Hot Prospects

  • Day 84
  • Hot Prospects

  • Day 85
  • Hot Prospects - *Challenges

  • Day 86
  • Flashzilla

  • Day 87
  • Flashzilla

  • Day 88
  • Flashzilla

  • Day 89
  • Flashzilla

  • Day 90
  • Flashzilla

  • Day 91
  • Flashzilla - *Challenges

  • Day 92
  • Layout and geometry

  • Day 93
  • Layout and geometry

  • Day 94
  • Layout and geometry - *Challenges

  • Day 95
  • DICE **MILESTONE

  • Day 96
  • SnowSeeker

  • Day 97
  • SnowSeeker

  • Day 98
  • SnowSeeker

  • Day 99
  • SnowSeeker - *Challenges

  • Day 100 FINAL EXAM - Distinction!

About

100 Days Of SwiftUI Challenge by Paul Hudson - https://www.hackingwithswift.com/100/swiftui

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages