Mobile App Programing


Class Outlines:

1. The basic skills and foundations in Swift4.
2. The simple iOS application
3. Sensing technology for mobile phones
4. AR technology in iOS


1. A Mac have Xcode 9.0+ installed (from the Mac App Store).
MacBook Pro, MacBook, and MacBook Air are recommended.
2. An Apple ID and a GitHub account.
3. An iOS device (minimum: iPhone 6s). (required)
4. Programming experience with Object-Oriented Languages, like Python, Java, or C++.


Date Title Topics Resources
2/28  228 Peace Memorial Day Class Registration
Registraion Form:>
3/7 Preface & Introduction Class announcement & Introduction to the platform and developer tools.
  • Preface
  • Introduction to Apple’s Platform
  • Introduction to Xcode
  • Git SCM tool
Keynote Slides:>
3/14 the Swift language – I
  • Literals, Variables, and Constants
  • Types
  • Operators
  • Functions
  • Control flows
  • Optionals
  • Collections
Keynote Slides:>
3/21 the Swift language – II
  • Error Handling
  • Enum
  • Struct and Class
  • Extensions
  • Protocols
Keynote Slides:>
3/28 the Swift language – III
  • Closures
  • Optional Chaining
  • Type Casting
  • Generics
  • Automatic Reference Counting (ARC)
  • Access Control
Keynote Slides:>
4/4 Spring Break

4/11 Your first iOS app
  • The first iOS app – Counter
  • UIView
  • Storyboard review
  • Case: Build a Note app
  • the MVC pattern
  • Using Auto Layout to layout views
  • Using Adaptivity APIs to create responsive UI
Keynote Slides:>
4/18 Design an iOS app
  • Lifecycle of UIViewController
  • Load Storyboard
  • Storyboard Segue
  • UINavigationController and UITableViewController
4/25 CHI Conference
5/2 ARKit
  • Introduce ARKit
  • Initialize AR Session
  • Visualize 3D content
  • Handle 3D Interaction and UI controls
  • Face-Based AR Experiences
Team Registration:
5/9 Midterm presentation – Proposal of the Final Project
  • 2-3 members for each team, register before the class of 5/9.
  • 7 min for presentation, and 3 min for Q&A. (Team based)
  • The presentation materials are not limited. Slides, videos, or other forms are acceptable.
    If you have digital materials, make sure they’re okay to play with your computer.
    I could lend my VGA adapter for Macs with mini display port or thunderbolt port.
  • The presentation should include a problem to be solved, but not just tech items you are interested in.
    It should also talk about who, when, where, why, what, and how to use this solution.
    You can provide a hand-draft or low-fi prototype of your app; Detail mockup/wireframe are not required,
    and also not suggested. If possible, you can also show your schedule/plan and related works
About the Design
5/16  iOS Library and Framework
  • Library and Framework
  • CocoaPods
  • Pod init and install
  • WorkSpace
  • Example – Firebase
  • Using Swift and Objective-C in the same project
5/23 Advanced Topics:

Communication Patterns

  • Target-Action pattern
  • Delegate pattern
  • Notification pattern
  • KVO, Key-Value Observing, pattern
Sample Code:
5/30 Advanced Topics:

Sensing Technologies

  • Gesture Recognizer
  • Accelerometers
  • Camera
  • GPS
Sample Code:
6/6 Final Project – Technical Sharing
  • Technical Sharing for your final project.
  • Each team has 12 minutes to share
    one technical topic and 1 minutes to Q&A
  • Any topic you found interesting
  • Scores come from evaluation form
Registration Form:
Evaluation Form:
6/13 Final Project Demo

6/20 No Class –

Github Readme and Wiki as Report