Build complete small Android apps.
Goal: move from toy screens to useful mobile workflows. This phase teaches navigation, lists, forms, local persistence, network calls, and device actions through one catalogue app.
Tutorial sequence
Each tutorial adds one production-shaped skill while staying junior-friendly.
Step-by-step build track
Build navigation, lists, filters, favourites, and device actions incrementally.
Complete reference version
Full catalogue app code and explanation in one longer reference page.
Navigation
Routes, NavHost, detail arguments, back behavior, and screen ownership.
Lazy lists and detail screens
LazyColumn, stable keys, row design, empty states, and details.
Forms, search, filters
Text fields, validation, category filters, sorting, and useful errors.
Networking and JSON
HTTP mental model, DTOs, loading/error states, and mapping to UI models.
Local storage
DataStore for preferences and Room basics for structured favourites.
Device actions
Call, map, share, WhatsApp-style intents, and beginner permission judgment.
Final catalogue app
Combine the flow into a local business catalogue portfolio project.
Interactive quiz lab
Drag routes, match storage choices, multi-select states, and code review prompts.
Build this project
Create a local business catalogue app for a clinic, school, coaching centre, or service business. It should support search/filter, detail pages, favourites, and useful device actions.
| Required | List screen, detail screen, search, filter, favourites, loading/empty/error states. |
|---|---|
| Stretch | Call, map, share, language toggle, local JSON seed file, and simple offline-first behavior. |
Exit gate
- You can build an app with at least four screens and predictable navigation.
- You can handle loading, success, empty, and error states without crashing.
- You can persist simple user choices locally.
- You can read API documentation and map JSON into Kotlin data classes.
- You can explain when to use DataStore, Room, or a network response.
- Your GitHub README explains setup, features, screenshots, and known limitations.