Skip to main content

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.

6
modules
24
topics
45
min to assess

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 question

No options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.

0 / 600

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.