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

Android Development

  • In this lecture you will learn the basics of developing apps for Android devices. This includes the following topics listed below.
  • The lecture is designed for app development beginners who have good Java development skill (e.g. successfully passed the exam “Software Entwicklung 1 & Software Entwicklung 2” with a grade better than 2,3)
  • If you already have experiences in developing apps for Android and iOS, I would recommend you to visit the lecture “Spezielle Themen der mobilen Anwendungsentwicklung” (119645) where we do the more advanced stuff.
  • If you are interested in developing hybrid apps using web technologies and frameworks such as Ionic or Cordova you can visit the lecture “Mobile Web Applications” (119640).
Stuttgart Media University

1 About

1.1 Lecturer

Matthias Nagel

nagelm@hdm-stuttgart.de


1.2 Tutor

No tutor yet

2 Contents

The lecture is split into a theoretical part, assignments and a practical part. The following list gives an overview (not complete) of the topics you will learn in these lectures. The assignments will help you to really understand and establish your knowledge.

2.1 Theoretical Part

Topics Slides
Introduction, lecture organization Organization
General mobile app development toolchain overview, native build process, version control systems (short Git introduction), testing tools, collaboration tools, continuous integration App-Development Toolchain
Introduction to the programming language Kotlin Kotlin Intro
Introduction (or refresher) to the versioning system Git Git Intro
Introduction to Android: System architecture, Android SDK basics, Android Studio introduction, ADM, ADB, Android Manifest, Android UI basics (@Composables, resources, etc.) Android Intro
Android component types overview, Activity, Application Context, Intent, WebView, Permissions, Excursion to Support Libraries, Android Security and UI reaction times Android Framework Basics
Implementing lists with LazyColum Android Lists
Lightweight fragmentation using Fragments Android Fragments
Services & Broadcast Receivers Services and Broadcast Receivers
Asynchronous programming with Coroutines Asynchronous Tasks
Features for storing data Storage Options
Introduction to API calls and Serialization Android Networking
Excursion: 3rd Party Libraries, Kotlin, Android Auto, Unit Tests, UI Tests Android Excursion

3 Contents

3.1 Assignments

Assignments Slides
Assignment 1: Android Basics Assignment 1
Assignment 2: Introduction to LazyColumn Assignment 2
Assignment 3: Navigation Assignment 3
Assignment 4: Working with Room Assignment 4
Assignment 5: Introduction to API Calls and Image Loading Assignment 5

4 FAQ

  • I have issues working with Git: Please check the Git Intro chapter.
  • I'm not sure with my submitted assignments: Make sure that you follow the folder structure described in the slides. You can verify the correct submission first by checking what's shown in gitlab, second if you clone the repo to a new fresh folder and Android Studio can build the project and third if the tests run through without any issues.
  • Please add a .gitignore file to the assignment projects. This ensures that only files are in your repository to build the apps and no local properties or individual code. I recommend this gitignore content.
  • Which third party libraries can we use in the project? In general no third party libraries are allowed in the project except: Retrofit, gson, Coil and Google Maps

5 Notice

No liability assumed. As Android frameworks, programming languages (e.g. Kotlin) and development environments evolve very quickly, the lecture slides and assigments have to be constantly updated. Please bear with me, apologies for any inconvenience.

For ideas and any kind of comments please send me a message to nagelm@hdm-stuttgart.de.