iOS Application Development (2022/23)
Class Information
Lectures | Mon, 12:30 - 14:00 (starting 17.10.2022) |
Tue, 10:30 - 12:00 (starting 11.10.2022) |
|
Room 2222 | |
Language | English |
Credits (BSc/MSc CS) |
6 |
Exams
Final PT1 | Wed, Feb 15th |
Final PT2 | Tue, Mar 21st |
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 Apple TV.
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!
- You will know how to make your apps interactive: animations, multimedia, graphics, sensors, etc
Please note that you need a Mac compatible with macOS Big Sur or later and Xcode 13 or later in order to participate.
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
Please contact René Schäfer and Oliver Nowak (<
Syllabus
-
Introduction
-
Lecture 1: Logistics and Intro to Mobile Development
Tue, Oct 11th
-
-
Introduction to Swift & Seminar Topics
-
Lecture 2: Introduction to Swift & Seminar Topics
Tue, Oct 17th
-
-
More Swift and Introduction to UIKit
-
Lecture 3: More Swift and Introduction to UIKit
Tue, Oct 18th
-
-
Navigation and Workflow
-
Lecture 4: Navigation and Workflow
Tue, Oct 24th
-
-
ViewController, AutoLayout, Protocol, Extensions
-
Lecture 5: ViewController, AutoLayout, Protocol, Extensions
Tue, Oct 25th
-
-
ScrollViews and TableViews
-
Lecture 6: ScrollViews and TableViews
Mon, Nov 7th
-
-
Saving Data, Closures, Working with the Web, Concurrency
-
Lecture 7: Saving Data, Closures, Working with the Web, Concurrency
Tue, Nov 8th
-
-
Working with the Web Part 2, Advanced Data Display
-
Lecture 8: Working with the Web Part 2, Advanced Data Display
Mon, Nov 14th
-
-
Advanced Data Display Part 2
-
Lecture 9: Advanced Data Display Part 2
Tue, Nov 15th
-
-
Introduction to SwiftUI - Layout Views
-
Lecture 10: Introduction to SwiftUI - Layout Views
Mon, Nov 21st
-
-
More SwiftUI
-
Lecture 11: More SwiftUI
Tue, Nov 22nd
-
The Best Projects of 2021
Grading
Your grade will be calculated as follows:
Seminar | 20% |
Project | 50% |
Exam | 30% |
Course Teaser
The lecture consists of three blocks:
- 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.
- 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
- 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 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 Tuesday, 11.10.2022.
- Sign the Declaration of Compliance and send it to René Schäfer and Oliver Nowak until Wednesday, 12.10.2022 1 pm.
- Form a group of 3 students in Moodle until Friday, 14.10.2022 1 pm at the latest.
Previous Offerings
WS21/22 - WS20/21 - WS19/20 - WS18/19 - WS17/18 – WS15/16 – WS14/15 – WS13/14 – WS12/13 – WS11/12 – WS11/12 – WS09/10