My solutions to the exercises in Apple's free App Development with Swift textbook.
- 1.2.0 Constants (Lab)
- 1.2.1 Constants (Exercise)
- 1.2.2 Step Goal (App Exercise)
- 1.2.3 Variables (Exercise)
- 1.2.4 Step Count (App Exercise)
- 1.2.5 Constant or Variable? (Exercise)
- 1.2.6 Fitness Tracker: Constant or Variable? (App Exercise)
- 1.2.7 Types and Type Safety (Exercise)
- 1.2.8 Tracking Different Types (App Exercise)
- 1.2.9 Type Inference and Required Values (Exercise)
- 1.2.10 Percent Completed (App Exercise)
- 1.3.0 Operators (Lab)
- 1.3.1 Basic Arithmetic (Exercise)
- 1.3.2 Fitness Calculations (App Exercise)
- 1.3.3 Compound Assignment (Exercise)
- 1.3.4 Counting (App Exercise)
- 1.3.5 Order of Operations (Exercise)
- 1.3.6 Complex Fitness Calculations (App Exercise)
- 1.3.7 Numeric Type Conversion (Exercise)
- 1.3.8 Converting Types (App Exercise)
- 1.4.0 Control Flow (Lab)
- 1.4.1 Logical Operators (Exercise)
- 1.4.2 If and If-Else Statements (Exercise)
- 1.4.3 Fitness Decisions (App Exercise)
- 1.4.4 Boolean Practice (Exercise)
- 1.4.5 Target Heart Rate (App Exercise)
- 1.4.6 Switch Statements (Exercise)
- 1.4.7 Heart Rate Zones (App Exercise)
- 1.4.8 Ternary Operator (Exercise)
- 1.4.9 Ternary Messages (App Exercise)
- 2.1.0 Strings (Lab)
- 2.1.1 String Basics (Exercise)
- 2.1.2 Concatenation and Interpolation (Exercise)
- 2.1.3 Notifications (App Exercise)
- 2.1.4 String Equality and Comparison (Exercise)
- 2.1.5 Password Entry and User Search (App Exercise)
- 2.2.0 Functions (Lab)
- 2.2.1 Create Functions (Exercise)
- 2.2.2 A Functioning App (App Exercise)
- 2.2.3 Parameters and Argument Labels (Exercise)
- 2.2.4 Progress Updates (App Exercise)
- 2.2.5 Return Values (Exercise)
- 2.2.6 Separating Functions (App Exercise)
- 2.3.0 Structures (Lab)
- 2.3.1 Structs, Instances, and Default Values (Exercise)
- 2.3.2 Workout Tracking (App Exercise)
- 2.3.3 Memberwise and Custom Initializers (Exercise)
- 2.3.4 Users and Distance (App Exercise)
- 2.3.5 Methods (Exercise)
- 2.3.6 Workout Functions (App Exercise)
- 2.3.7 Computed Properties and Property Observers (Exercise)
- 2.3.8 Mile Times and Congratulations (App Exercise)
- 2.3.9 Type Properties and Methods (Exercise)
- 2.3.10 Type Properties and Methods (App Exercise)
- 2.4.0 Classes (Lab)
- 2.4.1 Define a Base Class (Exercise)
- 2.4.2 Create a Subclass (Exercise)
- 2.4.3 Override Methods and Properties (Exercise)
- 2.4.4 Class Memberwise Initializers and References (Exercise)
- 2.5.0 Collections (Lab)
- 2.5.1 Arrays (Exercise)
- 2.5.2 Activity Challenge (App Exercise)
- 2.5.3 Dictionaries (Exercise)
- 2.5.4 Pacing (App Exercise)
- 2.6.0 Loops (Lab)
- 2.6.1 For-In Loops (Exercise)
- 2.6.2 Movements (App Exercise)
- 2.6.3 While Loops (Exercise)
- 2.6.4 While Loops (App Exercise)
- 2.6.5 Control Transfer Statements (Exercise)
- 2.6.6 Finding Movements (App Exercise)
- 2.9.0 CommonInputControls (Lesson)
- 2.9.1 Two Buttons (Lab)
- 3.1.0 Optionals (Lab)
- 3.1.1 Optionals (Exercise)
- 3.1.2 Finding a Heart Rate (App Exercise)
- 3.1.3 Functions and Optionals (Exercise)
- 3.1.4 Food Functions (App Exercise)
- 3.1.5 Failable Initializers (Exercise)
- 3.1.6 Workout or Nil (App Exercise)
- 3.2.0 Type Casting (Lab)
- 3.2.1 Type Casting and Inspection (Exercise)
- 3.2.2 Workout Types (App Exercise)
- 3.6.0 TrafficSegues (Lesson)
- 3.6.1 Login (Lab)
- 3.7.0 RainbowTabs (Lesson)
- 3.7.1 AboutMe (Lab)
- 4.1.0 Protocols (Lab)
- 4.1.1 Adopt Protocols: CustomStringConvertible, Equatable, and Comparable (Exercise)
- 4.1.2 Printable Workouts (App Exercise)
- 4.1.3 Create a Protocol (Exercise)
- 4.1.4 Similar Workouts (App Exercise)
- 4.1.5 Heart Rate Delegate (App Exercise)