Goals


100 Days of SwiftUI

This is the Paul Hudson online course “100 Days of Swift UI” that starts with 15 days of Swift basics then moves into SwiftUI through a series of projects

  • Day 1 – variables, constants, strings, and numbers – 5/7
  • Day 2 – Booleans, string interpolation, and checkpoint 1 – 5/7
  • Day 3 – Arrays, dictionaries, sets, and enums – 5/7
  • Day 4 – type annotations and checkpoint 2 – 5/7
  • Day 5 – if, switch, and the ternary operator – 6/7
  • Day 6 – loops, summary, and checkpoint 3 – 7/7
  • Day 7 – functions, parameters, and return values – 8/7
  • Day 8 – default values, throwing functions, and checkpoint 4 – 9/7/22
  • Day 9 – closures, passing functions into functions, and checkpoint 5 – 12/7/22
  • Day 10 – structs, computed properties, and property observers – 16/7/22
  • Day 11 – access control, static properties/methods, and checkpoint 6 – 17/7/22
  • Day 12 – classes, inheritance, and checkpoint 7 – 8/8/22
  • Day 13 – protocols, extensions, and checkpoint 8 – 13/8/22
  • Day 14 – optionals, nil coalescing, and checkpoint 9 – 13/8/22
  • Day 15 – Swift review – 20/8/22
  • Day 16 – Project 1 (Form, NavigationView, @State), part one -21/8/22
  • Day 17 – Project 1, part two – 21/8/22
  • Day 18 – Project 1, part three – 21/8/22
  • Day 19 – Challenge day – 22/8/22
  • Day 20 – Project 2 (VStack, Image, LinearGradient), part one – 22/8/22
  • Day 21 – Project 2, part two – 23/8/22
  • Day 22 – Project 2, part three – 23/8/22
  • Day 23 – Project 3 (custom view modifiers and custom containers), part one
  • Day 24 – Project 3, part two – 2/9/22
  • Day 25 – Milestone: Projects 1-3
  • Day 26 – Project 4 (Stepper, DatePicker, DateFormatter), part one – 13/9/22
  • Day 27 – Project 4, part two – 13/9/22
  • Day 28 – Project 4, part three – 13/9/22
  • Day 29 – Project 5 (List, Bundle, UITextChecker), part one – 14/9/22
  • Day 30 – Project 5, part two – 14/9/22 source
  • Day 31 – Project 5, part three – 17/9/22 source
  • Day 32 – Project 6 (implicit, explicit, & binding animations), part one -18/9/22
  • Day 33 – Project 6, part two – 18/9/22
  • Day 34 – Project 6, part three – 18/9/22 source
  • Day 35 – Milestone: Projects 4-6 – 27/9/22 source
  • Day 36 – Project 7 (@StateObject, sheet(), onDelete()), part one – 28/9/22
  • Day 37 – Project 7, part two – 28/9/22
  • Day 38 – Project 7, part three – 29/9/22
  • Day 39 – Project 8 (GeometryReader, ScrollView), part one – 8/10/22
  • Day 40 – Project 8, part two – 8/10/22
  • Day 41 – Project 8, part three – 9/10/22
  • Day 42 – Project 8, part four – 9.10/22
  • Day 43 – Project 9 (drawing and custom paths), part one – 14/10/22
  • Day 44 – Project 9, part two – 15/10/22
  • Day 45 – Project 9, part three – 15/10/22
  • Day 46 – Project 9, part four – 16/10/22
  • Day 47 – Milestone: Projects 7-9 24/10/22
  • Day 48 – Expanding your horizons – um, I might have skipped it
  • Day 49 – Project 10, part one (codable, URLSession) – 26/10/22
  • Day 50 – Project 10, part two – 27/10/22
  • Day 51 – Project 10, part three – 28/10/22
  • Day 52 – Project 10, part four – 29/10/22
  • Day 53 – Bookworm, part one (@Binding, type erasure, Core Data) – 30/10/22
  • Day 54 – Project 11, part two – 2/11/22
  • Day 55 – Project 11, part three – 4/11/22
  • Day 56 – Project 11, part four – 4/11/22
  • Day 57 – Project 12, part one (CoreData – \.self, NSManagedObject subclasses, conditional saving, constraints) – 5/11/21
  • Day 58 – Project 12, part two (filtering, mergepolicy, 1:many CoreData) – 6/11/22
  • Day 59 – Project 12, part three – 14/11/22
  • Day 60 – Milestone: Projects 10-12 – 18/11/22
  • Day 61 – Time for Core Data – 22/11/22
  • Day 62 – (property wrappers, onChange, confirmationDialog) – 28/11/22
  • Day 63Core Image, Wrapping UIViewController – 29/11/22
  • Day 64Using coordinators, saving images to photos – 3/12/22
  • Day 65 – Project 13, part four
  • Day 66 – Project 13, part five
  • Day 67 – Project 13, part six
  • Day 68 – Project 14, part one
  • Day 69 – Project 14, part two
  • Day 70 – Project 14, part three

