├── .gitignore
├── Unit 4
├── 4.4 Scroll Views
│ ├── ISpy
│ │ ├── ISpy
│ │ │ └── Assets.xcassets
│ │ │ │ ├── Contents.json
│ │ │ │ └── mountain.imageset
│ │ │ │ ├── mountain.jpg
│ │ │ │ └── Contents.json
│ │ ├── ISpy.xcodeproj
│ │ │ ├── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ ├── xcuserdata
│ │ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ │ └── xcshareddata
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── xcschemes
│ │ │ │ └── xcschememanagement.plist
│ │ ├── ISpyTests
│ │ │ └── Info.plist
│ │ └── ISpyUITests
│ │ │ └── Info.plist
│ └── ScrollingForm
│ │ ├── ScrollingForm
│ │ └── Assets.xcassets
│ │ │ └── Contents.json
│ │ ├── ScrollingForm.xcodeproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ │ ├── ScrollingFormTests
│ │ └── Info.plist
│ │ └── ScrollingFormUITests
│ │ └── Info.plist
├── 4.5 Table Views
│ ├── Meal Tracker
│ │ ├── Meal Tracker
│ │ │ ├── Assets.xcassets
│ │ │ │ └── Contents.json
│ │ │ ├── Meal.swift
│ │ │ ├── Food.swift
│ │ │ └── ViewController.swift
│ │ ├── Meal Tracker.xcodeproj
│ │ │ ├── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ ├── xcshareddata
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ └── xcuserdata
│ │ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── xcschemes
│ │ │ │ └── xcschememanagement.plist
│ │ ├── Meal TrackerTests
│ │ │ └── Info.plist
│ │ └── Meal TrackerUITests
│ │ │ └── Info.plist
│ └── EmojiDictionary
│ │ ├── EmojiDictionary
│ │ ├── Assets.xcassets
│ │ │ └── Contents.json
│ │ └── Emoji.swift
│ │ ├── EmojiDictionary.xcodeproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ │ ├── EmojiDictionaryTests
│ │ └── Info.plist
│ │ └── EmojiDictionaryUITests
│ │ └── Info.plist
├── 4.7 Saving Data
│ ├── EmojiDictionary
│ │ ├── EmojiDictionary
│ │ │ └── Assets.xcassets
│ │ │ │ └── Contents.json
│ │ ├── EmojiDictionary.xcodeproj
│ │ │ ├── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ │ ├── xcdebugger
│ │ │ │ │ └── Breakpoints_v2.xcbkptlist
│ │ │ │ │ └── xcschemes
│ │ │ │ │ └── xcschememanagement.plist
│ │ │ └── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ ├── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ └── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ ├── EmojiDictionaryTests
│ │ │ └── Info.plist
│ │ └── EmojiDictionaryUITests
│ │ │ └── Info.plist
│ └── PersistencePlayground.playground
│ │ └── contents.xcplayground
├── 4.2 App Anatomy and Life Cycle
│ ├── AppEventCount
│ │ ├── AppEventCount
│ │ │ └── Assets.xcassets
│ │ │ │ └── Contents.json
│ │ └── AppEventCount.xcodeproj
│ │ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ └── AppLifeCycle
│ │ ├── AppLifeCycle
│ │ ├── Assets.xcassets
│ │ │ └── Contents.json
│ │ └── ViewController.swift
│ │ └── AppLifeCycle.xcodeproj
│ │ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── 4.6 Intermediate Table Views
│ ├── EmojiDictionary
│ │ ├── EmojiDictionary
│ │ │ ├── Assets.xcassets
│ │ │ │ └── Contents.json
│ │ │ └── Emoji.swift
│ │ ├── EmojiDictionary.xcodeproj
│ │ │ ├── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ │ ├── xcdebugger
│ │ │ │ │ └── Breakpoints_v2.xcbkptlist
│ │ │ │ │ └── xcschemes
│ │ │ │ │ └── xcschememanagement.plist
│ │ │ └── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ ├── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ │ └── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ ├── EmojiDictionaryTests
│ │ │ └── Info.plist
│ │ └── EmojiDictionaryUITests
│ │ │ └── Info.plist
│ └── FavoriteBook
│ │ └── FavoriteBooks.xcodeproj
│ │ ├── project.xcworkspace
│ │ ├── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ ├── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── 4.9 Building Complex Input Screens
│ ├── HotelManzana
│ │ ├── HotelManzana
│ │ │ └── Assets.xcassets
│ │ │ │ └── Contents.json
│ │ ├── HotelManzana.xcodeproj
│ │ │ ├── xcuserdata
│ │ │ │ └── michael.xcuserdatad
│ │ │ │ │ ├── xcdebugger
│ │ │ │ │ └── Breakpoints_v2.xcbkptlist
│ │ │ │ │ └── xcschemes
│ │ │ │ │ └── xcschememanagement.plist
│ │ │ └── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ ├── xcuserdata
│ │ │ │ └── michael.xcuserdatad
│ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ ├── HotelManzanaTests
│ │ │ └── Info.plist
│ │ └── HotelManzanaUITests
│ │ │ └── Info.plist
│ └── EmployeeRoster
│ │ ├── EmployeeRoster.xcodeproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcuserdata
│ │ │ │ ├── owen.xcuserdatad
│ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ │ └── michael.xcuserdatad
│ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ │ ├── owen.xcuserdatad
│ │ │ └── xcschemes
│ │ │ │ └── xcschememanagement.plist
│ │ │ └── michael.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ │ └── EmployeeRoster
│ │ └── Employee.swift
├── 4.8 System View Controllers
│ ├── SystemViewControllers
│ │ ├── SystemViewControllers
│ │ │ └── Assets.xcassets
│ │ │ │ ├── Contents.json
│ │ │ │ └── download.imageset
│ │ │ │ ├── download.jpg
│ │ │ │ └── Contents.json
│ │ └── SystemViewControllers.xcodeproj
│ │ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcuserdata
│ │ │ │ └── michael.xcuserdatad
│ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata
│ │ │ └── michael.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ └── HomeFurniture
│ │ ├── Room.swift
│ │ ├── HomeFurniture.xcodeproj
│ │ ├── project.xcworkspace
│ │ │ ├── xcuserdata
│ │ │ │ └── michael.xcuserdatad
│ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ ├── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── michael.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ │ └── Furniture.swift
├── 4.1 Protocols
│ ├── exercise-1.playground
│ │ └── contents.xcplayground
│ ├── exercise-2.playground
│ │ └── contents.xcplayground
│ ├── exercise-3.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-4.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-5.playground
│ │ ├── contents.xcplayground
│ │ └── playground.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── Lab - Protocols.playground
│ │ ├── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcuserdata
│ │ │ ├── calebhicks.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── contents.xcplayground
└── 4.3 Model View Controller
│ └── FavoriteAthlete
│ ├── FavoriteAthlete.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcuserdata
│ │ │ ├── owen.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcuserdata
│ │ ├── owen.xcuserdatad
│ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
│ └── FavoriteAthlete
│ └── Athlete.swift
├── Unit 2
├── 2.8 Displaying Data
│ └── Hello
│ │ ├── Hello
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ └── IMG_0897.imageset
│ │ │ │ ├── IMG_0897.jpg
│ │ │ │ └── Contents.json
│ │ └── ViewController.swift
│ │ ├── Hello.xcodeproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ │ ├── HelloTests
│ │ └── Info.plist
│ │ └── HelloUITests
│ │ └── Info.plist
├── 2.10 Auto Layout and Stack Views
│ ├── Calculator
│ │ ├── Calculator
│ │ │ ├── Assets.xcassets
│ │ │ │ └── Contents.json
│ │ │ └── ViewController.swift
│ │ └── Calculator.xcodeproj
│ │ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ └── AutoLayoutPractice
│ │ ├── AutoLayoutPractice
│ │ ├── Assets.xcassets
│ │ │ └── Contents.json
│ │ └── ViewController.swift
│ │ └── AutoLayoutPractice.xcodeproj
│ │ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── 2.9 Controls in Action
│ └── CommonInputControls
│ │ ├── CommonInputControls
│ │ └── Assets.xcassets
│ │ │ └── Contents.json
│ │ └── CommonInputControls.xcodeproj
│ │ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── 2.6 Loops
│ ├── exercise-1.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-2.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-3.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-4.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-5.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-6.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ └── Lab - Loops.playground
│ │ ├── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcuserdata
│ │ │ └── calebhicks.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ ├── Pages
│ │ ├── 3. Exercise - While Loops.xcplaygroundpage
│ │ │ └── Contents.swift
│ │ └── 1. Exercise - For-In Loops.xcplaygroundpage
│ │ │ └── Contents.swift
│ │ └── contents.xcplayground
├── 2.2 Functions
│ ├── exercise-1.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-2.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-3.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-4.playground
│ │ └── contents.xcplayground
│ ├── exercise-5.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-6.playground
│ │ └── contents.xcplayground
│ └── Lab - Functions.playground
│ │ ├── contents.xcplayground
│ │ └── Pages
│ │ ├── 5. Exercise - Return Values.xcplaygroundpage
│ │ └── Contents.swift
│ │ └── 1. Exercise - Create Functions.xcplaygroundpage
│ │ └── Contents.swift
├── 2.3 Structures
│ ├── exercise-1.playground
│ │ └── contents.xcplayground
│ ├── exercise-10.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-2.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-3.playground
│ │ └── contents.xcplayground
│ ├── exercise-4.playground
│ │ └── contents.xcplayground
│ ├── exercise-5.playground
│ │ └── contents.xcplayground
│ ├── exercise-6.playground
│ │ ├── contents.xcplayground
│ │ ├── playground.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── Contents.swift
│ ├── exercise-7.playground
│ │ ├── contents.xcplayground
│ │ └── playground.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ ├── exercise-8.playground
│ │ └── contents.xcplayground
│ ├── exercise-9.playground
│ │ ├── contents.xcplayground
│ │ ├── playground.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── Contents.swift
│ └── Lab - Structures.playground
│ │ └── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── 2.5 Collections
│ ├── exercise-1.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-2.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-3.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-4.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ └── Lab - Collections.playground
│ │ ├── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── calebhicks.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── contents.xcplayground
├── 2.4 Classes, Inheritance
│ ├── exercise-1.playground
│ │ └── contents.xcplayground
│ ├── exercise-2.playground
│ │ └── contents.xcplayground
│ ├── exercise-3.playground
│ │ └── contents.xcplayground
│ ├── exercise-4.playground
│ │ └── contents.xcplayground
│ └── Lab - Classes.playground
│ │ ├── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcuserdata
│ │ │ ├── calebhicks.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── contents.xcplayground
└── 2.1 Strings
│ └── Lab - Strings.playground
│ ├── playground.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ │ └── michael.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ ├── xcuserdata
│ └── michael.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
│ └── contents.xcplayground
├── Unit 5
├── 5.3 Practical Animation
│ ├── Contest
│ │ ├── Contest
│ │ │ └── Assets.xcassets
│ │ │ │ └── Contents.json
│ │ ├── Contest.xcodeproj
│ │ │ ├── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ ├── xcuserdata
│ │ │ │ │ └── michael.xcuserdatad
│ │ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ │ └── xcshareddata
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata
│ │ │ │ └── michael.xcuserdatad
│ │ │ │ └── xcschemes
│ │ │ │ └── xcschememanagement.plist
│ │ ├── ContestTests
│ │ │ └── Info.plist
│ │ └── ContestUITests
│ │ │ └── Info.plist
│ ├── MusicWireframe
│ │ ├── MusicWireframe
│ │ │ └── Assets.xcassets
│ │ │ │ ├── Contents.json
│ │ │ │ ├── play.imageset
│ │ │ │ ├── play.png
│ │ │ │ ├── play@2x.png
│ │ │ │ ├── play@3x.png
│ │ │ │ └── Contents.json
│ │ │ │ ├── pause.imageset
│ │ │ │ ├── pause.png
│ │ │ │ ├── pause@2x.png
│ │ │ │ ├── pause@3x.png
│ │ │ │ └── Contents.json
│ │ │ │ ├── forward.imageset
│ │ │ │ ├── forward.png
│ │ │ │ ├── forward@2x.png
│ │ │ │ ├── forward@3x.png
│ │ │ │ └── Contents.json
│ │ │ │ └── reverse.imageset
│ │ │ │ ├── reverse.png
│ │ │ │ ├── reverse@2x.png
│ │ │ │ ├── reverse@3x.png
│ │ │ │ └── Contents.json
│ │ ├── MusicWireframe.xcodeproj
│ │ │ ├── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ ├── xcuserdata
│ │ │ │ │ └── michael.xcuserdatad
│ │ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ │ └── xcshareddata
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata
│ │ │ │ └── michael.xcuserdatad
│ │ │ │ └── xcschemes
│ │ │ │ └── xcschememanagement.plist
│ │ ├── MusicWireframeTests
│ │ │ └── Info.plist
│ │ └── MusicWireframeUITests
│ │ │ └── Info.plist
│ └── FlyingSquares.playground
│ │ ├── timeline.xctimeline
│ │ └── contents.xcplayground
├── 5.6 Working with the Web - Concurrency
│ ├── SpacePhoto
│ │ ├── SpacePhoto
│ │ │ ├── Assets.xcassets
│ │ │ │ └── Contents.json
│ │ │ └── URL+Helpers.swift
│ │ ├── SpacePhoto.xcodeproj
│ │ │ ├── project.xcworkspace
│ │ │ │ ├── contents.xcworkspacedata
│ │ │ │ ├── xcuserdata
│ │ │ │ │ └── michael.xcuserdatad
│ │ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ │ └── xcshareddata
│ │ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata
│ │ │ │ └── michael.xcuserdatad
│ │ │ │ └── xcschemes
│ │ │ │ └── xcschememanagement.plist
│ │ ├── SpacePhotoTests
│ │ │ └── Info.plist
│ │ └── SpacePhotoUITests
│ │ │ └── Info.plist
│ └── iTunesSearch
│ │ ├── iTunesSearch
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ └── gray.imageset
│ │ │ │ ├── Solid_gray.png
│ │ │ │ └── Contents.json
│ │ ├── iTunesSearch.playground
│ │ │ └── contents.xcplayground
│ │ └── URL+Helpers.swift
│ │ └── iTunesSearch.xcodeproj
│ │ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcuserdata
│ │ │ └── michael.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ └── michael.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── 5.1 Closures
│ ├── exercise-1.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-2.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ ├── exercise-3.playground
│ │ ├── contents.xcplayground
│ │ └── Contents.swift
│ └── Lab - Closures.playground
│ │ ├── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcuserdata
│ │ │ ├── calebhicks.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ ├── contents.xcplayground
│ │ └── Pages
│ │ └── 1. Exercise - Create Closures.xcplaygroundpage
│ │ └── Contents.swift
├── 5.2 Extensions
│ ├── exercise-1.playground
│ │ └── contents.xcplayground
│ ├── exercise-2.playground
│ │ └── contents.xcplayground
│ └── Lab - Extensions.playground
│ │ ├── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcuserdata
│ │ │ ├── calebhicks.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── contents.xcplayground
├── 5.5 Working with the Web - Decoding JSON
│ ├── iTunes Search.playground
│ │ ├── playground.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcuserdata
│ │ │ │ └── michael.xcuserdatad
│ │ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ └── contents.xcplayground
│ └── Working with the Web.playground
│ │ ├── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcuserdata
│ │ │ └── michael.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── contents.xcplayground
└── 5.4 Working with the Web - HTTP and URL Session
│ ├── iTunes Search.playground
│ └── contents.xcplayground
│ └── Working with the Web.playground
│ └── contents.xcplayground
├── Unit 1
├── 1.1 Introduction to Swift and Playgrounds
│ ├── Hello, world!.playground
│ │ ├── Contents.swift
│ │ ├── playground.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcuserdata
│ │ │ │ └── michael.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ └── contents.xcplayground
│ └── Lab - Introduction.playground
│ │ ├── contents.xcplayground
│ │ ├── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── michael.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcuserdata
│ │ └── michael.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── 1.8 Interface Builder Basics
│ ├── IBBasics
│ │ ├── IBBasics
│ │ │ ├── Assets.xcassets
│ │ │ │ └── Contents.json
│ │ │ └── ViewController.swift
│ │ └── IBBasics.xcodeproj
│ │ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ ├── xcshareddata
│ │ │ │ └── IDEWorkspaceChecks.plist
│ │ │ └── xcuserdata
│ │ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ │ └── UserInterfaceState.xcuserstate
│ │ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ └── InterfaceBuilderBasics
│ │ ├── InterfaceBuilderBasics
│ │ ├── Assets.xcassets
│ │ │ └── Contents.json
│ │ └── ViewController.swift
│ │ └── InterfaceBuilderBasics.xcodeproj
│ │ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
├── 1.3 Operators
│ └── Lab - Operators.playground
│ │ ├── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── michael.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ ├── xcuserdata
│ │ └── michael.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ │ └── contents.xcplayground
├── 1.4 Control Flow
│ └── Lab - Control Flow.playground
│ │ ├── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── michael.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ ├── Pages
│ │ └── 8. Exercise - Ternary Operator.xcplaygroundpage
│ │ │ └── Contents.swift
│ │ ├── xcuserdata
│ │ └── michael.xcuserdatad
│ │ │ └── xcschemes
│ │ │ └── xcschememanagement.plist
│ │ └── contents.xcplayground
└── 1.2 Constants, Variables and Data Types
│ └── Lab - Constants and Variables.playground
│ ├── playground.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ │ └── michael.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ ├── xcuserdata
│ └── michael.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
│ └── Pages
│ └── 2. App Exercise - Step Goal.xcplaygroundpage
│ └── Contents.swift
└── Unit 3
├── 3.7 Tab Bar Controllers
└── RainbowTabs
│ ├── RainbowTabs
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── B.imageset
│ │ │ ├── B.pdf
│ │ │ └── Contents.json
│ │ ├── G.imageset
│ │ │ ├── G.pdf
│ │ │ └── Contents.json
│ │ ├── O.imageset
│ │ │ ├── O.pdf
│ │ │ └── Contents.json
│ │ ├── R.imageset
│ │ │ ├── R.pdf
│ │ │ └── Contents.json
│ │ ├── Y.imageset
│ │ │ ├── Y.pdf
│ │ │ └── Contents.json
│ │ ├── B Selected.imageset
│ │ │ ├── B Selected.pdf
│ │ │ └── Contents.json
│ │ ├── G Selected.imageset
│ │ │ ├── G Selected.pdf
│ │ │ └── Contents.json
│ │ ├── O Selected.imageset
│ │ │ ├── O Selected.pdf
│ │ │ └── Contents.json
│ │ ├── R Selected.imageset
│ │ │ ├── R Selected.pdf
│ │ │ └── Contents.json
│ │ └── Y Selected.imageset
│ │ │ ├── Y Selected.pdf
│ │ │ └── Contents.json
│ └── RedViewController.swift
│ └── RainbowTabs.xcodeproj
│ ├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ └── michael.westerbyibm.com.xcuserdatad
│ └── xcschemes
│ └── xcschememanagement.plist
├── 3.8 View Controller Life Cycle
├── LifeCycle
│ ├── LifeCycle
│ │ └── Assets.xcassets
│ │ │ └── Contents.json
│ └── LifeCycle.xcodeproj
│ │ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcuserdata
│ │ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ └── xcschemes
│ │ └── xcschememanagement.plist
└── OrderOfEvents
│ ├── OrderOfEvents
│ ├── Assets.xcassets
│ │ └── Contents.json
│ └── ViewController.swift
│ └── OrderOfEvents.xcodeproj
│ ├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ └── michael.westerbyibm.com.xcuserdatad
│ └── xcschemes
│ └── xcschememanagement.plist
├── 3.6 Segues and Navigation Controllers
└── TrafficSegues
│ ├── TrafficSegues
│ └── Assets.xcassets
│ │ └── Contents.json
│ └── TrafficSegues.xcodeproj
│ ├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ └── michael.westerbyibm.com.xcuserdatad
│ └── xcschemes
│ └── xcschememanagement.plist
├── 3.9 Building Simple Workflows
└── Pizza Delivery Lab.png
├── 3.1 Optionals
├── exercise-1.playground
│ ├── Contents.swift
│ └── contents.xcplayground
├── exercise-2.playground
│ ├── contents.xcplayground
│ └── Contents.swift
├── exercise-3.playground
│ └── contents.xcplayground
├── exercise-4.playground
│ ├── contents.xcplayground
│ └── Contents.swift
├── exercise-5.playground
│ └── contents.xcplayground
├── exercise-6.playground
│ ├── contents.xcplayground
│ └── Contents.swift
└── Lab - Optionals.playground
│ ├── playground.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcuserdata
│ │ └── calebhicks.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── contents.xcplayground
├── 3.3 Guard
├── exercise-1.playground
│ ├── contents.xcplayground
│ └── playground.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ ├── xcuserdata
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── exercise-2.playground
│ └── contents.xcplayground
└── Lab - Guard.playground
│ ├── playground.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcuserdata
│ │ ├── calebhicks.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── contents.xcplayground
├── 3.5 Enumerations
├── exercise-1.playground
│ └── contents.xcplayground
├── exercise-2.playground
│ └── contents.xcplayground
└── Lab - Enumerations.playground
│ ├── playground.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcuserdata
│ │ ├── calebhicks.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── contents.xcplayground
├── 3.2 Type Casting and Inspection
├── exercise-1.playground
│ └── contents.xcplayground
├── exercise-2.playground
│ └── contents.xcplayground
└── Lab - Type Casting.playground
│ ├── playground.xcworkspace
│ ├── contents.xcworkspacedata
│ ├── xcuserdata
│ │ ├── calebhicks.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ │ └── michael.westerbyibm.com.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
│ └── contents.xcplayground
└── 3.4 Constant and Variable Scope
├── exercise-1.playground
└── contents.xcplayground
├── exercise-2.playground
└── contents.xcplayground
└── Lab - Scope.playground
├── playground.xcworkspace
├── contents.xcworkspacedata
├── xcuserdata
│ ├── calebhicks.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
│ └── michael.westerbyibm.com.xcuserdatad
│ │ └── UserInterfaceState.xcuserstate
└── xcshareddata
│ └── IDEWorkspaceChecks.plist
└── contents.xcplayground
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ISpy/ISpy/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 2/2.8 Displaying Data/Hello/Hello/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/Contest/Contest/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ScrollingForm/ScrollingForm/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/Meal Tracker/Meal Tracker/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 1/1.1 Introduction to Swift and Playgrounds/Hello, world!.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | var str = "Hello, playground"
4 |
5 | print(str)
6 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/EmojiDictionary/EmojiDictionary/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 4/4.7 Saving Data/EmojiDictionary/EmojiDictionary/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/IBBasics/IBBasics/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/Calculator/Calculator/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/LifeCycle/LifeCycle/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/OrderOfEvents/OrderOfEvents/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppEventCount/AppEventCount/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppLifeCycle/AppLifeCycle/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/EmojiDictionary/EmojiDictionary/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/HotelManzana/HotelManzana/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/SpacePhoto/SpacePhoto/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 2/2.9 Controls in Action/CommonInputControls/CommonInputControls/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 3/3.6 Segues and Navigation Controllers/TrafficSegues/TrafficSegues/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 3/3.9 Building Simple Workflows/Pizza Delivery Lab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.9 Building Simple Workflows/Pizza Delivery Lab.png
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/SystemViewControllers/SystemViewControllers/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/InterfaceBuilderBasics/InterfaceBuilderBasics/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/AutoLayoutPractice/AutoLayoutPractice/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/FlyingSquares.playground/timeline.xctimeline:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Unit 1/1.1 Introduction to Swift and Playgrounds/Lab - Introduction.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/exercise-1.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Optionals
4 |
5 | let userInputAge: String = "34"
6 |
7 | if let userAge = Int(userInputAge) {
8 | print(userAge)
9 | }
10 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ISpy/ISpy/Assets.xcassets/mountain.imageset/mountain.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.4 Scroll Views/ISpy/ISpy/Assets.xcassets/mountain.imageset/mountain.jpg
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-3.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-4.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-5.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-6.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.3 Guard/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.3 Guard/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/exercise-3.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/exercise-4.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/exercise-5.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/exercise-6.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-10.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-3.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-4.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-5.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-6.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-7.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-8.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-9.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/exercise-3.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/exercise-4.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.8 Displaying Data/Hello/Hello/Assets.xcassets/IMG_0897.imageset/IMG_0897.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.8 Displaying Data/Hello/Hello/Assets.xcassets/IMG_0897.imageset/IMG_0897.jpg
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/exercise-3.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/exercise-4.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/exercise-5.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/exercise-6.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/exercise-3.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/exercise-4.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/exercise-5.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/exercise-3.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 5/5.2 Extensions/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 5/5.2 Extensions/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.5 Enumerations/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.5 Enumerations/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/B.imageset/B.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/B.imageset/B.pdf
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/G.imageset/G.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/G.imageset/G.pdf
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/O.imageset/O.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/O.imageset/O.pdf
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/R.imageset/R.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/R.imageset/R.pdf
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/Y.imageset/Y.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/Y.imageset/Y.pdf
--------------------------------------------------------------------------------
/Unit 2/2.4 Classes, Inheritance/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.4 Classes, Inheritance/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.4 Classes, Inheritance/exercise-3.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.4 Classes, Inheritance/exercise-4.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/Lab - Loops.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 3/3.3 Guard/Lab - Guard.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 3/3.3 Guard/exercise-1.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/exercise-5.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 1/1.3 Operators/Lab - Operators.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.1 Strings/Lab - Strings.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-6.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-7.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-9.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-3.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - While Loops
4 |
5 | var diceRoll = 0
6 |
7 | while (diceRoll != 6) {
8 | diceRoll = Int(arc4random_uniform(6) + 1)
9 | print(diceRoll)
10 | }
11 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/Lab - Optionals.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/Lab - Protocols.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/HotelManzana/HotelManzana.xcodeproj/xcuserdata/michael.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/Lab - Closures.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/Lab - Structures.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/Lab - Collections.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 3/3.2 Type Casting and Inspection/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.2 Type Casting and Inspection/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.4 Constant and Variable Scope/exercise-1.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.4 Constant and Variable Scope/exercise-2.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 4/4.7 Saving Data/EmojiDictionary/EmojiDictionary.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/Unit 5/5.2 Extensions/Lab - Extensions.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 1/1.4 Control Flow/Lab - Control Flow.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.4 Classes, Inheritance/Lab - Classes.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 3/3.5 Enumerations/Lab - Enumerations.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ISpy/ISpy.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.8 Displaying Data/Hello/Hello.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 3/3.4 Constant and Variable Scope/Lab - Scope.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/play.imageset/play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/play.imageset/play.png
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/pause.imageset/pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/pause.imageset/pause.png
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/play.imageset/play@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/play.imageset/play@2x.png
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/play.imageset/play@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/play.imageset/play@3x.png
--------------------------------------------------------------------------------
/Unit 3/3.2 Type Casting and Inspection/Lab - Type Casting.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/B Selected.imageset/B Selected.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/B Selected.imageset/B Selected.pdf
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/G Selected.imageset/G Selected.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/G Selected.imageset/G Selected.pdf
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/O Selected.imageset/O Selected.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/O Selected.imageset/O Selected.pdf
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/R Selected.imageset/R Selected.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/R Selected.imageset/R Selected.pdf
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/Y Selected.imageset/Y Selected.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/Y Selected.imageset/Y Selected.pdf
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/Contest/Contest.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/forward.imageset/forward.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/forward.imageset/forward.png
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/pause.imageset/pause@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/pause.imageset/pause@2x.png
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/pause.imageset/pause@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/pause.imageset/pause@3x.png
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/reverse.imageset/reverse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/reverse.imageset/reverse.png
--------------------------------------------------------------------------------
/Unit 5/5.5 Working with the Web - Decoding JSON/iTunes Search.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 1/1.1 Introduction to Swift and Playgrounds/Hello, world!.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/Meal Tracker/Meal Tracker.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.7 Saving Data/PersistencePlayground.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/FlyingSquares.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/forward.imageset/forward@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/forward.imageset/forward@2x.png
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/forward.imageset/forward@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/forward.imageset/forward@3x.png
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/reverse.imageset/reverse@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/reverse.imageset/reverse@2x.png
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/reverse.imageset/reverse@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/reverse.imageset/reverse@3x.png
--------------------------------------------------------------------------------
/Unit 1/1.1 Introduction to Swift and Playgrounds/Lab - Introduction.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/IBBasics/IBBasics.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ScrollingForm/ScrollingForm.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 5/5.5 Working with the Web - Decoding JSON/Working with the Web.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 1/1.1 Introduction to Swift and Playgrounds/Hello, world!.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 1/1.2 Constants, Variables and Data Types/Lab - Constants and Variables.playground/playground.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/LifeCycle/LifeCycle.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.7 Saving Data/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch/iTunesSearch.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/Calculator/Calculator.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppLifeCycle/AppLifeCycle.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 5/5.5 Working with the Web - Decoding JSON/iTunes Search.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/OrderOfEvents/OrderOfEvents.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppEventCount/AppEventCount.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.3 Model View Controller/FavoriteAthlete/FavoriteAthlete.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/HotelManzana/HotelManzana.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/SpacePhoto/SpacePhoto.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch/Assets.xcassets/gray.imageset/Solid_gray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch/Assets.xcassets/gray.imageset/Solid_gray.png
--------------------------------------------------------------------------------
/Unit 3/3.6 Segues and Navigation Controllers/TrafficSegues/TrafficSegues.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/EmployeeRoster/EmployeeRoster.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 5/5.4 Working with the Web - HTTP and URL Session/iTunes Search.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 5/5.5 Working with the Web - Decoding JSON/Working with the Web.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.9 Controls in Action/CommonInputControls/CommonInputControls.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 5/5.4 Working with the Web - HTTP and URL Session/Working with the Web.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/AutoLayoutPractice/AutoLayoutPractice.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/SystemViewControllers/SystemViewControllers/Assets.xcassets/download.imageset/download.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.8 System View Controllers/SystemViewControllers/SystemViewControllers/Assets.xcassets/download.imageset/download.jpg
--------------------------------------------------------------------------------
/Unit 2/2.1 Strings/Lab - Strings.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.1 Strings/Lab - Strings.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/Lab - Loops.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.6 Loops/Lab - Loops.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.3 Guard/Lab - Guard.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.3 Guard/Lab - Guard.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/HomeFurniture/Room.swift:
--------------------------------------------------------------------------------
1 |
2 | import Foundation
3 |
4 | class Room {
5 | let name: String
6 | let furniture: [Furniture]
7 |
8 | init(name: String, furniture: [Furniture]) {
9 | self.name = name
10 | self.furniture = furniture
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/SystemViewControllers/SystemViewControllers.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/InterfaceBuilderBasics/InterfaceBuilderBasics.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-4.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - While Loops
4 |
5 | let cadence: Double = 180
6 | var testSteps = 0
7 |
8 | while testSteps < 10 {
9 | print("Take a step")
10 | testSteps = testSteps + 1
11 | Thread.sleep(forTimeInterval: 60/cadence)
12 | }
13 |
--------------------------------------------------------------------------------
/Unit 1/1.3 Operators/Lab - Operators.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 1/1.3 Operators/Lab - Operators.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/Lab - Closures.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.1 Closures/Lab - Closures.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/Lab - Optionals.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.1 Optionals/Lab - Optionals.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/Lab - Protocols.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.1 Protocols/Lab - Protocols.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 1/1.4 Control Flow/Lab - Control Flow.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 1/1.4 Control Flow/Lab - Control Flow.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 5/5.2 Extensions/Lab - Extensions.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.2 Extensions/Lab - Extensions.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/Contest/Contest.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/Contest/Contest.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/Lab - Collections.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.5 Collections/Lab - Collections.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.3 Guard/Lab - Guard.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Unit 3/3.3 Guard/Lab - Guard.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.3 Guard/Lab - Guard.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.3 Guard/exercise-1.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.3 Guard/exercise-1.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.5 Enumerations/Lab - Enumerations.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.5 Enumerations/Lab - Enumerations.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/exercise-5.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.1 Protocols/exercise-5.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ISpy/ISpy.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.4 Scroll Views/ISpy/ISpy.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-7.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.3 Structures/exercise-7.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.4 Classes, Inheritance/Lab - Classes.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.4 Classes, Inheritance/Lab - Classes.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.8 Displaying Data/Hello/Hello.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.8 Displaying Data/Hello/Hello.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/Lab - Protocols.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.1 Protocols/Lab - Protocols.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/Lab - Closures.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.1 Closures/Lab - Closures.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/Lab - Structures.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.3 Structures/Lab - Structures.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/Lab - Loops.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.3 Guard/Lab - Guard.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.3 Guard/exercise-1.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.4 Constant and Variable Scope/Lab - Scope.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.4 Constant and Variable Scope/Lab - Scope.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/exercise-5.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ISpy/ISpy.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 5/5.2 Extensions/Lab - Extensions.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Unit 5/5.2 Extensions/Lab - Extensions.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.2 Extensions/Lab - Extensions.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-6.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-7.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-9.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 2/2.8 Displaying Data/Hello/Hello.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/Lab - Optionals.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.4 Constant and Variable Scope/Lab - Scope.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Unit 3/3.5 Enumerations/Lab - Enumerations.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/Lab - Protocols.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.3 Model View Controller/FavoriteAthlete/FavoriteAthlete.xcodeproj/project.xcworkspace/xcuserdata/owen.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.3 Model View Controller/FavoriteAthlete/FavoriteAthlete.xcodeproj/project.xcworkspace/xcuserdata/owen.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/Lab - Closures.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/Lab - Structures.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.5 Enumerations/Lab - Enumerations.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.5 Enumerations/Lab - Enumerations.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/HomeFurniture/HomeFurniture.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.8 System View Controllers/HomeFurniture/HomeFurniture.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 5/5.2 Extensions/Lab - Extensions.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 1/1.1 Introduction to Swift and Playgrounds/Hello, world!.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 1/1.1 Introduction to Swift and Playgrounds/Hello, world!.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.4 Classes, Inheritance/Lab - Classes.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 2/2.4 Classes, Inheritance/Lab - Classes.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.4 Classes, Inheritance/Lab - Classes.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.2 Type Casting and Inspection/Lab - Type Casting.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.2 Type Casting and Inspection/Lab - Type Casting.playground/playground.xcworkspace/xcuserdata/calebhicks.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.5 Enumerations/Lab - Enumerations.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/Meal Tracker/Meal Tracker.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/Meal Tracker/Meal Tracker.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.5 Table Views/Meal Tracker/Meal Tracker.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/Contest/Contest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 5/5.5 Working with the Web - Decoding JSON/iTunes Search.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.5 Working with the Web - Decoding JSON/iTunes Search.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/IBBasics/IBBasics.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.4 Constant and Variable Scope/Lab - Scope.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ScrollingForm/ScrollingForm.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ScrollingForm/ScrollingForm.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.4 Scroll Views/ScrollingForm/ScrollingForm.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.7 Saving Data/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/EmployeeRoster/EmployeeRoster.xcodeproj/project.xcworkspace/xcuserdata/owen.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.9 Building Complex Input Screens/EmployeeRoster/EmployeeRoster.xcodeproj/project.xcworkspace/xcuserdata/owen.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/HotelManzana/HotelManzana.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.9 Building Complex Input Screens/HotelManzana/HotelManzana.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/SpacePhoto/SpacePhoto.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.6 Working with the Web - Concurrency/SpacePhoto/SpacePhoto.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 1/1.1 Introduction to Swift and Playgrounds/Lab - Introduction.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 1/1.1 Introduction to Swift and Playgrounds/Lab - Introduction.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/IBBasics/IBBasics.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 1/1.8 Interface Builder Basics/IBBasics/IBBasics.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.4 Constant and Variable Scope/Lab - Scope.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.4 Constant and Variable Scope/Lab - Scope.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/LifeCycle/LifeCycle.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.5 Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.7 Saving Data/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.7 Saving Data/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/EmployeeRoster/EmployeeRoster.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.9 Building Complex Input Screens/EmployeeRoster/EmployeeRoster.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/Calculator/Calculator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.2 Type Casting and Inspection/Lab - Type Casting.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/Unit 3/3.2 Type Casting and Inspection/Lab - Type Casting.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/LifeCycle/LifeCycle.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.8 View Controller Life Cycle/LifeCycle/LifeCycle.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/OrderOfEvents/OrderOfEvents.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppEventCount/AppEventCount.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppLifeCycle/AppLifeCycle.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.3 Model View Controller/FavoriteAthlete/FavoriteAthlete.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/FavoriteBook/FavoriteBooks.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/HomeFurniture/HomeFurniture.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 5/5.5 Working with the Web - Decoding JSON/Working with the Web.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 5/5.5 Working with the Web - Decoding JSON/Working with the Web.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 5/5.5 Working with the Web - Decoding JSON/iTunes Search.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 2/2.9 Controls in Action/CommonInputControls/CommonInputControls.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/HotelManzana/HotelManzana.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/SpacePhoto/SpacePhoto.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/Calculator/Calculator.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.10 Auto Layout and Stack Views/Calculator/Calculator.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.2 Type Casting and Inspection/Lab - Type Casting.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.2 Type Casting and Inspection/Lab - Type Casting.playground/playground.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.6 Segues and Navigation Controllers/TrafficSegues/TrafficSegues.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/FavoriteBook/FavoriteBooks.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.6 Intermediate Table Views/FavoriteBook/FavoriteBooks.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/SystemViewControllers/SystemViewControllers.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.8 System View Controllers/SystemViewControllers/SystemViewControllers.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/EmployeeRoster/EmployeeRoster.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 5/5.5 Working with the Web - Decoding JSON/Working with the Web.playground/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 1/1.2 Constants, Variables and Data Types/Lab - Constants and Variables.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 1/1.2 Constants, Variables and Data Types/Lab - Constants and Variables.playground/playground.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/AutoLayoutPractice/AutoLayoutPractice.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/OrderOfEvents/OrderOfEvents.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.8 View Controller Life Cycle/OrderOfEvents/OrderOfEvents.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppEventCount/AppEventCount.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.2 App Anatomy and Life Cycle/AppEventCount/AppEventCount.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppLifeCycle/AppLifeCycle.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.2 App Anatomy and Life Cycle/AppLifeCycle/AppLifeCycle.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.3 Model View Controller/FavoriteAthlete/FavoriteAthlete.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.3 Model View Controller/FavoriteAthlete/FavoriteAthlete.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/SystemViewControllers/SystemViewControllers.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/InterfaceBuilderBasics/InterfaceBuilderBasics.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 4/4.6 Intermediate Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 2/2.9 Controls in Action/CommonInputControls/CommonInputControls.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.9 Controls in Action/CommonInputControls/CommonInputControls.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 3/3.6 Segues and Navigation Controllers/TrafficSegues/TrafficSegues.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 3/3.6 Segues and Navigation Controllers/TrafficSegues/TrafficSegues.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/HomeFurniture/Furniture.swift:
--------------------------------------------------------------------------------
1 |
2 | import Foundation
3 |
4 | class Furniture {
5 | let name: String
6 | let description: String
7 | var imageData: Data?
8 |
9 | init(name: String, description: String, imageData: Data? = nil) {
10 | self.name = name
11 | self.description = description
12 | self.imageData = imageData
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/Lab - Closures.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/AutoLayoutPractice/AutoLayoutPractice.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 2/2.10 Auto Layout and Stack Views/AutoLayoutPractice/AutoLayoutPractice.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/InterfaceBuilderBasics/InterfaceBuilderBasics.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mwesterby/app-development-with-swift/HEAD/Unit 1/1.8 Interface Builder Basics/InterfaceBuilderBasics/InterfaceBuilderBasics.xcodeproj/project.xcworkspace/xcuserdata/michael.westerbyibm.com.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/FavoriteBook/FavoriteBooks.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/HomeFurniture/HomeFurniture.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/Lab - Collections.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/Meal Tracker/Meal Tracker/Meal.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Meal.swift
3 | // Meal Tracker
4 | //
5 | // Created by Michael Westerby on 09/05/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct Meal {
12 | var name: String
13 | var food: [Food]
14 |
15 | init(name: String, food: [Food]) {
16 | self.name = name
17 | self.food = food
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ISpy/ISpy/Assets.xcassets/mountain.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "mountain.jpg",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-6.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Finding Movements
4 |
5 | let lowHR = 110
6 | let highHR = 125
7 | var movementHeartRates: [String: Int] = ["Walking": 85, "Running": 120, "Swimming": 130, "Cycling": 128, "Skiing": 114, "Climbing": 129]
8 |
9 | for (movement, heartRate) in movementHeartRates {
10 | if (heartRate > lowHR && heartRate < highHR) {
11 | print("You could go \(movement)")
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/Unit 2/2.8 Displaying Data/Hello/Hello/Assets.xcassets/IMG_0897.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "IMG_0897.jpg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 2/2.8 Displaying Data/Hello/Hello/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // Hello
4 | //
5 | // Created by Michael Westerby on 15/04/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ViewController: UIViewController {
12 |
13 | override func viewDidLoad() {
14 | super.viewDidLoad()
15 | // Do any additional setup after loading the view.
16 | }
17 |
18 |
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/B.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "B.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/G.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "G.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/O.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "O.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/R.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "R.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/Y.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Y.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/Meal Tracker/Meal Tracker/Food.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Food.swift
3 | // Meal Tracker
4 | //
5 | // Created by Michael Westerby on 09/05/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct Food {
12 | var name: String
13 | var description: String
14 |
15 | init(name: String, description: String) {
16 | self.name = name
17 | self.description = description
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/Lab - Loops.playground/Pages/3. Exercise - While Loops.xcplaygroundpage/Contents.swift:
--------------------------------------------------------------------------------
1 | import Foundation
2 | /*:
3 | ## Exercise - While Loops
4 |
5 | Create a while loop that simulates rolling a 6-sided dice repeatedly until a 1 is rolled. After each roll, print the value. (Hint: use `Int(arc4random_uniform(6) + 1)` to generate a random number between 1 and 6).
6 | */
7 |
8 |
9 |
10 | //: [Previous](@previous) | page 3 of 6 | [Next: App Exercise - While Loops](@next)
11 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/B Selected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "B Selected.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/G Selected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "G Selected.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/O Selected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "O Selected.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/R Selected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "R Selected.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/Assets.xcassets/Y Selected.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Y Selected.pdf",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch/Assets.xcassets/gray.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "Solid_gray.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/Calculator/Calculator/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // Calculator
4 | //
5 | // Created by Michael Westerby on 19/04/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ViewController: UIViewController {
12 |
13 | override func viewDidLoad() {
14 | super.viewDidLoad()
15 | // Do any additional setup after loading the view.
16 | }
17 |
18 |
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/Unit 1/1.4 Control Flow/Lab - Control Flow.playground/Pages/8. Exercise - Ternary Operator.xcplaygroundpage/Contents.swift:
--------------------------------------------------------------------------------
1 | /*:
2 | ## Exercise - Ternary Operator
3 |
4 | Refactor the code below so that `largest` is declared and assigned to in one line using the ternary operator.
5 | */
6 | let number1 = 14
7 | let number2 = 25
8 |
9 | var largest: Int = number1 > number2 ? number1 : number2
10 | print(largest)
11 | //: [Previous](@previous) | page 8 of 9 | [Next: App Exercise - Ternary Messages](@next)
12 |
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppLifeCycle/AppLifeCycle/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // AppLifeCycle
4 | //
5 | // Created by Michael Westerby on 28/04/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ViewController: UIViewController {
12 |
13 | override func viewDidLoad() {
14 | super.viewDidLoad()
15 | // Do any additional setup after loading the view.
16 | }
17 |
18 |
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/Unit 4/4.3 Model View Controller/FavoriteAthlete/FavoriteAthlete/Athlete.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Athlete.swift
3 | // FavoriteAthlete
4 | //
5 | // Created by Michael Westerby on 02/05/2020.
6 | //
7 |
8 | import Foundation
9 |
10 | struct Athlete {
11 | var name: String
12 | var age: String
13 | var league: String
14 | var team: String
15 | var description: String {
16 | return "\(name) is \(age) years old and plays for the \(team) in the \(league)."
17 | }
18 | }
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/SystemViewControllers/SystemViewControllers/Assets.xcassets/download.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "download.jpg",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/OrderOfEvents/OrderOfEvents/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // OrderOfEvents
4 | //
5 | // Created by Michael Westerby on 25/04/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ViewController: UIViewController {
12 |
13 | override func viewDidLoad() {
14 | super.viewDidLoad()
15 | // Do any additional setup after loading the view.
16 | }
17 |
18 |
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ISpy/ISpy.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | ISpy.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/Contest/Contest.xcodeproj/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Contest.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 2/2.4 Classes, Inheritance/Lab - Classes.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/Unit 2/2.8 Displaying Data/Hello/Hello.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Hello.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/Meal Tracker/Meal Tracker/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // Meal Tracker
4 | //
5 | // Created by Michael Westerby on 09/05/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ViewController: UIViewController {
12 |
13 | override func viewDidLoad() {
14 | super.viewDidLoad()
15 | // Do any additional setup after loading the view, typically from a nib.
16 | }
17 |
18 |
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/exercise-1.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Create Closures
4 |
5 | var blankClosure = { () -> Void in
6 | return
7 | }
8 |
9 | let fourClosure = { () -> Int in
10 | return 4
11 | }
12 |
13 | print(fourClosure())
14 | print(fourClosure())
15 | print(fourClosure())
16 | print(fourClosure())
17 |
18 | let greeting = { (name: String) -> Void in
19 | print(name)
20 | }
21 |
22 | greeting("Gary")
23 | greeting("Jane")
24 | greeting("Rick")
25 | greeting("Beth")
26 |
--------------------------------------------------------------------------------
/Unit 4/4.3 Model View Controller/FavoriteAthlete/FavoriteAthlete.xcodeproj/xcuserdata/owen.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | FavoriteAthlete.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/AutoLayoutPractice/AutoLayoutPractice/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // AutoLayoutPractice
4 | //
5 | // Created by Michael Westerby on 17/04/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ViewController: UIViewController {
12 |
13 | override func viewDidLoad() {
14 | super.viewDidLoad()
15 | // Do any additional setup after loading the view.
16 | }
17 |
18 |
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/EmployeeRoster/EmployeeRoster.xcodeproj/xcuserdata/owen.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | EmployeeRoster.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/Meal Tracker/Meal Tracker.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Meal Tracker.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/HomeFurniture/HomeFurniture.xcodeproj/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | HomeFurniture.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe.xcodeproj/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | MusicWireframe.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/IBBasics/IBBasics.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | IBBasics.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/exercise-1.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Arrays
4 |
5 | var registrationList: [String] = []
6 |
7 | registrationList.append("Sara")
8 | print(registrationList)
9 |
10 | registrationList += ["Alex", "Mark", "Michael", "James"]
11 | print(registrationList)
12 |
13 | registrationList.insert("Charlie", at: 1)
14 | print(registrationList)
15 |
16 | registrationList[5] = "Rebecca"
17 | print(registrationList)
18 |
19 | var deletedItem = registrationList.removeLast()
20 | print(deletedItem)
21 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | RainbowTabs.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ScrollingForm/ScrollingForm.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | ScrollingForm.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/HotelManzana/HotelManzana.xcodeproj/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | HotelManzana.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/SpacePhoto/SpacePhoto.xcodeproj/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | SpacePhoto.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/LifeCycle/LifeCycle.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | LifeCycle.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | EmojiDictionary.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.7 Saving Data/EmojiDictionary/EmojiDictionary.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | EmojiDictionary.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/EmployeeRoster/EmployeeRoster.xcodeproj/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | EmployeeRoster.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch.xcodeproj/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | iTunesSearch.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 2/2.1 Strings/Lab - Strings.playground/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Lab - Strings (Playground).xcscheme
8 |
9 | isShown
10 |
11 | orderHint
12 | 0
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/Calculator/Calculator.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Calculator.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/Lab - Protocols.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppLifeCycle/AppLifeCycle.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | AppLifeCycle.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/FavoriteBook/FavoriteBooks.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | FavoriteBooks.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/exercise-5.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Return Values
4 |
5 | func greeting(name: String) -> String {
6 | return "Hi \(name)! How are you?"
7 | }
8 |
9 | var greetingResult = greeting(name: "Michael")
10 | print(greetingResult)
11 |
12 | // ------------
13 |
14 | func multiplyAndAddTwo(_ firstNumber: Int, to secondNumber: Int) -> Int {
15 | return (firstNumber * secondNumber) + 2
16 | }
17 |
18 | var multiplyAndAddTwoResult = multiplyAndAddTwo(5, to: 8)
19 | print(multiplyAndAddTwoResult)
20 |
--------------------------------------------------------------------------------
/Unit 3/3.8 View Controller Life Cycle/OrderOfEvents/OrderOfEvents.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | OrderOfEvents.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.2 App Anatomy and Life Cycle/AppEventCount/AppEventCount.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | AppEventCount.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.3 Model View Controller/FavoriteAthlete/FavoriteAthlete.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | FavoriteAthlete.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 1/1.3 Operators/Lab - Operators.playground/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Lab - Operators (Playground).xcscheme
8 |
9 | isShown
10 |
11 | orderHint
12 | 0
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/exercise-4.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Pacing
4 |
5 | var paces: [String: Double] = ["Easy": 10.0, "Medium": 8.0, "Fast": 6.0]
6 | print(paces)
7 |
8 | paces["Sprint"] = 4.0
9 | print(paces)
10 |
11 | paces.updateValue(7.5, forKey: "Medium")
12 | paces.updateValue(5.8, forKey: "Fast")
13 | print(paces)
14 |
15 | paces.removeValue(forKey: "Sprint")
16 | print(paces)
17 |
18 |
19 | if let mediumPace = paces["Medium"] {
20 | print("Okay! I'll keep you at a \(mediumPace) minute mile pace.")
21 | }
22 |
--------------------------------------------------------------------------------
/Unit 3/3.6 Segues and Navigation Controllers/TrafficSegues/TrafficSegues.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | TrafficSegues.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/EmojiDictionary/EmojiDictionary.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | EmojiDictionary.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 4/4.8 System View Controllers/SystemViewControllers/SystemViewControllers.xcodeproj/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | SystemViewControllers.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 1/1.4 Control Flow/Lab - Control Flow.playground/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Lab - Control Flow (Playground).xcscheme
8 |
9 | isShown
10 |
11 | orderHint
12 | 0
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-2.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Movements
4 |
5 | let movements: [String] = ["Walking", "Running", "Swimming", "Cycling", "Skiing", "Climbing"]
6 |
7 | for movement in movements {
8 | print(movement)
9 | }
10 |
11 | var movementHeartRates: [String: Int] = ["Walking": 85, "Running": 120, "Swimming": 130, "Cycling": 128, "Skiing": 114, "Climbing": 129]
12 |
13 | for (movement, heartRate) in movementHeartRates {
14 | print("Your average heart rate while \(movement) was \(heartRate)bpm.")
15 | }
16 |
--------------------------------------------------------------------------------
/Unit 2/2.9 Controls in Action/CommonInputControls/CommonInputControls.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | CommonInputControls.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 3/3.7 Tab Bar Controllers/RainbowTabs/RainbowTabs/RedViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RedViewController.swift
3 | // RainbowTabs
4 | //
5 | // Created by Michael Westerby on 24/04/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class RedViewController: UIViewController {
12 |
13 | override func viewDidLoad() {
14 | super.viewDidLoad()
15 | // Do any additional setup after loading the view.
16 |
17 | tabBarItem.badgeValue = "!"
18 | }
19 |
20 |
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/pause.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "pause.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "pause@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "pause@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/play.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "play.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "play@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "play@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/Unit 2/2.1 Strings/Lab - Strings.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Unit 2/2.10 Auto Layout and Stack Views/AutoLayoutPractice/AutoLayoutPractice.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | AutoLayoutPractice.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/exercise-3.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Collection Functions
4 |
5 | let testScores = [65, 80, 88, 90, 47]
6 |
7 | let testScoresPlusOne = testScores.map({$0 + 1})
8 | print(testScoresPlusOne)
9 |
10 | let schoolSubjects = ["Math", "Computer Science", "Gym", "English", "Biology"]
11 |
12 | let longSubjects = schoolSubjects.filter({$0.count > 4})
13 | print(longSubjects)
14 |
15 | let damageTaken = [25, 10, 15, 30, 20]
16 |
17 | let remainingHealth = damageTaken.reduce(100, {$0 - $1})
18 | print(remainingHealth)
19 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/forward.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "forward.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "forward@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "forward@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframe/Assets.xcassets/reverse.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "reverse.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "reverse@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "reverse@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/InterfaceBuilderBasics/InterfaceBuilderBasics.xcodeproj/xcuserdata/michael.westerbyibm.com.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | InterfaceBuilderBasics.xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Unit 1/1.1 Introduction to Swift and Playgrounds/Lab - Introduction.playground/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Lab - Introduction (Playground).xcscheme
8 |
9 | isShown
10 |
11 | orderHint
12 | 0
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/Lab - Loops.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-1.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - For-In Loops
4 |
5 | for index in 1...100 {
6 | print(index)
7 | }
8 |
9 | // ------
10 |
11 | let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
12 |
13 | for (index, letters) in alphabet.enumerated() {
14 | print("\(index): \(letters)")
15 | }
16 |
17 | // ------
18 |
19 | let states: [String: String] = ["Alabama": "Montgomery", "Alaska": "Juneau", "Arizona": "Phoenix"]
20 |
21 | for (stateName, stateCaptial) in states {
22 | print("\(stateCaptial) is the captial of \(stateName).")
23 | }
24 |
--------------------------------------------------------------------------------
/Unit 1/1.2 Constants, Variables and Data Types/Lab - Constants and Variables.playground/xcuserdata/michael.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | Lab - Constants and Variables (Playground).xcscheme
8 |
9 | isShown
10 |
11 | orderHint
12 | 0
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/Lab - Optionals.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/exercise-2.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Finding a Heart Rate
4 |
5 | var heartRate: Int? = nil
6 | print(heartRate)
7 |
8 | heartRate = 74
9 | print(heartRate)
10 |
11 | let oldHR1 = 80
12 | let oldHR2 = 76
13 | let oldHR3 = 79
14 | let oldHR4 = 70
15 |
16 | var heartRateSum: Int = oldHR1 + oldHR2 + oldHR3 + oldHR4
17 | var hrAverage: Int
18 |
19 | if let currentHeartRate = heartRate {
20 | heartRateSum += currentHeartRate
21 | hrAverage = heartRateSum / 5
22 | } else {
23 | hrAverage = heartRateSum / 4
24 | }
25 |
26 | print(hrAverage)
27 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/Lab - Functions.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-2.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Workout Tracking
4 |
5 | struct RunningWorkout {
6 | var distance: Double = 0.0
7 | var time: Double = 0.0
8 | var elevation: Double = 0.0
9 | }
10 |
11 | var firstRun = RunningWorkout()
12 | print(firstRun.distance)
13 | print(firstRun.time)
14 | print(firstRun.elevation)
15 |
16 | firstRun.distance = 2396
17 | firstRun.time = 15.3
18 | firstRun.elevation = 94
19 |
20 | print("In your first run, you travelled \(firstRun.distance)m in \(firstRun.time) minutes and gained \(firstRun.elevation) metres elevation.")
21 |
22 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/iTunesSearch/iTunesSearch/URL+Helpers.swift:
--------------------------------------------------------------------------------
1 | //
2 | // URL+Helpers.swift
3 | // iTunesSearch
4 | //
5 | // Created by Michael Westerby on 06/06/2020.
6 | // Copyright © 2020 Caleb Hicks. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension URL {
12 | func withQueries(_ queries:[String: String]) -> URL? {
13 | var components = URLComponents(url: self, resolvingAgainstBaseURL: true)
14 | components?.queryItems = queries.map {
15 | URLQueryItem(name: $0.0, value: $0.1)
16 | }
17 | return components?.url
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/exercise-6.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Workout or Nil
4 |
5 | struct Workout {
6 | var startTime: Double
7 | var endTime: Double
8 |
9 | init?(startTime: Double, endTime: Double) {
10 | if((endTime - startTime) < 10) {
11 | return nil
12 | } else {
13 | self.startTime = startTime
14 | self.endTime = endTime
15 | }
16 | }
17 | }
18 |
19 | var workout1 = Workout(startTime: 50, endTime: 70)
20 | var workout2 = Workout(startTime: 80, endTime: 85)
21 |
22 | print(workout1?.startTime)
23 | print(workout2?.startTime)
24 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/EmojiDictionary/EmojiDictionary/Emoji.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Emoji.swift
3 | // EmojiDictionary
4 | //
5 | // Created by Michael Westerby on 07/05/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct Emoji {
12 | var symbol: String
13 | var name: String
14 | var description: String
15 | var usage: String
16 |
17 | init(symbol: String, name: String, description: String, usage: String) {
18 | self.symbol = symbol
19 | self.name = name
20 | self.description = description
21 | self.usage = usage
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/exercise-5.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Control Transfer Statements
4 |
5 | let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
6 |
7 | for (index, letters) in alphabet.enumerated() {
8 | if (index % 2 == 0) {
9 | print("\(letters)")
10 | }
11 | }
12 |
13 | // -------
14 |
15 | let states: [String: String] = ["Alabama": "Montgomery", "Alaska": "Juneau", "Arizona": "Phoenix"]
16 |
17 | for (stateName, stateCaptial) in states {
18 | print("\(stateCaptial) is the captial of \(stateName).")
19 | if stateName == "Arizona" {
20 | print("I found my home!")
21 | break
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/EmojiDictionary/EmojiDictionary/Emoji.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Emoji.swift
3 | // EmojiDictionary
4 | //
5 | // Created by Michael Westerby on 07/05/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | struct Emoji {
12 | var symbol: String
13 | var name: String
14 | var description: String
15 | var usage: String
16 |
17 | init(symbol: String, name: String, description: String, usage: String) {
18 | self.symbol = symbol
19 | self.name = name
20 | self.description = description
21 | self.usage = usage
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/exercise-3.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Create a Protocol
4 |
5 | protocol Vehicle {
6 | var numberOfWheels: Int {get}
7 | func drive()
8 | }
9 |
10 | struct Car: Vehicle {
11 | var numberOfWheels: Int = 4
12 |
13 | func drive() {
14 | print("Vroom, vroom!")
15 | }
16 | }
17 |
18 | var car1 = Car()
19 |
20 | print(car1.numberOfWheels)
21 | car1.drive()
22 |
23 | struct Bike: Vehicle {
24 | var numberOfWheels: Int = 2
25 |
26 | func drive() {
27 | print("Begin pedaling!")
28 | }
29 | }
30 |
31 | var bike1 = Bike()
32 |
33 | print(bike1.numberOfWheels)
34 | bike1.drive()
35 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/exercise-3.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Parameters and Argument Labels
4 |
5 | func introduction(name: String, home: String, age: Int) {
6 | print("\(name), \(age), is from \(home).")
7 | }
8 |
9 | introduction(name: "Michael", home: "Rugby", age: 23)
10 |
11 | // ------------
12 |
13 | func almostAddition(_ firstNumber: Int, to secondNumber: Int) {
14 | print((firstNumber + secondNumber) / 2)
15 | }
16 |
17 | almostAddition(4, to: 10)
18 |
19 | // ------------
20 |
21 | func multiply(_ firstNumber: Double, by secondNumber: Double) {
22 | print(firstNumber * secondNumber)
23 | }
24 |
25 | multiply(4.2, by: 3.8)
26 |
27 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-10.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Type Properties and Methods
4 |
5 | struct RunningWorkout4 {
6 | static let meterInFeet: Double = 3.28084
7 | static let mileInMeters: Double = 1600.0
8 | var distance: Double
9 | var time: Double
10 | var elevation: Double
11 |
12 | static func mileTimeFor(distance: Double, time: Double) -> Double {
13 | let distanceInMiles = distance / 1600
14 | return distanceInMiles * time
15 | }
16 | }
17 |
18 | print(RunningWorkout4.mileTimeFor(distance: 1000, time: 12))
19 | print(RunningWorkout4.meterInFeet)
20 | print(RunningWorkout4.mileInMeters)
21 |
22 |
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/InterfaceBuilderBasics/InterfaceBuilderBasics/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // InterfaceBuilderBasics
4 | //
5 | // Created by Michael Westerby on 14/04/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ViewController: UIViewController {
12 |
13 | @IBOutlet var mainLabel: UILabel!
14 | override func viewDidLoad() {
15 | super.viewDidLoad()
16 | // Do any additional setup after loading the view.
17 | }
18 |
19 | @IBAction func changeTitle(_ sender: Any) {
20 | mainLabel.text = "This app rocks!"
21 | }
22 |
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-9.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Type Properties and Methods
4 |
5 | struct User2 {
6 | static var currentUser = User2(userName: "Michael", email: "michael@email.com", age: 23)
7 | var userName: String
8 | var email: String
9 | var age: Int
10 |
11 | static func logIn(user: User2) {
12 | currentUser = user
13 | print("\(user.userName) has logged in.")
14 | }
15 | }
16 |
17 | print(User2.currentUser.userName)
18 | print(User2.currentUser.email)
19 | print(User2.currentUser.age)
20 |
21 | var user2 = User2(userName: "James", email: "james@email.com", age: 23)
22 | User2.logIn(user: user2)
23 |
24 |
--------------------------------------------------------------------------------
/Unit 1/1.8 Interface Builder Basics/IBBasics/IBBasics/ViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.swift
3 | // IBBasics
4 | //
5 | // Created by Michael Westerby on 14/04/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class ViewController: UIViewController {
12 |
13 | @IBOutlet var myButton: UIButton!
14 | override func viewDidLoad() {
15 | super.viewDidLoad()
16 | // Do any additional setup after loading the view.
17 | myButton.setTitleColor(.red, for: .normal)
18 | }
19 |
20 | @IBAction func buttonPressed(_ sender: Any) {
21 | print("The button was pressed")
22 | }
23 |
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/exercise-1.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Create Functions
4 |
5 | func introduceMyself() {
6 | print("Hello, my name is Michael")
7 | }
8 |
9 | introduceMyself()
10 |
11 | // ------------
12 |
13 | func magicEightBall() {
14 | let randomNum = arc4random_uniform(UInt32(5))
15 | switch randomNum {
16 | case 1:
17 | print("Number 1 was generated")
18 | case 2:
19 | print("Number 2 was generated")
20 | case 3:
21 | print("Number 3 was generated")
22 | case 4:
23 | print("Number 4 was generated")
24 | default:
25 | print("I don't know that number")
26 | }
27 | }
28 |
29 | magicEightBall()
30 |
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/exercise-2.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Passing Closures as Arguments and Syntactic Sugar
4 |
5 | func forwards (name1: String, name2: String) -> Bool {
6 | print(name1)
7 | print(name2)
8 | return name1 < name2
9 | }
10 |
11 | var friends: [String] = ["James", "Joe", "Craig", "Matt", "Judith", "Izzy"]
12 |
13 | var sortedCollection1 = friends.sorted(by: forwards(name1:name2:))
14 | print(sortedCollection1)
15 |
16 | var sortedCollection2 = friends.sorted { (name1: String, name2: String) -> Bool in
17 | return name1 < name2
18 | }
19 | print(sortedCollection2)
20 |
21 | var sortedCollection3 = friends.sorted { return $0 < $1 }
22 | print(sortedCollection3)
23 |
--------------------------------------------------------------------------------
/Unit 1/1.3 Operators/Lab - Operators.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Unit 3/3.1 Optionals/exercise-4.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Food Functions
4 |
5 | struct Meal {
6 | var food: [String]
7 | var calories: Int
8 | }
9 |
10 | var meals: [String: Meal] = ["Breakfast": Meal(food: ["Bagel", "Orange Juice", "Egg Whites"], calories: 530)]
11 |
12 | func getFood(meal: String) -> Meal? {
13 | let foodConsumed: Meal? = meals[meal]
14 | if let mealRecored = foodConsumed {
15 | return mealRecored
16 | }
17 | return nil
18 | }
19 |
20 | print(getFood(meal: "Breakfast"))
21 | print(getFood(meal: "Lunch"))
22 |
23 | func getMealLog() -> [String: Any]? {
24 | return UserDefaults.standard.dictionary(forKey: "mealLog")
25 | }
26 |
27 | print(getMealLog())
28 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/EmployeeRoster/EmployeeRoster/Employee.swift:
--------------------------------------------------------------------------------
1 |
2 | import Foundation
3 |
4 | enum EmployeeType {
5 | case exempt
6 | case nonExempt
7 | case partTime
8 |
9 | static let all: [EmployeeType] = [.exempt, .nonExempt, .partTime]
10 |
11 | func description() -> String {
12 | switch self {
13 | case .exempt:
14 | return "Exempt Full Time"
15 | case .nonExempt:
16 | return "Non-exempt Full Time"
17 | case .partTime:
18 | return "Part Time"
19 | }
20 | }
21 | }
22 |
23 | struct Employee {
24 |
25 | var name: String
26 | var dateOfBirth: Date
27 | var employeeType: EmployeeType
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/Lab - Functions.playground/Pages/5. Exercise - Return Values.xcplaygroundpage/Contents.swift:
--------------------------------------------------------------------------------
1 | /*:
2 | ## Exercise - Return Values
3 |
4 | Write a function called `greeting` that takes a `String` argument called name, and returns a `String` that greets the name that was passed into the function. I.e. if you pass in "Dan" the return value might be "Hi, Dan! How are you?" Use the function and print the result.
5 | */
6 |
7 |
8 | /*:
9 | Write a function that takes two `Int` arguments, and returns an `Int`. The function should multiply the two arguments, add 2, then return the result. Use the function and print the result.
10 | */
11 |
12 |
13 | //: [Previous](@previous) | page 5 of 6 | [Next: App Exercise - Separating Functions](@next)
14 |
--------------------------------------------------------------------------------
/Unit 1/1.4 Control Flow/Lab - Control Flow.playground/contents.xcplayground:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/exercise-2.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Activity Challenge
4 |
5 | var walkingChallenges: [String] = ["Walk 3 miles a day", "Walk 5 times a day"]
6 | var runningChallenges: [String] = ["Run 4 km in a day", "Run 3 times a week"]
7 |
8 | var challenges = [walkingChallenges, runningChallenges]
9 |
10 | print(challenges[1][0])
11 |
12 | challenges.removeAll()
13 |
14 | print(challenges)
15 |
16 | var commitedChallenges: [String] = [walkingChallenges[0]]
17 |
18 | if (commitedChallenges.isEmpty) {
19 | print("Please commit to a challenge")
20 | } else if (commitedChallenges.count == 1) {
21 | print("The challenge you have chosen is \(commitedChallenges[0])")
22 | } else {
23 | print("You have chosen multiple challenges.")
24 | }
25 |
--------------------------------------------------------------------------------
/Unit 2/2.5 Collections/exercise-3.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // Exercise - Dictionaries
4 |
5 | var daysInMonths: [String: Int] = ["January": 31, "February": 28, "March": 31]
6 | print(daysInMonths)
7 |
8 | daysInMonths["April"] = 30
9 | print(daysInMonths)
10 |
11 | daysInMonths.updateValue(29, forKey: "February")
12 | print(daysInMonths)
13 |
14 | if let daysInJan = daysInMonths["January"] {
15 | print("January has \(daysInJan) days")
16 | }
17 |
18 | // ---------
19 |
20 | let shapesArray = ["Circle", "Square", "Triangle"]
21 | let colorsArray = ["Red", "Green", "Blue"]
22 |
23 | var shapesAndColors: [String: [String]] = ["Shapes": shapesArray, "Colors": colorsArray]
24 | print(shapesAndColors)
25 |
26 | if let colors = shapesAndColors["Colors"] {
27 | print(colors[2])
28 | }
29 |
--------------------------------------------------------------------------------
/Unit 4/4.1 Protocols/exercise-4.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Similar Workouts
4 |
5 | protocol Workout {
6 | var distance: Double { get set }
7 | var time: Double { get set }
8 | }
9 |
10 | struct RunningWorkout: Workout {
11 | var distance: Double = 4.4
12 | var time: Double = 3.2
13 | }
14 |
15 | struct SwimmingWorkout: Workout {
16 | var distance: Double = 5.3
17 | var time: Double = 2.2
18 | }
19 |
20 |
21 | var runningWorkout = RunningWorkout()
22 | var swimmingWorkout = SwimmingWorkout()
23 |
24 | func simpleWorkoutDescription(workout: Workout) {
25 | print("You went \(workout.distance) meters in \(workout.time) seconds.")
26 | }
27 |
28 | simpleWorkoutDescription(workout: runningWorkout)
29 | simpleWorkoutDescription(workout: swimmingWorkout)
30 |
--------------------------------------------------------------------------------
/Unit 2/2.3 Structures/exercise-6.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - Workout Functions
4 |
5 | struct RunningWorkout2 {
6 | var distance: Double
7 | var time: Double
8 | var elevation: Double
9 |
10 | func postWorkoutStats() {
11 | print("You ran for \(distance)m in \(time) minutes and gained \(elevation) metres elevation.")
12 | }
13 | }
14 |
15 | var secondRun = RunningWorkout2(distance: 1000, time: 10, elevation: 40)
16 | secondRun.postWorkoutStats()
17 |
18 | // ---------
19 |
20 | struct Steps {
21 | var steps: Int
22 | var goal: Int
23 |
24 | mutating func takeStep() {
25 | self.steps = self.steps + 1
26 | }
27 | }
28 |
29 | var steps = Steps(steps: 0, goal: 10)
30 | print(steps.steps)
31 | steps.takeStep()
32 | print(steps.steps)
33 |
34 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ISpy/ISpyTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ISpy/ISpyUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 1/1.2 Constants, Variables and Data Types/Lab - Constants and Variables.playground/Pages/2. App Exercise - Step Goal.xcplaygroundpage/Contents.swift:
--------------------------------------------------------------------------------
1 | /*:
2 | ## App Exercise - Step Goal
3 |
4 | >These exercises reinforce Swift concepts in the context of a fitness tracking app.
5 |
6 | Your fitness tracking app needs to know goal number of steps per day. Create a constant `goalSteps` and set it to 10000.
7 | */
8 | let goalSteps = 10_000
9 |
10 | /*:
11 | Use two `print` functions to print two separate lines to the console. The first line should say "Your step goal for the day is:", and the second line should print the value of `goalSteps` by referencing your constant.
12 | */
13 | print("Your step goal for the day is:")
14 | print(goalSteps)
15 | //: [Previous](@previous) | page 2 of 10 | [Next: Exercise - Variables](@next)
16 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/exercise-2.playground/Contents.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 |
3 | // App Exercise - A Functioning App
4 |
5 | var steps = 0
6 |
7 | func incrementSteps() {
8 | steps = steps + 1
9 | print(steps)
10 | }
11 |
12 | incrementSteps()
13 | incrementSteps()
14 | incrementSteps()
15 |
16 | // ------------
17 |
18 | let goal = 10000
19 |
20 | func progressUpdate() {
21 | let percentOfGoal: Double = (Double(steps)/Double(goal)) * 100
22 |
23 | if percentOfGoal < 10 {
24 | print("You're off to a good start.")
25 | } else if percentOfGoal < 50 {
26 | print("You're almost halfway there!")
27 | } else if percentOfGoal < 90 {
28 | print("You're almost there!")
29 | } else if percentOfGoal > 100 {
30 | print("You beat your goal!")
31 | }
32 | }
33 |
34 | progressUpdate()
35 |
--------------------------------------------------------------------------------
/Unit 2/2.6 Loops/Lab - Loops.playground/Pages/1. Exercise - For-In Loops.xcplaygroundpage/Contents.swift:
--------------------------------------------------------------------------------
1 | /*:
2 | ## Exercise - For-In Loops
3 |
4 | Create a for-in loop that loops through values 1 to 100, and prints each of the values.
5 | */
6 |
7 |
8 | /*:
9 | Create a for-in loop that loops through each of the characters in the `alphabet` string below, and prints each of the values alongside the index.
10 | */
11 | let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
12 |
13 |
14 | /*:
15 | Create a `[String: String]` dictionary, where the keys are names of states and the values are their capitals. Include at least three key/value pairs in your collection, then use a for-in loop to iterate over the pairs and print out the keys and values in a sentence.
16 | */
17 |
18 |
19 | //: page 1 of 6 | [Next: App Exercise - Movements](@next)
20 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/SpacePhoto/SpacePhoto/URL+Helpers.swift:
--------------------------------------------------------------------------------
1 | //
2 | // URL+Helpers.swift
3 | // SpacePhoto
4 | //
5 | // Created by Michael Westerby on 05/06/2020.
6 | // Copyright © 2020 Michael Westerby. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension URL {
12 | func withQueries(_ queries: [String: String]) -> URL? {
13 | var components = URLComponents(url: self, resolvingAgainstBaseURL: true)
14 | components?.queryItems = queries.map
15 | { URLQueryItem(name: $0.0, value: $0.1) }
16 | return components?.url
17 | }
18 |
19 | func withHTTPS() -> URL? {
20 | var components = URLComponents(url: self, resolvingAgainstBaseURL: true)
21 | components?.scheme = "https"
22 | return components?.url
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Unit 2/2.2 Functions/Lab - Functions.playground/Pages/1. Exercise - Create Functions.xcplaygroundpage/Contents.swift:
--------------------------------------------------------------------------------
1 | /*:
2 | ## Exercise - Create Functions
3 |
4 | Write a function called `introduceMyself` that prints a brief introduction of yourself. Call the function and observe the printout.
5 | */
6 |
7 |
8 | /*:
9 | Write a function called `magicEightBall` that generates a random number and then uses either a switch statement or if-else-if statements to print different responses based on the random number generated. `let randomNum = Int.random(in: 0...4)` will generate a random number from 0 to 4, after which you can print different phrases corresponding to the number generated. Call the function multiple times and observe the different printouts.
10 | */
11 |
12 |
13 | //: page 1 of 6 | [Next: App Exercise - A Functioning App](@next)
14 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/Meal Tracker/Meal TrackerTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/Meal Tracker/Meal TrackerUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/Contest/ContestTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/Contest/ContestUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ScrollingForm/ScrollingFormTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.4 Scroll Views/ScrollingForm/ScrollingFormUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/EmojiDictionary/EmojiDictionaryTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.7 Saving Data/EmojiDictionary/EmojiDictionaryTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.5 Table Views/EmojiDictionary/EmojiDictionaryUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.7 Saving Data/EmojiDictionary/EmojiDictionaryUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframeTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 2/2.8 Displaying Data/Hello/HelloTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 5/5.3 Practical Animation/MusicWireframe/MusicWireframeUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 2/2.8 Displaying Data/Hello/HelloUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/EmojiDictionary/EmojiDictionaryTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.6 Intermediate Table Views/EmojiDictionary/EmojiDictionaryUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/HotelManzana/HotelManzanaTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 4/4.9 Building Complex Input Screens/HotelManzana/HotelManzanaUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 5/5.1 Closures/Lab - Closures.playground/Pages/1. Exercise - Create Closures.xcplaygroundpage/Contents.swift:
--------------------------------------------------------------------------------
1 | /*:
2 | ## Exercise - Create Closures
3 |
4 | Create a closure assigned to a constant `blankClosure` that has no parameters and no return value.
5 | */
6 |
7 |
8 | /*:
9 | Create a closure assigned to a constant `fourClosure` that has no parameters and returns an `Int`. The body of the closure should always return the value 4. Call the closure four times.
10 | */
11 |
12 |
13 | /*:
14 | Create a closure assigned to a constant `greeting` that accepts a `name` string argument with no return value. Within the body of the closure, print the argument. Call the closure four times using "Gary", "Jane", "Rick", and "Beth" as arguments.
15 | */
16 |
17 |
18 | //: page 1 of 3 | [Next: Exercise - Passing Closures as Arguments and Syntactic Sugar](@next)
19 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/SpacePhoto/SpacePhotoTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Unit 5/5.6 Working with the Web - Concurrency/SpacePhoto/SpacePhotoUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------