Unit Outline

Unit 1
  • Student can identify and use documentation to implement UIKit elements
  • Student can place views on the screen and update their properties
  • Student can identify and describe the role of View Controllers
  • Student can identify and implement different Controls
  • Student can identifiy and use Control Events to execute code
  • Student can identify and understand the pros and cons of a variety of navigation hierarchies
  • Student can identify and implement Navigation Controllers
  • Student can identify and implement a Tab Bar Controller based view hierarchy
  • Student can identify, describe, and implement storyboard segues and unwind segues
  • Student can identify, describe, and use Stack Views and basic Auto Layout to place views
  • Student can use size classes to design effectively for multiple devices
  • Student can identify, describe, and implement the protocol design pattern
  • Student can identify and describe the importance of Table Views
  • Student can use the UITableViewDataSource protocol functions to provide data to an instance of UITableView
  • Student can describe and use the UITableViewDelegate function didSelectRowAtIndexPath to respond to user interaction
  • Student can describe, identify, and implement proper Model-View-Controller principles
  • Student can create a custom class for storing model data
  • Student can store data on and retrieve data from a model controller object
  • Student can identify, describe, and implement the singleton pattern
  • Student can make simple model objects which conform to the Codable protocol
  • Student can persist data between app launches using Codable and plists
  • Student can use CodingKeys to customize mapping between properties and JSON keys
Unit 2
  • Student can implement intermediate Table View features
  • Student can identify, display, and respond to user responses from an Alert Controller
  • Student can instantiate, schedule, and handle Local Notifications
  • Student can use basic best practices for proper database design
  • Student can describe and implement the Core Data stack from scratch
  • Student can describe, identify, and implement proper Model-View-Controller principles
  • Student can systematically plan out each class needed for an MVP product
  • Student can use predicates to filter collections
Unit 3
  • Student can identify and use closure syntax to work with network requests and other block based APIs
  • Student can identify, describe, and use documentation to interact with REST APIs
  • Student can use URLSession to download and serialize network data
  • Student can identify and use closure syntax to work with network requests and other block based APIs
  • Student can identify, describe, and use documentation to interact with REST APIs
  • Student can use URLSession to download and serialize network data
  • Student can identify and use closure syntax to work with network requests and other block based APIs
  • Student can identify, describe, and use documentation to interact with REST APIs
  • Student can use URLSession to download and serialize network data
  • Student can identify and use closure syntax to work with network requests and other block based APIs
  • Student can identify, describe, and use documentation to interact with REST APIs
  • Student can use URLSession to download and serialize network data
Unit 4
  • Student can identify and describe features of CloudKit, add CloudKit to an Xcode project, save and retrieve simple data from CloudKit
  • Student can create Push Notifications using CloudKit and CKSubscriptions
  • Student can use the CloudKit user APIs to implement user login
  • Student can create Push Notifications using CloudKit and CKSubscriptions
  • Student can submit an app through iTunes Connect for beta testing using TestFlight
  • Student can submit an app through iTunes Connect for distribution on the App Store
  • Student can use Fastlane to submit applications to Testflight and iTunes Connect
Unit 5
  • Student can describe the reference counting memory management model used in Swift and Objective-C
  • Student can describe what a retain cycle is, and how to use weak references to fix it
  • Student can describe how memory management in closures and blocks works
  • Student can submit an app through iTunes Connect for beta testing using TestFlight
  • Student can submit an app through iTunes Connect for distribution on the App Store
  • Student can use Fastlane to submit applications to Testflight and iTunes Connect
Unit 6
  • Student can recognize intentional user experience and visual design as core values of developing for Apple platforms
  • Student can create low-fidelity designs for quick iteration and to demonstrate user experience
  • Student can conduct a basic user interview to gather feedback on user experience
  • Student can break down a complete app UI to design each component
  • Student can use Auto Layout to place views programmatically
  • Student can animate View objects using animateWithDuration
  • Student can animate View objects using Core Animation
Group Project
  • Student can use git-flow to manage projects and work in a shared codebase
  • Student can follow best practices for code review to improve code
  • Student can identify, describe, and work in a sprint-based system for development
Employment Prep
  • Student can identify and describe best practices for finding open iOS jobs inside and outside of Utah
  • Student can answer common technical interview questions with clarity and accuracy
  • Student can present a professional resume and social media presence on LinkedIn, Github, and elsewhere
  • Student can follow best practices for accepting and negotiating an offer