Android Development with Kotlin
Jetpack Compose, ViewModels, Room and publishing to Google Play.
Taught by Prerana Joshi · Mobile Developer
What you'll learn
- Write idiomatic Kotlin using null safety, data classes, sealed classes and coroutines
- Build responsive screens with Jetpack Compose and Material 3 components
- Structure an app with ViewModels, StateFlow and a repository layer using unidirectional data flow
- Persist data locally with Room and expose it as reactive Flows
- Call a REST API with Retrofit and handle loading, error and offline states
- Test, sign and publish an Android App Bundle to Google Play
About this course
Build a complete Android app in Kotlin and ship it to Google Play. This course is for developers who already know one programming language and want to learn modern Android development the way Google recommends it today: Jetpack Compose for the UI, ViewModels and StateFlow for state, Room for local persistence, Retrofit with coroutines for networking, and Navigation Compose for moving between screens. You will build a notes-and-tasks app lesson by lesson, write unit and Compose UI tests for it, sign a release bundle and walk through the Play Console submission. Along the way you will learn Kotlin null safety, data classes and coroutines, the unidirectional data flow pattern that keeps Android apps testable, and how to structure a project so it survives its second year. Prerequisites: comfortable with functions, classes and basic Git; no prior Android or Kotlin experience needed.
Course content
7 lessons- 1Kotlin Essentials for Android DevelopersSet up Android Studio and learn the Kotlin features every Android app relies on.Preview
- 2Building UI with Jetpack ComposeDescribe your screen as composable functions and let Compose redraw it when state changes.
- 3State, ViewModels and App ArchitectureMove state into a ViewModel, expose it as StateFlow, and separate UI from data with a repository.
- 4Navigation Between ScreensUse Navigation Compose with type-safe routes to build multi-screen flows with arguments and back-stack control.
- 5Local Persistence with RoomStore tasks in SQLite through Room entities, DAOs and Flows, and evolve the schema with migrations.
- 6Networking with Retrofit and CoroutinesFetch and send JSON with Retrofit, parse it with kotlinx.serialization, and handle errors and offline states.
- 7Testing, Signing and Publishing to Google PlayWrite unit and Compose UI tests, build a signed App Bundle, and submit through the Play Console.