iOS Application Development WS 2017/18 (Updated for iOS 11)

This course introduces students to mobile development with iOS libraries. The focus is on understanding and applying the human interface guidelines to improve the user experience, as well as grasping the underlying concepts of Swift language and framework design. We also introduce tvOS and watchOS guidelines and development.
The site contains additional learning materials and logistics.
The course is online: iTunesURSS


Video teaser of past course projects

News:

  • 20.09.17: Lectures at the beginning of the semester:
    • first lecture (introduction) is on Tuesday 10.10.17
    • second lecture is on Monday 23.10.17

Why Take This Course?


In this course, you'll learn to develop mobile applications for Apple's iOS devices: iPhone and iPad.

Apple's designed its mobile iOS operating system and its SDK from scratch. The iOS SDK follows many modern software development patterns, making it an ideal subject to learn how to design such SDKs today. Smartphones and tablets are also very interesting devices from an HCI perspective. The user interface has to deal with multitouch interaction, which presents new challenges to the software architecture, e.g., in event handling. With their rich sets of sensors, iOS devices also allow for input far beyond mouse and keyboard. Finally, both the iPhone and the iPad have simply become "in"-devices since their introduction. Didn't you ever want to show your own app to your friends on your iPhone?

  • At the end of the course you will be able to implement full iOS apps
  • You will know Swift: syntax, concepts, and how to use it correctly. Swift can be used to program iOS, macOS, watchOs, and tvOS
  • You will be able to design your apps to look and feel according to Apple’s Human Interface Guidelines
  • Your implementation will follow the recommended design strategies: MVC, delegation, target-action
  • You will be able to use the most important frameworks in Cocoa Touch (UIKit, Foundation, SpriteKit, MapKit, AVFoundation, etc.) and can easily learn more!
  • Your will know how to make your apps interactive: animations, multimedia, graphics, sensors, etc

Swift or Objective-C?

If you are starting, Swift. If you know Objective-C, then Swift as well. Objective-C is not going away any time soon, but Swift is slowly taking over as an independent language for all Apple devices(iOS, OS X, tvOS, watchOS). You can (almost) write all Swift apps now.

Structure

This course is structured in 3 different parts

  1. Lecture (~5 weeks): Here, we will introduce the fundamentals of iOS development (e.g., Swift fundamentals, mobile device development, event handling, ...). Both weekly timeslots are used for the lecture.
  2. Seminar (~4 weeks): Students will prepare and present information about a specific iOS framework (e.g., CoreData, Rendering frameworks, MapKit, ...). Both weekly timeslots are used for student presentations & preparations
  3. Project (~6 weeks): During this part, students will develop a larger application using the knowledge gained in the course. Both weekly timeslots are used for feedback sessions with the individual groups.


Due to the focus on hands-on development, we have a limit of 36 students for this class.

People

Course Registration

Details & Links will be added at a later date.
TK students: please drop Phil an email for registration information.

Schedule

Lecture Mon 14:15-15:45 Room 2222
Lecture Tue 10:15-11:45 Room 2222
  • first lecture (introduction) is on Tuesday 10.10.17
  • second lecture is on Monday 23.10.17

Exams

Details & Links will be added at a later date.

Grading

The final grade consists of three components:

A short presentation based on a written report  17%
A project in groups (2-4 Students) with a 20 minute presentation at the end of the semester  50%
An oral exam  33%
Course Grade 100%

Course Plan

LectureTopicPresenterMaterials
10.10. Logistics and Intro to Mobile Development Simon Slides
Video
23.10. Intro into Swift & Xcode (Unit 1) Simon Slides
Video
14.10. Swift & UIKit (Unit 2) Simon Slides
Video
30.10. Navigation and Workflow (Unit 3) Simon Slides
Video
06.11. SpriteKit, Protocols, App & ViewController life cycles Simon & Phil 1st Slides
2nd Slides
Video
07.11. TableView Demo Phil Slides
Video
13.11. Save Data, System View Controllers Phil Slides
No Video (recording error)
14.11. Building Complex Input Screens, Closures and Animations Simon & Phil Slides
Video
20.11. Working with the Web Simon Slides
Video



Previous courses: