Open menu with table of contents Organization
Logo of Stuttgart Media University for light theme Logo of Stuttgart Media University for dark theme
Android Development

Organization

Stuttgart Media University

1 Lecture Organization

  • Times: 08.10.2026 - 28.01.2027, starting 10:00 - 13:15
    • Includes theory and practical assignments
    • Small break in between
    • 15 appointments
    • The theory appointments are held in person. In the project phase we meet for consultations, in person or online by appointment. More information on the following slide.
  • Structure:
    • First 7 appointments: Theoretical lecture with 5 assignments. Assignments are required and have to be submitted until a deadline
    • Next 7 weeks: Project development, submission of the project and lecture evaluation
    • Last 1 appointment: Presentation of the projects (required date). The presentations will be held virtually in BigBlueButton.
  • Limit:
    • 40 Attendees, Priority is given to those for whom the course is a compulsory subject, it does not matter in which semester.

2 Lecture Attendance

  • The lectures of the first seven appointments are held in person at HdM. Bring your laptop, the assignments are started during the appointment.
  • In the project phase there is no regular lecture. Project consultations take place in person or online, book an appointment with your team (appointment link on the "About" slide of the start page).
  • Please enroll to the following course on the e-learning platform, all announcements, the team registration and the project abstract are handled there: https://moodle.hdm-stuttgart.de/course/view.php?id=4255

3 Grading Scheme

Component Points
Assignments (3 Points per Assignment) 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

4 Grading 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 Deadlines

For the submissions, everybody gets an own git repository where the assignment results should be pushed. In parallel every group gets another repository where the project results should be pushed. Submissions after the deadline will not be accepted.

Everybody should push his/her code to the existing repository structure for the assignments. For the project a readme.md file with the two categories you have selected, a short description (around 2-6 sentences) what the app is doing and the team members should be added.

Teams for the project should consist of 2-4 team members. Assignments should be done individually. The teams are formed on the moodle platform.

Date Submission
29.10.2026 23:59 Team registration
25.11.2026 23:59 Assignment results
25.11.2026 23:59 Project abstract
27.01.2027 23:59 Final project

6 Constraints

  • Use Android Material Design
  • No third party libraries except: Retrofit, Gson, Coil and Google Maps. Implement it yourself!
    • AndroidX/Jetpack libraries (Navigation, Room, Lifecycle/ViewModel, DataStore, WorkManager, CameraX, ...) and the Kotlin standard library/kotlinx.coroutines are part of the platform and are allowed
    • "Third party" means everything outside AndroidX and Kotlin, e.g. Hilt, Koin, Ktor, Moshi, Glide, RxJava
  • No cloud databases
  • Focus on code structure and patterns, not functionality
  • Keep it simple, the semester is short

7 Project inspirations

  • Classroom Response System: Live Vote
  • Party Music Player
  • Fitness Tracking
  • Instant Chat with Bots
  • Insurance Manager
  • Financial Manager
  • Tournament App: Soccer, Sports, Drinking Games, ...
  • Collaborative Link Sharing
  • Motion Tracking/Pattern Recognition
  • Restaurant Order System: Bill Split
  • Car/Bike Finder
  • Public Transportation Notifier App
  • Resume Online Manager with Sharing
  • Food/Meal Tracker
  • Music Synthesizer/Sequencer App
  • Selfie Image Filter App
  • Places Blacklist: Don't go there
  • Mobile Education: Collaboratively explain complicated stuff
  • Foreign Language Learners App
  • Personal Timeline: How long ago did I ...?
  • Digital Queueing System: Fetch a number
  • Web Site Change Watcher: Notify if a webpage has changed
  • Retiree Watcher: Live Cam, Microphone, Alert Button
  • Smart Home Sensor Dashboard
  • Movie Subtitles App
  • Karaoke Singalong App

8 Git Repo Structure

Grading will be based on the following Git repository structure for the assignments and the project:

  • Only main/master branch will be considered. All other branches will be ignored
  • Use this folder structure in your Git repo to hand in your results for the assignments.
    • assignment1
    • assignment2
    • assignment3
    • assignment4
    • assignment5
  • Each Assignment folder contains the starter project. The folder structure must look like this /assignmentX/app/src/main/
  • Do not rename the package de.hdmstuttgart.movietracker or the testTags, the UI test depends on them.
  • During grading the reference UI test AssignmentNTest.kt from the course repository replaces your copy of the test and is run on an emulator. Only a passing test gives the points.
  • For the project you will get access to a separate group repository. Please put the code to the root of the repository.
  • Hint: Git will not commit or push empty folders. Add a readme.md to each folder.

9 Presentation

  • Date: 28.01.2027, 10:00-13:15
  • Each project should be presented. In the presentation each team member should have the same amount of time to talk
  • Unexcused absence will make you fail the course
  • Show a quick overview of your app on the emulator or device
  • Present code parts which you are proud of like an advanced algorithm or unit tests
  • Each team has 12 minutes time per project and then a 2 minutes break

10 References

11 Lecture Goals

  • Get an overview of current technologies, platforms and tools for Android application development
  • Learn the basics of Android platforms and development
  • Understand the constraints and characteristics of mobile devices
  • Build your first native Android app which could be published to the Google Play Store
  • Develop with modern technologies like the programming language Kotlin, Jetpack Compose toolkit and MVVM architecture pattern
  • Get an understanding of programming software in a team

Questions?