Mobile Application Development

State University of Zanzibar (SUZA)

BSc Computer Science โ€” Semester II, Academic Year 2025/2026

Kotlin ยท Jetpack Compose ยท Android

๐ŸŽฏ

Course Overview

This course teaches modern Android app development using Kotlin and Jetpack Compose. It follows the structure of Google's official Android Basics with Compose curriculum and takes students from their first Kotlin expression to a signed, publishable app.

Duration: 14 weeks (Semester II) ยท Contact hours: 3 lecture hrs + 2 lab hrs per week ยท Credits: 8 ECTS equivalent

Assessment: 3 homeworks (45%), 8 practical labs (25%), final capstone project (30%).

โœ…

Prerequisites

Students should have completed (or have equivalent knowledge of):

  • Object-Oriented Programming โ€” classes, objects, inheritance, interfaces (Java or similar)
  • Programming fundamentals โ€” variables, conditionals, loops, functions, basic data structures
  • Basic Git & command line โ€” clone, commit, push; navigate folders
  • Familiarity with an IDE โ€” IntelliJ IDEA, Eclipse, or similar (Android Studio is IntelliJ-based)
Hardware/software: A computer that can run Android Studio (8 GB RAM minimum, 16 GB recommended; SSD strongly preferred). An Android phone or a working emulator. No prior Kotlin experience required โ€” Unit 1 covers the language essentials.
๐ŸŽ“

Learning Outcomes

By the end of this course, students will be able to:

  1. Write idiomatic Kotlin code using null safety, lambdas, data classes, and collections.
  2. Build interactive Android UIs with Jetpack Compose โ€” composables, layouts, modifiers, and Material 3 components.
  3. Manage UI state using remember, mutableStateOf, and apply state hoisting for reusable composables.
  4. Display dynamic content with LazyColumn, LazyRow, and grids.
  5. Architect multi-screen apps using Navigation Compose, ViewModel, and the MVVM + Unidirectional Data Flow pattern.
  6. Consume REST APIs using Retrofit, coroutines, and JSON serialization, and load remote images with Coil.
  7. Persist data on the device using Room (SQLite ORM) and DataStore for preferences.
  8. Schedule background work reliably with WorkManager (constraints, periodic, chained tasks).
  9. Integrate Compose with the legacy View system to support real-world migration scenarios.
  10. Plan, build, test, and present a complete Android app as a capstone project.
๐Ÿ“š

Lectures

#TopicWeeksNotesFormat
Unit 1 Your First Android App 1โ€“2 Kotlin syntax, variables, functions, classes, null safety, first Compose app PDF
Unit 2 Building App UI 3โ€“4 Composables, modifiers, Column/Row/Box, state, remember, hoisting, TextField PDF
Unit 3 Display Lists & Material Design 5 LazyColumn, LazyRow, LazyVerticalGrid, Card, Scaffold, keys, performance PDF
Unit 4 Navigation & App Architecture 6โ€“7 NavHost, Scaffold, ViewModel, StateFlow, MVVM, Unidirectional Data Flow PDF
Unit 5 Connect to the Internet 8โ€“9 Retrofit, JSON serialization, suspend, sealed UI state, Coil images, OkHttp cache PDF
Unit 6 Data Persistence 10โ€“11 Room (Entity, DAO, Database), Repository, Flow, DataStore, file storage PDF
Unit 7 WorkManager (Background Work) 12 CoroutineWorker, WorkRequest, constraints, periodic & chained work, expedited PDF
Unit 8 Views and Compose (Interop) 13 ComposeView, AndroidView, sharing ViewModels, theming interop, migration PDF
Capstone & Review 14 Final project presentations, exam revision
๐Ÿ”ฌ

Practical Lab Sessions

๐Ÿ’ก

Code Examples

HelloComposeApp.kt

Minimal single-Activity Compose app: MaterialTheme, Scaffold, TopAppBar, first composable

KOTLIN

TipCalculatorApp.kt

State with mutableStateOf, TextField input, Switch, number-keyboard, live recomposition

KOTLIN

NavigationDemo.kt

Three-screen app using Navigation-Compose, NavHost, route arguments, Scaffold back nav

KOTLIN

RoomStudentApp.kt

Student Registry: Entity, DAO, Room DB, Repository, ViewModel + StateFlow, LazyColumn, dialog

KOTLIN

RetrofitNetworkApp.kt

Retrofit + kotlinx.serialization + Coil: Loading/Success/Error UI state, LazyVerticalGrid

KOTLIN
โœ๏ธ

Practical Exercises

Kotlin Fundamentals (10 exercises)

Variables, grade calculator, FizzBuzz, list ops, classes, null safety, data classes, extensions

KOTLIN

Compose UI (10 exercises)

Greetings, business card, counter, tip calc, LazyColumn, state hoisting, theming, conditional UI

KOTLIN

State & Navigation (5 exercises)

ViewModel + StateFlow, Navigation with arguments, shared ViewModel, rememberSaveable, form hoisting

KOTLIN

Room & Retrofit (10 exercises)

Task entity, DAO, Database, Repository; GitHub API DTOs, Retrofit interface, UI state modelling

KOTLIN
๐Ÿ“

Homeworks

๐Ÿ“–

Course Topics

  • โ–ธ Kotlin Language Fundamentals
  • โ–ธ Android Studio & Gradle
  • โ–ธ Jetpack Compose UI
  • โ–ธ Modifiers & Material 3 Theming
  • โ–ธ State Management & Hoisting
  • โ–ธ Navigation-Compose
  • โ–ธ ViewModel, StateFlow & MVVM
  • โ–ธ LazyColumn & Lists
  • โ–ธ Room Database & CRUD
  • โ–ธ DataStore & File I/O
  • โ–ธ Retrofit & REST APIs
  • โ–ธ Coroutines & Suspend Functions
  • โ–ธ Animation in Compose
  • โ–ธ Testing (Unit + Compose UI)
  • โ–ธ Accessibility
  • โ–ธ Signing & Publishing to Play Store
๐Ÿ”—

References