Android (Kotlin) Tutorial

Kotlin is the language Google now recommends for all new Android development — more concise than Java, null-safe by design, and built from the ground up to work beautifully with coroutines for asynchronous code. This is the most comprehensive Android track on this site: 64 lessons covering everything from Kotlin fundamentals through modern Jetpack architecture, networking, background work, device features, Firebase, testing, and shipping to the Play Store. Throughout the whole track we build one running example together — TrailLog, a hiking journal app where users log trails with notes, photos, and GPS location, sync them to the cloud, and get reminders to log their next hike — so every concept lands in a real, connected context rather than isolated snippets.

Where this fits: This track stands on its own — no prior Android experience needed, though if you've been through the Android (Java) track already, you'll recognize the same core concepts here, just written the modern Kotlin way.

Why This Track Is Different From the Java Track

Instead of...This track teaches...
Raw AsyncTask / LoadersKotlin Coroutines and Flow — the modern, structured way to handle asynchronous and background work
findViewById() everywhereView Binding — type-safe, null-safe view references generated automatically
SharedPreferencesJetpack DataStore — the modern, coroutine-friendly replacement
Dagger 2 (raw)Hilt — Google's own opinionated dependency injection layer built on top of Dagger
MockitoMockK — a mocking library actually designed for Kotlin's language features

A Quick Look Ahead

Example: A ViewModel Loading Trails with Coroutines

class TrailViewModel(private val repository: TrailRepository) : ViewModel() {

    private val _trails = MutableStateFlow<List<Trail>>(emptyList())
    val trails: StateFlow<List<Trail>> = _trails

    fun loadTrails() {
        viewModelScope.launch {
            _trails.value = repository.getTrails()
        }
    }
}
Note: This is correct, real Kotlin/Android code — but this website's own project doesn't run a live Android Studio build, so you won't see it actually execute on this page. Follow along by creating your own project after the next few setup lessons.

What You'll Learn In This Track

AreaCovered in
FoundationsWhy Kotlin, installation, language basics, functions & classes, your first app
Core conceptsActivities, Fragments, Navigation Component, ViewModel & LiveData, MVVM
Kotlin deep diveNull safety, data & sealed classes, collections, coroutines, Flow
UI: Views & layoutsView Binding, ConstraintLayout, RecyclerView, Material Components, custom views, animations, theming
Data & storageDataStore, Room, file storage, the Repository pattern
NetworkingRetrofit + Coroutines, OkHttp, serialization, error handling, WebSockets
Background, permissions & securityWorkManager, structured concurrency, runtime permissions, ProGuard/R8
Device features & FirebaseNotifications, CameraX, location & maps, sharing, Firebase Auth/Firestore/FCM
Testing, architecture & shippingUnit & UI testing, Hilt, Clean Architecture, Gradle KTS, signing, Play Store publishing
Next steps: Head to Why Kotlin? before we install anything — understanding the philosophy makes everything after it click faster.