Unwrap

Unwrap is the Paul Hudson app. It covers all the Swift basics in a read and drill style – perfect to fill up those little gaps of time in your day that might otherwise be spent flicking through social media.

  • Simple Types
  • Complex Types – 25/7/22
  • Operators and conditions – 28/7/22
  • Looping
  • Functions – 21/8/22
  • Closures
  • Structs
  • Classes
  • Protocols
  • Optionals

CS193p

Stanford’s CS193p course, Developing Applications for iOS, explains the fundamentals of how to build applications for iPhone and iPad using SwiftUI. Most recently offered in Spring quarter 2021, the lectures were given to Stanford students in an on-line format due to the novel coronavirus pandemic and are now available to all via Stanford’s YouTube channel.

This seems like an excellent course presented by Paul Hegarty

  • 1 – Getting Started with SwiftUI
  • 2 – Learning More about SwiftUI – 17/7
  • 3 – MVVM – 30/7
  • 4 – More MVVM enum Optionals – 30/7
    • Reading assignment 2 – more SPL
    • Programing assignment 2 – More Memorize
  • 5 – Properties Layout @ViewBuilder
  • 6 – Protocols Shapes
    • Reading assignment 3 – finish SPL, Apple Human Interface Guidlines
    • Programing assignment 3 – Solo card game
  • 7 – ViewModifier Animation
  • 8 – Animation Demo
    • Programing assignment 4 – Solo Set with animation
  • 9 – EmojiArt Drag/Drop
  • 10 – Gestures
    • Programing assignment 5 – Multi-touch Emoji art
  • 11 – Persistence Error Handling
  • 12 – Binding Sheet Navigation EditMode
    • Programing assignment 6 – Memorize themes
  • 13 – Publisher More Persistence
  • 14 – Document Architecture
  • 15 – UIKit Integration
  • 16 – Multiplatform (macOS)
  • 2020 Enroute Part 1 – Enroute Picker Codable REST API
  • 2020 Enroute Part 2 – Core Data

git/Github

  • Setup
  • Use from command line – 31/7/22
  • Use on iPad (Working Copy) – 19/7/22
  • Use on iPad (Working Copy) fluently
  • Use in XCode (commit/add) – 28/7/22
  • Use in XCode (push) – 28/9/22
  • Investigate gui’s
  • Pull request on open source project

Missing Semester

  • Course overview + the shell – 1/8/22
  • Shell Tools and Scripting – 2/8/22
  • Editors (Vim) – 4/8/22
  • Data Wrangling – 7/8/22
  • Command-line Environment – 14/8/22
  • Version Control (Git) – 31/7/22
  • Debugging and Profiling
  • Metaprogramming
  • Security and Cryptography
  • Potpourri
  • Q&A

Playgrounds Learn to Code

  • Learn to Code 1
    • Commands
    • Functions
    • For Loops
    • Conditional Code
    • Logical Operators
    • While Loops
    • Algorithms
  • Learn to Code 2
    • Variables 13/8/22
    • Types
    • Initialization
    • Parameters
    • World Building
    • Arrays
  • Get Started with Apps