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 Lecture Goals

  • Get an overview of current technologies, platforms and tools for iOS application development
  • Learn the basics of iOS platforms and development (Objective-C & Swift)
  • Understand the constraints and characteristics of mobile devices
  • Get to know the principles of the User Centered Design Process for mobile application development
  • Understand the most important OO-Concepts and Design Patterns for mobile application development

1.2 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)
Description Link
Gitlab Repositories
Individual assignments, team projects
https://gitlab.mi.hdm-stuttgart.de/mad2/mad2-ws24

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 (14:15 - 17:30) Deadlines Description
Week 1 Kickoff + Hardware rental Course overview, questions and answers
Week 2 Hardware rental + Lecture
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 3-4 members per team
Week 8 Lecture / Open Session
Week 9 Open Session
Week 10 Open Session Project Abstract
Week 11 Open Session Assignments Commits after the submission date will not be taken into account
Make sure to check the submission guidlines
Week 12 Open Session
Week 13 Open Session
Week 14 / 15 (depends on semester) Open Session / Presentations Project Commits after the submission date will not be taken into account
Make sure to check the submission guidlines

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: 10 min per team
  • Show a quick overview of your app on the emulator or device
  • Present code parts or tests which are interesting (e.g. specific for your project, challenging, ...)

Hardware rental

  • In order to conduct the assigments 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
    • 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 me 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
  • 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-ss24/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-ss24/teams/skynet)

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

7 References

Questions?