ORIENTATION

Intros
Name
YOUR FAVORITE APP
Why You're Here
2 Polished, functional apps on the app store
Important things you should expect
- You should expect to struggle
- You should expect to feel dumber than others
- You should expect to feel overwhelmed
- You should expect to work harder than you ever have before
The barrier to entry is high, we are here to get you there.
What are you paying for?
Expert teachers
Excellent mentors
Modern, project-based, refined curriculum
24/7 hack space
Network + alumni
What are you not paying for?
24/7 access to teachers, mentors
Job
A static skillset
A personalized, 1:1 experience
Do's 👍
- Respect peers, students, mentors
- Go "all in"
- Have fun
- Build relationships, not a competition
- Work with your mentor
- Every single stretch problem, mini project, repo
Don'ts 👎
- Miss class (email in case of emergency)
- Leave early
- Mess with the learning environment
- Compare yourself to others
- In-class relationships
- Interview for jobs prior to end of class
- Drugs/alcohol
If you miss 3 days for any reason, you will be deferred to a future cohort.
Work hard, be nice to people.
Daily Schedule
9:00am: 👊 Stretch Problem
10:00am: 🖥 Guided Project
12:30pm: 🌭 Lunch
1:30pm: 📱 Project - Pair Programming
4:00pm: ✅ Code Review
5:00pm: 📱 Project
7:00pm: 📚 Preclass Work
Monday-Friday
9-5 is not enough.
Working With Your Mentors
- 20 minute rule
- Pair Programming
- Code review
- Mentor hours
Come Up With the Question
Your Mentors




Your Guest Instructors








Plus guest speakers.

