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-ss24
Course BBB Room https://konferenz1.hdm-stuttgart.de/b/ans-uer-rft-nj0

Hybrid?

The course takes place in presence.

If you want to participate remotely (e.g. due to covid infection, quarantine or other legitimate reasons), write me an email early enough. I'll ensure to bring the Meeting Owl and start the BBB-Stream. It's not a high-quality hybrid setup though, just sound and a shared screen.

3 Schedule

Date Session (14:15 - 17:30) Deadlines Description
19.03.2024 Kickoff + Hardware rental Course overview, questions and answers
26.03.2024 Hardware rental + Lecture
02.04.2024 Lecture
09.04.2024 Lecture
16.04.2024 Lecture
30.04.2024 Lecture
07.05.2024 Lecture / Open Session + Team Setup 3-4 members per team
14.05.2024 Lecture / Open Session
28.05.2024 Open Session
04.06.2024 Open Session Project Abstract
11.06.2024 Open Session Assignments Commits after the submission date will not be taken into account
Make sure to check the submission guidlines
18.06.2024 Open Session
25.06.2024 Open Session
02.07.2024 Presentations Project Commits after the submission date will not be taken into account
Make sure to check the submission guidlines
04.07.2024 (Media Night)

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/docs/
  • 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 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

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

5 Project constraints

5.1 General

  • Use iOS Design Guidelines
  • No external libraries, implement it yourself
  • No cloud databases
  • 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?