Skip to content

SwiftUI is a powerful framework for building user-interactive apps for iOS, macOS, tvOS, and even watchOS. But you can’t build software without having a programming language, so behind SwiftUI lies Swift itself: a powerful, flexible, and modern programming language that you’ll use for all your SwiftUI apps. As Mark Twain once said, “the secret t…

Notifications You must be signed in to change notification settings

pedropbazzo/100DaysOfSwiftUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

SwiftUI is a powerful framework for building user-interactive apps for iOS, macOS, tvOS, and even watchOS. But you can’t build software without having a programming language, so behind SwiftUI lies Swift itself: a powerful, flexible, and modern programming language that you’ll use for all your SwiftUI apps. As Mark Twain once said, “the secret t…

Topics

Resources

Stars

Watchers

Forks

Languages