Flipped
Video archive. Video quality. Deep dives. Black Diamonds.
Async
Units. Challenges. Repeat. Space. Advice.
The Projects
Flashlight. Introduction. Solar System. Journal. Timer. Task. Post. Calculator. Timeline. Journal-C. Chat. Capstone Project. Group Project. Portfolio.
Two Types of Feedback
-
Legitimate mistake or issue on DevMountain's part
-
Designed discomfort
2 Polished, functional apps on the app store
LEAD INSTRUCTOR
Caleb Hicks
LEAD Mentor
James Pacheco
STUDENT SUCCESS
Krissy Weekly
Feedback
read developer manuals and get started with the Swift Big Nerd Ranch Guide
identify, describe, and use Types, Constants, and Variables in Swift
identify, describe, and use Conditionals in Swift
identify, describe, and use Numbers in Swift
identify, describe, and use Switch in Swift
identify, describe, and use Loops in Swift
identify, describe, and use Strings in Swift
identify, describe, and use Optionals in Swift
identify, describe, and use Arrays in Swift
identify, describe, and use Dictionaries in Swift
identify, describe, and use Sets in Swift
identify, describe, and use Functions in Swift
identify, describe, and use Closures in Swift
identify, describe, and use Enumerations in Swift
identify, describe, and use Structs and Classes in Swift
identify, describe, and use Properties in Swift
identify, describe, and use Initialization in Swift
identify, describe, and use Value vs. Reference Types in Swift
identify, describe, and use Protocols in Swift
identify, describe, and implement the concepts covered in the Swift 2.0 Basics unit
identify, describe, and implement the concepts covered in the Swift 2.0 Collections and Control Flow unit
identify, describe, and implement the concepts covered in the Swift 2.0 Functions unit
identify, describe, and implement the concepts covered in the Object-Oriented Swift 2.0 unit
identify, describe, and implement the concepts covered in the Build a Simple iPhone App with Swift 2.0 unit
identify, describe, and implement the concepts covered in the Swift 2.0 Enumerations and Optionals unit
identify, describe, and implement the concepts covered in the Swift 2.0 Protocols unit
identify, describe, and implement the concepts covered in the Error Handling in Swift 2.0 unit
identify, describe, and implement the concepts covered in the Build a Vending Machine App in Swift 2.0 unit
identify, describe, and implement the concepts covered in the Intermediate Swift 2 unit
identify, describe, and implement the concepts covered in the Delegates in Swift 2 unit
identify, describe, and implement the concepts covered in the Build an Interactive Story App with Swift 2 unit
identify, describe, and implement the concepts covered in the Closures in Swift 2 unit
describe basic object-oriented programming concepts, and use Xcode complete relevant sample projects
use git to fork, clone, commit, and push work
create, size, and place View objects
identify, describe, and participate in classroom workflows
identify and use documentation to implement UIKit elements
place views on the screen and update their properties
identify and describe the role of View Controllers
identify and implement different Controls
identifiy and use Control Events to execute code
identify, describe, and implement storyboard segues and unwind segues
identify, describe, and use Stack Views and basic Auto Layout to place views
use Auto Layout to place views programmatically
use size classes to design effectively for multiple devices
use the Appearance protocol to set visual attributes
identify, describe, and implement the protocol design pattern
identify and describe the importance of Table Views
use the UITableViewDataSource protocol functions to provide data to an instance of UITableView
describe and use the UITableViewDelegate function didSelectRowAtIndexPath to respond to user interaction
implement intermediate Table View features
instantiate, place, and give data to a Collection View
implement intermediate Collection View features
describe, identify, and implement proper Model-View-Controller principles
create a custom class for storing model data
store data on and retrieve data from a model controller object
identify, describe, and implement the singleton pattern
convert a custom model object into a Dictionary
convert a Dictionary into a custom model object for use
identify and describe what can be stored in plist files
persist data between app launches using NSUserDefaults
describe and implement the Core Data stack from scratch
describe and implement NSNotifications to notify other classes of events
use predicates to filter collections
identify and understand the pros and cons of a variety of navigation hierarchies
identify and implement Navigation Controllers
identify and implement a Tab Bar Controller based view hierarchy
add a Search Controller and respond to search input
identify and use closure syntax to work with network requests and other block based APIs
animate View objects using animateWithDuration
animate View objects using Core Animation
identify, display, and respond to user responses from an Alert Controller
instantiate, schedule, and handle Local Notifications
identify and implement various Apple View Controllers
identify, describe, and use documentation to interact with REST APIs
use NSURLSession to download and serialize network data
identify features of Firebase, add Firebase to an Xcode project, save and retrieve simple data from Firebase
identify and describe best practices for structuring data in Firebase
use Firebase authentication and protected access for objects
use basic best practices for proper database design
identify features of CloudKit, add CloudKit to an Xcode project, save and retrieve simple data from CloudKit
create Push Notifications using CloudKit and CKSubscriptions
systematically plan out each class needed for an MVP product
identify and describe the best practices for planning minimum viable solutions
recognize intentional user experience and visual design as core values of developing for Apple platforms
create low-fidelity designs for quick iteration and to demonstrate user experience
conduct a basic user interview to gather feedback on user experience
use common resources to find design inspiration
submit an app through iTunes Connect for beta testing using TestFlight
submit an app through iTunes Connect for distribution on the App Store
create an in-app purchase on iTunes Connect
add an in-app purchase to the app that resolves with iTunes Connect
identify and describe deprecation and backwards compatibility
use Xcode debugging features to resolve bugs
take advantage of pair programming to work with and learn from other developers
use git-flow to manage projects and work in a shared codebase
identify, describe, and work in a sprint-based system for development
follow best practices for code review to improve code
identify and describe best practices for finding open iOS jobs inside and outside of Utah
answer common technical interview questions with clarity and accuracy
present a professional resume and social media presence on LinkedIn, Github, and elsewhere
follow best practices for accepting and negotiating an offer
continue learning iOS development after class ends
complete an individual capstone project and submit it to the App Store
complete a group capstone project and submit it to the App Store
104
objectives
Pair Programming

http://twitter.com/calebhicks/lists/ios

Tweetbot: Join the Community

Day One: Document your Learning
- Remember what you learned
- See how far you've come
- Set goals, review progress
- Inquisitive #27-37
- Under the Radar
- Developing Perspective

Overcast: Learn From Smart People
- Accidental Tech Podcast
- The Talk Show
- Core Intuition
- Canvas
- iPhreaks
- MacBreak Weekly
- Serial Season 1
DMiOS6 Orientation
By calebhicks
DMiOS6 Orientation
- 1,067