Learning path
Kotlin & Android Development learning path: everything to study, topic by topic
Comprehensive Kotlin and Android assessment covering Kotlin language fundamentals, object-oriented and functional programming, Android components and lifecycle, Jetpack Compose UI, coroutines and data persistence, app architecture, testing, and publishing.
Short answer
To learn Kotlin & Android Development, work through 6 modules and 24 topics in the order they build on each other. It starts with Kotlin Basics, then moves on to OOP & Functional Kotlin and Android Components. Use the map as a checklist, or measure your level and study only what is missing.
What you will study
Topics are grouped by module. Open one to see its objectives and key concepts.
1 · Kotlin Basics4 topics
Variables & Types
val vs var declarations, type inference, basic types (Int, Double, Boolean, String, Char), type conversions, string templates, arrays, and constants
Objectives
- Declare variables with val and var correctly
- Understand Kotlin's type system basics
Key concepts
- val vs var
- type inference
- basic types (Int, Double, Boolean)
- String templates
- type conversions
- arrays
- const val
- lateinit
Control Flow
if/else expressions, when expressions, for loops, while loops, ranges, destructuring declarations, labeled returns, and repeat
Objectives
- Write idiomatic Kotlin control flow
- Use when expressions effectively
Key concepts
- if as expression
- when expression
- for loop with ranges
- while loop
- ranges and progressions
- destructuring
- labeled returns
- repeat function
Functions
Function declarations, default and named arguments, single-expression functions, vararg, infix functions, extension functions, and higher-order function basics
Objectives
- Write functions with default and named parameters
- Create extension functions
Key concepts
- fun keyword
- default arguments
- named arguments
- single-expression functions
- vararg
- infix functions
- extension functions
- Unit return type
Null Safety
Nullable types, safe call operator (?.), Elvis operator (?:), non-null assertion (!!), let scope function for nulls, smart casts, and platform types
Objectives
- Handle nullable types safely
- Avoid NullPointerException using Kotlin idioms
Key concepts
- nullable types (?)
- safe call operator (?.)
- Elvis operator (?:)
- non-null assertion (!!)
- safe casts (as?)
- let for null checks
- smart casts
- platform types
2 · OOP & Functional Kotlin4 topics
Classes & Objects
Class declarations, primary and secondary constructors, init blocks, properties, companion objects, object declarations, and object expressions
Objectives
- Define classes with proper constructors
- Use companion objects and singletons
Key concepts
- class declaration
- primary constructor
- secondary constructor
- init block
- properties (get/set)
- companion object
- object declaration (singleton)
- object expression
Inheritance & Interfaces
Open classes, abstract classes, interfaces, method overriding, delegation (by keyword), visibility modifiers, and multiple interface implementation
Objectives
- Design class hierarchies with proper access control
- Implement delegation pattern
Key concepts
- open keyword
- abstract classes
- interfaces
- override keyword
- delegation (by)
- visibility modifiers
- super calls
- multiple interface implementation
Collections & Lambdas
List, Set, Map (mutable and immutable), collection operations (map, filter, reduce, flatMap, groupBy), lambda syntax, trailing lambdas, and sequences
Objectives
- Transform collections using functional operations
- Choose between eager and lazy evaluation with sequences
Key concepts
- List/MutableList
- Set/MutableSet
- Map/MutableMap
- map/filter/reduce
- flatMap
- groupBy
- lambda syntax
- sequences (lazy evaluation)
Sealed & Data Classes
Data classes (equals, hashCode, copy, componentN), sealed classes, sealed interfaces, enum classes, value classes (inline), and type aliases
Objectives
- Model domain data with data classes
- Use sealed classes for restricted hierarchies
Key concepts
- data class
- copy function
- destructuring (componentN)
- sealed class
- sealed interface
- enum class
- value class (@JvmInline)
- type aliases
3 · Android Components4 topics
Activities & Fragments
Activity class, Fragment class, FragmentManager, Fragment transactions, activity and fragment communication, back stack, and configuration changes
Objectives
- Implement Activities and Fragments correctly
- Handle configuration changes and state preservation
Key concepts
- Activity class
- Fragment class
- FragmentManager
- fragment transactions
- activity-fragment communication
- back stack
- configuration changes
- savedInstanceState
Intents & Navigation
Explicit and implicit intents, intent filters, PendingIntent, deep links, Navigation component, NavGraph, and Safe Args
Objectives
- Navigate between screens using intents and Navigation component
- Implement deep linking
Key concepts
- explicit intents
- implicit intents
- intent filters
- PendingIntent
- deep links
- Navigation component
- NavGraph
- Safe Args
Views & Layouts
View hierarchy, ConstraintLayout, RecyclerView, ViewBinding, custom views, XML layouts, Material Design components, and accessibility
Objectives
- Build responsive layouts with ConstraintLayout
- Implement efficient lists with RecyclerView
Key concepts
- View hierarchy
- ConstraintLayout
- RecyclerView and Adapter
- ViewBinding
- custom views
- XML layouts
- Material Design components
- accessibility (contentDescription)
Lifecycle
Activity lifecycle callbacks, Fragment lifecycle, LifecycleOwner, LifecycleObserver, ViewModel, LiveData, lifecycle-aware components
Objectives
- Manage component lifecycle correctly
- Use lifecycle-aware components to prevent memory leaks
Key concepts
- onCreate/onStart/onResume
- onPause/onStop/onDestroy
- Fragment lifecycle
- LifecycleOwner
- LifecycleObserver
- ViewModel
- LiveData
- lifecycle-aware components
4 · Jetpack Compose4 topics
Compose Basics
Composable functions, @Composable annotation, modifiers, layouts (Row, Column, Box), Text, Button, Image, LazyColumn, and Compose previews
Objectives
- Build UI with composable functions
- Understand recomposition and when it triggers
Key concepts
- @Composable annotation
- Modifier chain
- Row/Column/Box layouts
- Text and Button composables
- LazyColumn/LazyRow
- Image composable
- @Preview annotation
- recomposition basics
Compose State Management
remember, mutableStateOf, rememberSaveable, state hoisting, derivedStateOf, snapshotFlow, side effects (LaunchedEffect, DisposableEffect)
Objectives
- Manage state correctly in Compose
- Apply state hoisting for reusable composables
Key concepts
- remember
- mutableStateOf
- rememberSaveable
- state hoisting
- derivedStateOf
- snapshotFlow
- LaunchedEffect
- DisposableEffect
Compose Navigation
NavHost, NavController, navigation routes, argument passing, nested navigation graphs, deep links in Compose, and type-safe navigation
Objectives
- Implement navigation in Compose apps
- Pass arguments between composable destinations
Key concepts
- NavHost composable
- NavController
- navigation routes (strings)
- argument passing
- nested navigation graphs
- deep links in Compose
- type-safe navigation
- back stack management
Compose Theming & Styling
MaterialTheme, custom themes, color schemes, typography, shapes, dark mode support, dynamic colors (Material You), and custom design systems
Objectives
- Create consistent themes with MaterialTheme
- Support dark mode and dynamic colors
Key concepts
- MaterialTheme composable
- custom color schemes
- Typography definitions
- Shape definitions
- dark mode (isSystemInDarkTheme)
- dynamic colors (Material You)
- CompositionLocal
- custom design system
5 · Coroutines & Data4 topics
Coroutines Basics
CoroutineScope, launch, async/await, Dispatchers (Main, IO, Default), structured concurrency, Job, SupervisorJob, and coroutine cancellation
Objectives
- Write coroutines with proper structured concurrency
- Choose the correct Dispatcher for each task
Key concepts
- CoroutineScope
- launch builder
- async/await
- Dispatchers (Main, IO, Default)
- structured concurrency
- Job and SupervisorJob
- coroutine cancellation
- withContext
Kotlin Flow
Flow builders (flow, flowOf, asFlow), flow operators (map, filter, transform), StateFlow, SharedFlow, collect, conflate, buffer, and flowOn
Objectives
- Build reactive data streams with Flow
- Choose between StateFlow and SharedFlow
Key concepts
- Flow builders
- flow operators (map, filter)
- StateFlow
- SharedFlow
- collect terminal operator
- conflate and buffer
- flowOn (context switching)
- callbackFlow
Room Database
Room entities, DAOs, database class, type converters, migrations, relationships (one-to-many, many-to-many), Flow integration, and testing with Room
Objectives
- Design Room database schema with entities and DAOs
- Handle database migrations safely
Key concepts
- @Entity annotation
- @Dao annotation
- @Database annotation
- type converters
- migrations
- relationships (@Relation)
- Flow return types in DAO
- in-memory database for testing
Retrofit & Networking
Retrofit setup, API interface definitions, suspend functions in Retrofit, OkHttp interceptors, serialization (Gson/Moshi/kotlinx.serialization), and error handling
Objectives
- Set up Retrofit with proper serialization
- Handle network errors gracefully
Key concepts
- Retrofit builder
- API interface with annotations
- suspend functions in Retrofit
- OkHttp interceptors
- Gson/Moshi/kotlinx.serialization
- error handling (Response wrapper)
- logging interceptor
- certificate pinning
6 · Advanced Android4 topics
App Architecture
MVVM pattern, Clean Architecture, dependency injection (Hilt/Koin), Repository pattern, Use Cases, unidirectional data flow, and modularization
Objectives
- Design scalable app architecture with MVVM and Clean Architecture
- Implement dependency injection with Hilt
Key concepts
- MVVM pattern
- Clean Architecture layers
- dependency injection (Hilt)
- Repository pattern
- Use Cases / Interactors
- unidirectional data flow (UDF)
- modularization
- single activity architecture
Testing
JUnit tests, MockK/Mockito, Compose testing (ComposeTestRule), Espresso, Robolectric, test doubles, coroutine testing, and UI testing strategies
Objectives
- Write unit and integration tests for Android apps
- Test Compose UI with ComposeTestRule
Key concepts
- JUnit 4/5
- MockK mocking library
- ComposeTestRule
- Espresso UI testing
- Robolectric
- test doubles (fake, stub, mock)
- coroutine testing (runTest)
- test coverage strategies
Performance Optimization
Memory leak detection (LeakCanary), profiling with Android Studio Profiler, Baseline Profiles, R8/ProGuard, lazy initialization, image loading (Coil/Glide), and ANR prevention
Objectives
- Profile and optimize Android app performance
- Prevent memory leaks and ANRs
Key concepts
- LeakCanary
- Android Studio Profiler
- Baseline Profiles
- R8/ProGuard optimization
- lazy initialization
- image loading (Coil/Glide)
- ANR prevention
- Compose performance (stability)
App Publishing
App signing, Play Store publishing, build variants (debug/release), product flavors, CI/CD pipelines, version management, and app bundles (AAB)
Objectives
- Publish apps to the Google Play Store
- Set up CI/CD pipelines for Android projects
Key concepts
- app signing (keystore)
- Play Store publishing
- build variants
- product flavors
- CI/CD (GitHub Actions/Bitrise)
- version management (versionCode/Name)
- Android App Bundle (AAB)
- Play Console policies
Levels: Junior, Mid, and Senior
Explain it in your own words
Graded by AI · no account · 1 questionNo options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.
Already studying Kotlin & Android Development?
The assessment measures topic by topic, and your plan skips what you already know.
Open to read. An account is only needed to be measured.
Frequently asked questions
Where should I start studying Kotlin & Android Development?
Start with Kotlin Basics: Variables & Types, Control Flow, and Functions. The map orders topics by what they depend on, so each one prepares the next.
How long does a full Kotlin & Android Development assessment take?
A full assessment of this path takes about 45 minutes. Study time depends on where you start; a diagnostic shows which topics you can skip.
Do I need an account to use this page?
No. The map, objectives and key concepts are open. You only need an account to be measured, get your gap by topic and receive a plan.