Android adalah platform utama untuk Kotlin. Section ini membahas Jetpack Compose, ViewModel, persistensi lokal, dan dependency injection dengan Hilt.

# Pengenalan Android dengan Kotlin

Mengenal Android sebagai sistem operasi mobile, peran Kotlin sebagai bahasa resmi sejak 2017, SDK, NDK, Jetpack, dan empat komponen aplikasi utama.

Buka →
# Android Studio dan SDK

Mengenal Android Studio sebagai IDE resmi, SDK Manager, AVD emulator, build variants, serta alat baris perintah seperti ADB dan logcat.

Buka →
# Android Project Structure

Membedah struktur proyek Android: modul Gradle, file build.gradle.kts, AndroidManifest.xml, serta source set main, test, dan androidTest.

Buka →
# Activity Lifecycle

Membahas state Activity Android: created, started, resumed, paused, stopped, destroyed; serta override callback onCreate, onResume, onPause, dan skenario rotasi layar.

Buka →
# Intents dan Navigation

Mengenal explicit intent untuk memulai Activity lain, implicit intent untuk membuka URL atau action sistem, serta Navigation Component untuk alur antar Fragment.

Buka →
# Layouts dan UI Components

Mengenal layout XML Android: LinearLayout, ConstraintLayout; common views seperti TextView, Button, RecyclerView; serta prinsip Material Design.

Buka →
# Jetpack Compose Fundamentals

Mengenal UI deklaratif Jetpack Compose: @Composable function, Column, Row, Box, Text, Button, dan anotasi @Preview.

Buka →
# Composable Functions

Membedah anotasi @Composable, sifat fungsi murni dari state, konsep recomposition, serta aturan stabilitas parameter.

Buka →
# State dan Recomposition

Membahas state hoisting, State`<T>` dan MutableState`<T>`, remember, serta rememberSaveable untuk mempertahankan state lintas perubahan konfigurasi.

Buka →
# Compose Layouts

Mengenal Column, Row, Box, LazyColumn, LazyRow, LazyVerticalGrid; serta rantai Modifier untuk padding, spacing, dan ukuran.

Buka →
# Compose Navigation

Navigation Component untuk Jetpack Compose: NavHost, route, argumen type-safe, dan bottom navigation bar.

Buka →
# ViewModel

Mengenal ViewModel sebagai penampung state UI yang bertahan lintas perubahan konfigurasi, viewModelScope untuk coroutine, dan ekspos StateFlow ke Compose.

Buka →
# Lifecycle-Aware Components

Mengenal LifecycleObserver, @OnLifecycleEvent, LifecycleService, dan komponen yang sadar terhadap siklus hidup Activity.

Buka →
# StateFlow untuk UI

Membeding StateFlow vs LiveData, pola single source of truth di ViewModel, dan collectAsState() di Compose.

Buka →
# Coroutines di Android

Menggunakan viewModelScope.launch dan lifecycleScope.launch, integrasi Retrofit + coroutines, serta perbedaan Dispatchers.Main vs Dispatchers.IO.

Buka →
# Repository Pattern Android

Mengenal Repository sebagai abstraksi sumber data (network, db) dengan single source of truth, serta lapisan Use Case untuk logika bisnis.

Buka →
# Room Database

Mengenal Room sebagai ORM Android: @Database, @Entity, @Dao, verifikasi SQL saat kompilasi, dan migrasi skema antar versi.

Buka →
# DataStore

Mengenal DataStore sebagai pengganti SharedPreferences: Preferences DataStore async dan Proto DataStore type-safe.

Buka →
# Networking dan Retrofit

Setup Retrofit, anotasi @GET/@POST, converter Moshi/Gson, dan OkHttp interceptor untuk autentikasi serta logging.

Buka →
# Serialization dan JSON

Mengenal kotlinx.serialization dengan @Serializable, @SerialName, custom serializer, dan perbandingan dengan Moshi untuk network DTO.

Buka →
# Dependency Injection dengan Hilt

Mengenal Hilt sebagai wrapper Dagger untuk Android: @HiltAndroidApp, @Inject, @Module, @InstallIn, dan @Provides.

Buka →
# Permissions dan Runtime Permissions

Mengenal runtime permission Android 6+: requestPermission API, rememberLauncherForActivityResult di Compose, dan UI rationale.

Buka →
# Background Work dengan WorkManager

Mengenal WorkManager untuk tugas latar belakang yang dijamin selesai: OneTimeWorkRequest, PeriodicWorkRequest, constraints, dan backoff policy.

Buka →
# Notifications

Mengenal notification channels Android 8+, NotificationManager, PendingIntent, action button, dan foreground service notification.

Buka →
# Android Security

Praktik keamanan aplikasi Android: penyimpanan terenkripsi, network security config, ProGuard/R8, dan mitigasi risiko umum.

Buka →
# Android Unit Testing

Strategi pengujian unit di Android: test lokal (JVM), instrumented test (di device/emulator), mock dengan MockK, dan pola MVVM testable.

Buka →
# Compose UI Testing

Pengujian UI Jetpack Compose: createComposeRule, findNode, performClick, dan screenshot testing.

Buka →
# Performance dan Profiling

Profiling aplikasi Android: CPU Profiler, Memory Profiler, Layout Inspector, dan Macrobenchmark untuk pengukuran kinerja.

Buka →
# Release dan Publishing

Build APK/AAB, sign dengan keystore, publikasi ke Google Play Console, dan staged rollout.

Buka →