iOS Application Development (2020/21)

 

 

  Class Information

Lectures Mon, 12:30 - 14:00
(starting 26.10.2020)
  Tue, 10:30 - 12:00
(starting 27.10.2020)
  2222, i10 Seminar room
Language English
Credits 6

 Exams

Oral Exam TBA

In this course, you'll learn to develop mobile applications for Apple's iOS devices: iPhone and iPad. We'll also touch upon developing for the Apple Watch and appleTV.


This semester, the class takes place online via Zoom video conferencing.

You need a Mac running Xcode 12 with macOS Catalina or later and an iOS device running iOS 14 in order to participate. We have a number of devices available for loaning out.


Apple 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 / MVVM, 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

 

This course has limited seating. You need to register to obtain a seat in this course. See the registration guide below for more information.

Contact

Prof. Dr. Jan
Borchers

Sebastian
Hueber

Adrian
Wagner

Syllabus

  • Introduction

    • Lecture 1: Introduction, Mobile Application Styles

      Mon, Oct 26th

  • Lectures

    • Lecture 2: Swift Introduction, Interface Builder, Actions and Outlets

      Tue, Oct 27th

    • Lecture 3: MVC, Optionals, Types, Widgets

      Mon, Nov 2nd

    • Lecture 4: Navigation and Lifecycle, Presentation Styles and Presentation Controllers, Segues

      Tue, Nov 3rd

    • Lecture 5: AutoLayout

      Mon, Nov 9th

    • Lecture 6: Lifecycle, Animation, TraitCollections

      Tue, Nov 10th

    • Lecture 7: Protocols, Table Views, Scroll Views

      Mon, Nov 16th

    • Lecture 8: Lazy, Closures, Custom Views

      Tue, Nov 17th

    • Lecture 9: SwiftUI: Editor, Basics, MVVM

      Mon, Nov 23rd

    • Lecture 10: SwiftUI: Bindings, StateObject, NavigationLink, UIHostingController

      Tue, Nov 24th

    • Lecture 11: Networking and Persistence

      Mon, Nov 30th

  • Seminars

    • Student Seminar Presentations

      Tue, Dec 1st – Dec 15th

  • Project

    • Project Kickoff

      Mon, Dec 21st

    • Project Preparation Meetings

      Mon, Jan 11th – Tue, Feb 2nd

    • Project Presentations

      Mon, Feb 8th + Tue, Feb 9th

  • Oral Exams

    • Individual 15min Oral Exams

      TBA

Grading

Your grade will be calculated as follows:

Seminar 17%
Project 50%
Oral Exam 33%

Course Structure

  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 (~3 weeks): Students will prepare and present information about tasks that can be solved with a specific iOS framework (e.g., CoreData, Rendering frameworks, MapKit, ...). Both weekly timeslots are used for student presentations & preparations
  3. Project (~5 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.

Fields of Study

  • Informatik (B.Sc.)/Wahlpflichtbereich Angewandte Informatik
  • Informatik (M.Sc.)/Angewandte Informatik
  • Technik-Kommunikation (M.A.)/2. Hauptfach (Technisches Fach)/Grundlagen der Informatik/isierung Informatik
  • TK 2. Fach-Grundlagen der Informatik (M.Sc.)/Wahlpflicht Informatik/Angewandte Informatik
  • Media Informatics (M.Sc.)/Multimedia Technologie
  • Software Systems Engineering (M.Sc.)/Applied Computer Science
  • Data Science (M.Sc.)/Computer Science and Mathematics/Computer Science

Course Allocation and Registration Guide

Number of SWS: V3+Ü2 (Aachen)
ECTS Credits: 6
Course language: English for all lectures, seminars, and exams.

We only have 45 seats available for this course. To have a chance for a seat in this course, you have to complete the following steps:

  • Register for the course in RWTHOnline by Friday, 23.10.2020.
  • Sign the Declaration of Compliance and send it to Sebastian until Tuesday, 27.10.2020 1pm.
  • Form a group of 3 students in Moodle until Thursday, 29.10.2020 at the latest.

Previous Offerings

WS19/20WS18/19WS17/18WS15/16 – WS14/15WS13/14WS12/13 – WS11/12 – WS11/12WS09/10

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.