For more information, see

This site is hosted via GitHub Pages, see sodascourse/sodascourse.github.io
Playgrounds and Sample projects are hosted via GitHub too, see sodascourse
You're welcome to submit issues and pull requests. Thanks.

Title Covered Topics Resources
2/25 Preface and Introduction to Mobile Platform Programming
  • Grading
  • Introduction to Apple's platforms
slides
3/3 The Swift Language
  • Variables and Types
  • Basic Data Types
  • Collection Data Types
  • Operators
  • Control Flow
  • Functions
  • Closures
slides
playgrounds
homework
extra reading
3/10 Xcode, Storyboard and MVC Pattern
  • Swift - Optional
  • Swift - Classes and Structures
  • Swift - Enums
  • Swift - Protocols and Extensions
  • Swift - Error Handling
  • Connections (Outlet and Action) in Storyboard
  • Create a single view app
slides
playgrounds
sample projects
extra reading
3/17 App Structure and UIKit
  • Swift - Working with Cocoa and Objective-C APIs
  • iOS App Lifecycle
  • File System
  • Introduction to View Controller and MVC Pattern
  • Communiation Patterns - Delegation
  • A simple code review from a homework 1 sample
slides
playgrounds
sample projects
extra reading
3/24 Table View and Navigation Controller
  • Introduction to Storyboard Segues
  • Navigation Controller
  • Table View
  • Property List
slides
sample projects
extra reading
3/31 Presentation of Human Interface Guideline
  • UI Design Guideline
  • iOS Human Interface Guideline
slides
extra reading
4/7 Midterm presentation of final team project proposals
4/14 ARC & Open Source Packages
  • Memory Management of Swift - ARC
  • Xcode build process
  • Using Open Source Packages with CocoaPods
slides
4/21 Auto Layout and Adaptivity
  • Auto Layout
  • Adaptive UI
  • View Controller Programming Guideline and Auto Layout Guide
slides
references
4/28 Communication Patterns & Gesture Recognizers
  • Responder Chain
  • Communication Patterns - Notification, KVO, and callbacks
  • Gesture Recognizers
slides
sample projects
homework
references
5/5 Concurrency & Networking
  • libdispatch
  • HTTP concept
  • Alamofire
slides
sample projects
playgrounds
5/12 Midterm presentation of final team project progress review
  • Using LLDB Debugger
  • Using Xcode Tests
  • Using Instrument Profiler
  • Using automation tools
  • Brief introduction to Objective-C
slides
5/19 School Celebration Week | 校慶
5/26 Swift 3.0, MapKit/CoreLocation, and CoreMotion
  • the "swiftenv"
  • MapKit and CoreLocation
  • CoreMotion
slides
sample projects
6/2 CoreGraphics Introduction
  • Introduction to CoreGraphics
playgrounds
6/9 Duanwu Festival | 端午節放假
6/16 Final presentation of team projects
6/23 [TBA]