Open menu with table of contents Lecture Organization
Logo of Stuttgart Media University for light theme Logo of Stuttgart Media University for dark theme
Mobile Application Development 2

Lecture Organization

Stuttgart Media University

1 Objective

1.1 What You'll Gain

By the end of this course, you'll have the skills and confidence to create your own iOS applications from scratch. You'll understand modern Swift programming, the Apple ecosystem, and build apps that follow current industry standards and design patterns.

1.2 Lecture Goals

After completing this course, you will be able to:

  • Understand the Apple Environment: Navigate iOS development tools, platform constraints, and ecosystem
  • Master Swift Programming Fundamentals: Write clean, efficient Swift code following modern best practices
  • Develop iOS Apps with SwiftUI: Create native iOS applications using declarative UI framework (SwiftUI)
  • Apply Current Design Patterns and APIs: Implement modern iOS architectural patterns and utilize current Apple frameworks
  • Create Your Own App: Build a complete iOS application from concept to deployment
  • Work with Legacy Code: Understand and maintain existing codebases using older iOS technologies still found in production

1.3 Structure

  • Around half of the semester are theory and practical assignments
  • The second half is used for project work in teams
  • Grading is based on the individual assignments + the group project (presentation and submission)

1.4 Obligations / Information

  • You must check-in your code every week (for assignments) so I can review your individual progress. If you check-in code later, e.g. as one big project at the end of the deadline, it is considered as copied code and you fail the assignment! If you can not make it every week to the lecture or can't work on the assignment because you are ill, let the lecturer know by e-mail or otherwise in short notice.
  • You may help each other, but copying assignments will make you fail the course.
  • Helping in groups is encouraged, but make sure you understand everything you submit as your own work.
  • Part of your grade will include teamwork and collaboration, so make sure you contribute equally to your team project. Having no Team is not an option.
Description Link
Gitlab Repositories
Individual assignments, team projects
https://gitlab.mi.hdm-stuttgart.de/mad2/mad2-ws25

Hybrid?

The course takes place in presence.

Due to university regulations, hybrid lectures are not allowed. However, I will provide you with videos of my coding examples so you can follow along if you cannot attend in person. Please note that the videos do not cover the entire lecture, and individual questions cannot be addressed through them. I will answer your questions during the lecture (that's what it's for), so please make an effort to attend. I will not respond to questions via email or other means, as I simply do not have the time. The second part of the lecture is dedicated to coding and answering questions, so please take advantage of this opportunity.

3 Schedule

Date Session (11:45–15:45) Deadlines Description
Week 1 Kickoff + iOS Introduction Course overview, Q&A
Week 2 Hardware rental + Lecture Setup and rental instructions
Week 3 Lecture / Open Session
Week 4 Lecture / Open Session
Week 5 Lecture / Open Session
Week 6 Lecture / Open Session
Week 7 Lecture / Open Session + Team Setup Form teams (3–4 members)
Week 8 Lecture / Open Session
Week 9 Open Session
Week 10 Open Session Project Abstract Submit project abstract
Week 11 Open Session Assignments Commits after the deadline will not be considered; see submission guidelines
Week 12 Open Session
Week 13 Open Session
Week 14–15 (depends) Open Session / Presentations Project Final project submission and presentations; late commits won't be counted

Lecture Sessions

  • We'll talk through the slides and discuss different topics
  • Usually the first block is used for theory and in the second block you can work on the assignments

Open Sessions

  • You can use the lecture time to work on the assignments and your projects
  • You'll get support, feedback, ...
  • We can solve problems together

Presentations

  • Each member has to present equally
  • Unexcused absence will make you fail the course
  • Duration: 5 min per person but at least 10 min per Team
  • Show a quick overview of your app on the emulator or device
  • Present your code parts or tests which are interesting (e.g. specific for your project, challenging, ...)

Hardware rental

  • In order to conduct the assignments and develop iOS apps you need Apple Hardware.
  • If you do not have your own Apple laptop, you can borrow one for the semester.
  • Check the setup instructions for your mac: https://rental.pages.mi.hdm-stuttgart.de/
  • If you need additional hardware for your group project (e.g. iphone, ipad, airpods), talk to us, we have many devices for rental.
  • Caution Follow the instructions carefully before you return your mac.

