iOS Application Development (WS 2024/25)

  Class Information


Lectures Mon, 12:30-14:00
(starting Oct 7)
   
  Tue, 10:30-12:00
(starting Oct 8)
   
  Room 2.73
   
Language English
   
Credits
(BSc/MSc CS)
6

 Exams

Final PT1 03.02.2025
Final PT2 05.03.2025
Logo: Apple Authorized Training Center Eduction

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, Apple TV, and Apple Vision Pro.

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 the mouse and keyboard. Finally, iPhones and iPads 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 the concepts and syntax of Swift, which is also the language of choice for developing apps for macOS, watchOS, tvOS and visionOS.
  • You will understand the particular technical and design challenges of developing for mobile devices.
  • You will be able to design your apps with a look and feel following Apple’s Human Interface Guidelines.
  • You will learn to use both Apple's original UIKit and their modern, declarative SwiftUI framework to develop iOS apps.
  • Your implementation will use recommended design strategies like MVC / MVVM, delegation, and target-action.
  • You will learn how to use many of the key iOS SDKs like Foundation, SpriteKit, MapKit, AVFoundation, etc., and how to pick up more SDKs as you need them.
  • You will know how to make your apps interactive with animations, multimedia, graphics, sensors, etc.

You need a Mac running the latest versions of macOS and Apple's free Xcode IDE to participate. Xcode's device simulator is usually sufficient, although for some projects involving particular sensors or other hardware a recent iPhone is necessary. We have a few Macs and iPhones available for loaning.

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

 

Lecturers

Prof. Dr. Jan
Borchers

Kevin
Fiedler

Please contact This email address is being protected from spambots. You need JavaScript enabled to view it. with questions regarding this year's course.

Syllabus

This class follows an unusual format: We start with a few weeks of lectures to cover the fundamentals of iOS, Swift, UIKit, and SwiftUI. Afterwards, you will study and present a selected iOS framework in a small group, seminar-style. Finally, the last weeks of this course are dedicated to a longer software development group project in which you build a complete iOS app yourself.

  • Introduction

    • Lecture 1: Logistics and Intro to Mobile Development

      Tue, Oct 7th

  • Introduction to Swift & Seminar Topics

    • Lecture 2: Introduction to Swift & Seminar Topics

      Tue, Oct 8th

  • More Swift and Introduction to UIKit

    • Lecture 3: More Swift and Introduction to UIKit

      Tue, Oct 14th

  • Navigation and Workflow

    • Lecture 4: Navigation and Workflow

      Tue, Oct 15th

  • ViewController, AutoLayout, Protocol, Extensions

    • Lecture 5: ViewController, AutoLayout, Protocol, Extensions

      Tue, Oct 21st

  • ScrollViews and TableViews

    • Lecture 6: ScrollViews and TableViews

      Mon, Oct 22nd

  • Closures, Concurrency, and Combine

    • Lecture 7: Closures, Concurrency, and Combine

      Tue, Oct 28th

  • Saving Data, Animations, and Collection Views

    • Lecture 8: Saving Data, Animations, and Collection Views

      Mon, Oct 29th

  • Introduction to SwiftUI - Layout Views

    • Lecture 9: Introduction to SwiftUI - Layout Views

      Mon, Nov 4th

  • SwiftUI Layouts and PropertyWrappers

    • Lecture 10: SwiftUI Layouts and PropertyWrappers

      Tue, Nov 11th

  • SwiftUI Navigation, Animations, and more

    • Lecture 11: SwiftUI Navigation, Animations, and more

      Mon, Nov 12th

  • Seminar Presentations

    • Seminar Presentations

      Mandatory Attendance

      Nov 18th - Dec 9th

Grading

Your grade will be calculated as follows:

Seminar 20%
Project 50%
Exam 30%

Course Teaser

The lecture consists of three blocks:

  1. Lecture (~8 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. Attendance is mandatory.
  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. Attendance for the final presentation is mandatory.

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 42 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 Wednesday, 09.10.24 13:00.
  • Sign the Declaration of Compliance and upload it to this sciebo folder until Wednesday, 09.10.24 13:00. Name the file iOS_DoC_last name_matriculation_number.pdf
  • Form a group of 3 students in Moodle until 11.10.24 13:00 at the latest.

Previous Offerings

WS23/24WS22/23WS21/22WS20/21WS19/20WS18/19WS17/18WS15/16 – WS14/15WS13/14WS12/13 – WS11/12 – WS11/12WS09/10