- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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