Team Setup

  • You have a few weeks until the Team Setup date: talk to your colleagues about ideas and groups
  • We assign the teams on this date (prepare a cool group/project name)
  • No worries if you have no team, we will find groups that are looking for additional members
  • The project idea does not have to be defined yet

Deadlines

  • Project Abstract
    • Modify the Readme in your group repository until the end of the day according to the submission guidelines
  • Assignments
    • Make sure all your assignments are pushed to the repository until the end of the day
  • Project
    • Submission deadline is before the presentations (14:15)
    • Make sure all changes are pushed to the remote (Only the Main branch will count!)
    • Make sure the app runs after a new git pull (e.g. check the repository in another folder)
    • Make sure the Readme is up-to-date

4 Grading

Component Points
Assignments (individual work) 15
Project: Software Quality (Code Structure, Modularization, Coding Style) 15
Project: Implementation Quality and Complexity 15
Project: Usability and Design (UI Concepts, Platform Standards) 10
Project: Automated Testing (Unit Test, UI Test) 5
Project: Presentation 10
Total 70

Assignments

  • Assignments must be done individually!
  • You can and should help each other, but copying assignments will make you fail the course
  • Your must check-in your code every week, so I can see your individual progress in the assignment. It you check-in code later, e.g. as one big project at the end of the semester, it is considered as copied code and you fail the assignment! If you can not make it every week to the lecture or can't work on the assignment because you are ill, let the lecturer know by e-mail or otherwise in short notice.

Group projects

  • All members have to contribute with code (only Design or Project Management is not enough)
  • All members have to be present with an adequate amount of commits (pair programming is no excuse, switch roles)
  • Individual grades can be adjusted particularly if the contribution is uneven across the group
  • The check-ins in Gitlab are evaluated, so if it looks peculiar or someone has no check-ins or insufficient contribution, it will have an effect on the individual grade.

5 Project constraints

5.1 General

  • Use iOS Design Guidelines
  • App needs to run on the latest Version of iOS (iOS 26 as of October 2025)
  • App needs to compile and run without errors or warnings
  • No external libraries, implement it yourself! No podfiles, or external dependecies, only Apple frameworks must be used!
  • No cloud databases, but you can use existing APIs. Don't start implementing your own.
  • Focus on code structure and patterns, not functionality
  • Keep it simple, the semester is short

5.2 Categories

Select at least two categories which you will implement in the app:

Category Examples
Media and Camera Take picture, load image from gallery
Location and Sensors GPS, Gyroscope, Motion, Barometer, Altimeter
Data Storage Store app local data using SQL, Key/Value
Networking Consume API, Parse JSON, XML, GraphQL
Connectivity Bluetooth, Wifi, Beacons
Animation and Graphics Implement charts, complex animations

5.3 Submission

Grading is based on the gitlab repository

Add a README.md in the repo that contains:

  • project name
  • members (full name, student short, matriculation number)
  • short project abstract (around 6 sentences)
  • Name the two categories you selected

6 Gitlab Repos

We create the repositories for you.

Important: Do not invite other users into your repo that are not taking part in the project. We will automatically generate list from the Gitlab Repo for the grading, so if a wrong user is in the repo this will cause problems.

  • Assignments: mad2/mad2-semester/student-short (e.g. mad2/mad2-ws25/jb007)

    • Everyone gets a personal repository for the individual assignments.
    • You should push code regularly. This is also relevant for the grading. If a repository is not used and e.g. all the code is pushed near the end of the deadline, this may have a negative impact on your points.
  • Project: mad2/mad2-semester/teams/group-name (e.g. mad2/mad2-ws25/teams/skynet)

    • Every team gets a group repository.
    • Update the Readme according to the submission guidelines.

7 References

8 Recap Questions

  • What are the two main deadlines for assignments and project work in this course?
  • Name at least two project categories that must be implemented in your team project
  • What happens if you miss the final presentation without excuse?
  • What is the policy regarding external libraries in your iOS project?
  • What should be included in your project's README.md file?
  • What is the difference between individual assignments and group project work in terms of collaboration?
  • When must you inform the instructor if you cannot attend lectures due to illness?

Questions?