Course Outline
Below is an outline of the course, broken down by week. See mycourses for official due dates and dropboxes.
Week 1 (8/24 - 8/28)
Topics
- Intro to Course
- Intro to Xcode
- Intro Swift:
- Swift Language Guide
- Swift Guided Tour
var
andlet
- Primitive types:
Int, Float, Double, String, Boolean
println()
and string interpolation- Type Inference and Type Safety
- Type Aliases
- Intro to Playgrounds
Assignments
- SG-1 (Chapter 1 & 2 - ABC_HelloWorld App)
- Hello RIT parts 1 & 2
- Intro to Swift Video HW
Links
- Sample Code and Errata for course text
- store.apple.com - education
- wikipedia.org - Minimum Viable Product
- Here are some high quality iOS/Swift resources for you to check out:
- The iOS Dev Center has links to documentation, video, sample code, and the latest version of Xcode. You'll have to login with your developer account to access everything.
- The Swift Programming Language Tour and Language Guide
- The Swift Standard Library Reference
- Swift has 74 built-in functions in the standard library - only 7 of them are documented in the Swift online book. Here is a link to a page that documents them all.
- Apple's Start Developing iOS Apps Today is a great overview of how to develop iOS Apps. Unfortunately, it's written in Objective-C, so it's not as useful to us as it could be.
- The Big Nerd Ranch has an excellent blog on iOS and Android development here: http://www.bignerdranch.com/blog/
- raywenderlich.com has a large number of iOS and Swift tutorials: http://www.raywenderlich.com
- This site has a lot of links to nice Swift tutorials: http://www.learnswift.tips
- SpriteKit is Apple's API for creating 2D games. This site has a lot of links to nice SpriteKit tutorials: http://www.sprite-kit.com/tutorials/
- SceneKit is Apple's API for creating 3D games. It is new with iOS 8. Here's a tutorial on how to get started: http://www.raywenderlich.com/83748/beginning-scene-kit-tutorial
- There are also a lot of video tutorials and demos on YouTube - just ask the google.
Week 2 (8/31 - 9/4)
Topics
- Storyboards
- More Swift:
- Tuples
- Optionals and Unwrapping
- Collection classes:
Dictionary
&Array
discussed in SG-2 - Functions
- Random Numbers
- Loading files
- Playing sound with
AVAudioPlayer
NSError
- Installing an App onto iOS hardware
Demos
- iNoying
- iNoying2 - making it "bulletproof" with optionals and
NSError
Assignments
- SG-2 (Chapter 3 - ABC_TipCalculator App)
- Technobabble take-home practical
Links
- stackoverflow - What is an optional value in Swift
- stackoverflow - What does an exclamation mark mean in the swift language?
- matteomanferdini.com - Understanding Swift Optionals
- developer.apple.com -
AVAudioPlayer
- developer.apple.com -
NSBundle
- developer.apple.com -
NSString
- developer.apple.com -
NSString
Programming Guide - developer.apple.com -
UILabel
- developer.apple.com -
UIButton
- developer.apple.com -
UITextField
- developer.apple.com -
UISegmentedControl
Week 3 (9/7 - 9/11)
(Monday 9/7 - Labor Day - no classes)
Topics
- MVC - Model-View-Controller
- Creating a Model Class:
- Properties
- Initializers
- Methods
- Application Lifecycle & the App Delegate
- Notifications with
NSNotificationCenter
- Saving app state with
NSUserDefaults
- Auto Layout - setting constraints and previewing
- Commenting your code with
//MARK:
//TODO:
and//FIXME:
Demos
- CountR
- CountR plus Model
Assignments
- SG-3 (Chapter 5 - Passport App)
- SG-Apple Design Video
- HW - Technobabble with model class and state saving
Links
Week 4 (9/14 - 9/18)
Topics
- App Design Process
- Multi-screened apps
- Navigation Controller
- Table Views
Assignments
- App Design Group ICE (Magnetic Poetry)
- Dr. Magneto Magnetic Poetry ICE
- Project 1 - Magnetic Poetry App
- Project 1 Teams
- SG-4 (Adding Autolayout and Size Classes to the Passport App)
Links
- Mobile UI Design:
- View Controllers:
- Table View Controllers:
- Other:
Week 5 (9/21 - 9/25)
Topics
UITableView
andUITableViewController
- Delegation and DataSource Patterns
- A model class for your app's data
- Singelton Design Pattern
- Custom Notifications
Assignments
- Chapter 8 - Maps and Location
- Chapter 9 - Camera, Photos, and Social Networks
- Work on Project 1
Links
Week 6 (9/28 - 10/2)
Topics
- Getting a screenshot of a view
- Saving/Reading files & the iOS Documents Folder
- Swift Extensions and Computed Properties
Assignments
- Work on Project 1
Links
Week 7 (10/5 - 10/9)
Topics
UIAppearance
NSURLConnection
Assignments
- Last.fm Web Service HW
- Music Finder App Design HW
- Data Downloader HW
Links
UIAppearance
- UIAppearance Protocol
- developer.apple.com - Appearance Customization
- nshipster.com/uiappearance/
- www.appcoda.com - Customizing tab bar background appearance
Downloading Data
Week 8 (10/12 - 10/16)
(Monday 10/12 - No classes - Columbus Day)
(Tuesday 10/13 follows Monday schedule)
Topics
- Parsing a web service
UISearchBar
- Thursday 3/19 - Midterm Written Exam
Assignments
- ...
Links
- ...
Week 9 (10/19 - 10/23)
Topics
- ...
Assignments
- ...
Links
- ...
Week 10 (10/26 - 10/30)
Topics
- ...
Assignments
- ...
Links
- ...
Week 11 (11/2 - 11/6)
Topics
- ...
Assignments
- ...
Links
- ...
Week 12 (11/9 - 11/13)
Topics
- ...
Assignments
- ...
Links
- ...
Week 13 (11/16 - 11/20)
Topics
- ...
Assignments
- ...
Links
- ...
Week 14 (11/23-11/24)
(Class only meets Monday 11/23 - Thanksgiving Break Week)
Topics
- ...
Assignments
- ...
Links
- ...
Week 15 (11/30 - 12/4)
Topics
- ...
Assignments
- ...
Links
- ...
Week 16 (12/7 - 12/11)
Topics
- ...
Assignments
- ...
Links
- ...
Finals Week (Monday 12/14 - Friday 12/18)
You will present your final projects during finals week: Time/Date TBA