This repository contains educational content for learning Android development with Jetpack Compose. The audience is developers who know Kotlin and want a clear, practical path to building modern Android apps. Content should be concise, code-heavy, and immediately useful.
All examples target Kotlin 2.4.x with the K2 compiler, Jetpack Compose BOM 2025.06.x (or later), Material 3, Ktor 3.x, Room 2.7.x, and Koin 4.x.
/
README.md — Navigation table and objectives
AGENTS.md — This file. Context for AI agents and contributors.
01-android-basics/ — Project setup, activity/fragment lifecycle, intents
02-jetpack-compose/ — Composables, state, navigation, lists, theming
03-architecture/ — ViewModel, repository, Ktor, Room/DataStore, Koin DI
04-security/ — Encrypted prefs, biometrics, network, R8
99-workshop/ — Workshop: build a Task Manager app with Compose
Each directory contains numbered markdown files that are self-contained lessons.
- Target Kotlin 2.4.x and Compose BOM 2025.06.x — K2 compiler is stable. Do not reference the old Compose Compiler extension.
- Code-first. Every concept gets a runnable code example. Prefer showing over telling.
- Include expected output in comments after code blocks, so the reader can predict the result.
- Step-by-step code. Break complex examples into numbered steps with explanation.
- Short files. Each file is 200-500 words. One concept per file.
- Mermaid diagrams for architecture and flow. No ASCII art. Include a blockquote text fallback BEFORE each diagram like:
> **Diagram:** Description of what the diagram shows. - Plain English. CEFR A2-B1 level. Short sentences. Common words. Direct subject-verb structure.
- No preamble. Start with the concept. Do not write introductions like "In this article we will...".
- Version stamps. Reference specific library versions where relevant.
- Practice exercise at the end of each file.
- No emojis in content.
- No ASCII art — use mermaid instead.
- No level badges, no "(EXTERNAL)" suffix.
- Use
valby default. Showvaronly when mutability is needed. - Show type inference first, explicit types second.
- Prefer expression bodies for short functions.
- Use string templates (
$variable,${expression}) in examples. - Apply Compose best practices: state hoisting, immutable UI state, single source of truth, unidirectional data flow.
- Do not write long theoretical introductions. Get to code fast.
- Do not reference XML Views or the old View system unless the comparison teaches a Compose concept.
- Do not use deprecated APIs. Check the latest AndroidX docs.
- Do not write placeholders. Every file must contain complete, finished content.
- Do not skip the practice exercise.