Kata Pengantar
Testimoni
- Manuel Vivo (Staff Android Engineer di Bumble, Mantan Android DevRel di Google)
- Matt McKenna (Senior Android Engineer di Block, Android GDE)
- Alejandra Stamato (Lead Android Engineer di HubSpot, Mantan Android DevRel di Google)
- Simona Milanovic (Senior Android Developer Relations Engineer)
Tentang Buku Ini
- Untuk Para Peserta Wawancara
- Untuk Pewawancara
Sponsor
- Stream
Laporan Masalah & Diskusi
0. Pertanyaan Wawancara Android
- Kategori 0: Kerangka Kerja Android
- Q) 0. Apa itu Android?
- Q) 1. Apa itu Intent?
- Q) 2. Apa tujuan dari Pending Intent?
- Q) 3. Apa perbedaan antara Serializable dan Parcelable
- Q) 4. Apa itu Context dan apa saja jenis Context yang ada?
- Q) 5. Apa itu kelas Application?
- Q) 6. Apa tujuan dari file AndroidManifest?
- Q) 7. Jelaskan siklus hidup Activity
- Q) 8. Jelaskan lifecycle Fragment
- Q) 9. Apa itu Service?
- Q) 10. Apa itu BroadcastReceiver?
- Q) 11. Apa tujuan ContentProvider, dan bagaimana ia memfasilitasi berbagi data yang aman antar aplikasi?
- Q) 12. Bagaimana cara menangani perubahan konfigurasi?
- Q) 13. Bagaimana Android menangani manajemen memori, dan bagaimana cara menghindari kebocoran memori?
- Q) 14. Apa penyebab utama kesalahan ANR, dan bagaimana Anda dapat mencegahnya?
- Q) 15. Bagaimana cara menangani deep links?
- Q) 16. Apa itu task dan back stack?
- Q) 17. Apa tujuan dari Bundle?
- Q) 18. Bagaimana cara Anda mengirim data antar Activities atau Fragments
- Q) 19. Apa yang terjadi pada Activity selama perubahan konfigurasi?
- Q) 20. Apa itu ActivityManager?
- Q) 21. Apa keuntungan menggunakan SparseArray
- Q) 22. Bagaimana cara menangani izin runtime?
- Q) 23. Apa peran Looper, Handler, dan HandlerThread?
- Q) 24. Bagaimana cara melacak eksepsi?
- Q) 25. Apa itu build variants dan flavors?
- Q) 26. Bagaimana cara memastikan aksesibilitas?
- Q) 27. Apa itu sistem berkas Android?
- Q) 28. Apa itu Android Runtime (ART), Dalvik, dan Dex Compiler?
- Q) 29. Apa perbedaan antara file APK dan file AAB?
- Q) 30. Apa itu optimasi R8?
- Q) 31. Bagaimana cara mengurangi ukuran aplikasi?
- Q) 32. Apa itu proses dalam aplikasi Android, dan bagaimana sistem operasi Android mengelolanya?
- Kategori 1: UI Android - Views
- Q) 33. Jelaskan siklus hidup View
- Q) 34. Apa perbedaan antara View dan ViewGroup?
- Q) 35. Pernahkah Anda menggunakan ViewStub dan bagaimana Anda mengoptimalkan kinerja UI menggunakannya?
- Q) 36. Bagaimana cara mengimplementasikan view kustom?
- Q) 37. Apa itu Canvas dan bagaimana cara menggunakannya?
- Q) 38. Apa itu invalidasi dalam sistem View?
- Q) 39. Apa itu ConstraintLayout?
- Q) 40. Kapan Anda harus menggunakan SurfaceView alih-alih TextureView?
- Q) 41. Bagaimana cara kerja RecyclerView secara internal?
- Q) 42. Apa perbedaan antara Dp dan Sp?
- Q) 43. Apa kegunaan dari nine-patch image?
- Q) 44. Apa itu Drawable, dan bagaimana penggunaannya dalam pengembangan UI?
- Q) 45. Apa itu Bitmap di Android, dan bagaimana cara menangani Bitmap besar secara efisien?
- Q) 46. Bagaimana cara mengimplementasikan animasi?
- Q) 47. Apa itu Window?
- Q) 48. Bagaimana cara merender halaman web?
- Kategori 2: Pustaka Jetpack
- Q) 49. Apa itu pustaka AppCompat?
- Q) 50. Apa itu Material Design Components (MDC)?
- Q) 51. Apa keuntungan menggunakan ViewBinding?
- Q) 52. Bagaimana cara kerja DataBinding?
- Q) 53. Apa itu LiveData?
- Q) 54. Apa itu Jetpack ViewModel?
- Q) 55. Apa itu Jetpack Navigation Library?
- Q) 56: Apa itu Dagger 2 dan Hilt?
- Q) 57. Apa itu library Jetpack Paging?
- Q) 58. Apa itu Baseline Profile?
- Kategori 3: Logika Bisnis
- Q) 59. Bagaimana cara Anda mengelola tugas latar belakang yang berjalan lama?
- Q) 60. Bagaimana cara melakukan serialisasi format Json ke objek
- Q) 61. Bagaimana cara Anda menangani permintaan jaringan untuk mengambil data, dan library atau teknik apa yang Anda gunakan untuk efisiensi dan keandalan?
- Q) 62. Mengapa sistem paging penting untuk memuat kumpulan data besar, dan bagaimana cara mengimplementasikannya dengan RecyclerView?
- Q) 63. Bagaimana cara mengambil dan merender gambar dari jaringan?
- Q) 64. Bagaimana cara menyimpan dan mempertahankan data secara lokal?
- Q) 65. Bagaimana cara menangani fitur offline-first?
- Q) 66. Di mana Anda meluncurkan tugas untuk memuat data awal? LaunchedEffect vs. ViewModel.init()
1. Pertanyaan Wawancara Jetpack Compose
- Kategori 0: Dasar-Dasar Compose
- Q) 0. Apa struktur Jetpack Compose?
- Q) 1. Apa saja fase-fase Compose?
- Q) 2. Mengapa Jetpack Compose adalah kerangka kerja UI deklaratif?
- Q) 3. Apa itu rekomposisi, dan kapan hal itu terjadi? Juga, bagaimana hubungannya dengan kinerja aplikasi?
- Q) 4. Bagaimana cara kerja fungsi composable secara internal?
- Q) 5. Apa itu stabilitas dalam Jetpack Compose, dan bagaimana hubungannya dengan kinerja?
- Q) 6. Apakah Anda pernah memiliki pengalaman mengoptimalkan performa Compose dengan meningkatkan stabilitas?
- Q) 7. Apa itu composition dan bagaimana membuatnya?
- Q) 8. Strategi apa saja yang tersedia untuk migrasi proyek berbasis XML ke Jetpack Compose?
- Q) 9. Mengapa Anda harus selalu menguji performa Compose dalam mode release?
- Q) 10. Idiom Kotlin apa yang sering digunakan dalam Jetpack Compose?
- Kategori 1: Compose Runtime
- Q) 11. Apa itu State dan API apa yang digunakan untuk mengelolanya?
- Q) 12. Apa keuntungan yang bisa Anda dapatkan dari state hoisting?
- Q) 13. Apa perbedaan antara remember dan rememberSaveable?
- Q) 14. Bagaimana cara aman membuat scope coroutine dalam fungsi composable?
- Q) 15. Bagaimana cara menangani efek samping di dalam fungsi composable?
- Q) 16. Apa tujuan rememberUpdatedState, dan bagaimana cara kerjanya?
- Q) 17. Apa tujuan produceState, dan bagaimana cara kerjanya?
- Q) 18. Apa itu snapshotFlow dan bagaimana cara kerjanya?
- Q) 19. Apa tujuan dari derivedStateOf, dan bagaimana ini membantu mengoptimalkan rekomposisi?
- Q) 20. Apa siklus hidup dari fungsi composable atau Composition?
- Q) 21. Apa itu SaveableStateHolder?
- Q) 22. Apa tujuan dari sistem snapshot?
- Q) 23. Apa itu mutableStateListOf dan mutableStateMapOf
- Q) 24. Bagaimana cara mengumpulkan Flow Kotlin dalam fungsi composable dengan aman sambil mencegah kebocoran memori?
- Q) 25. Apa peran CompositionLocals?
- Kategori 2: Compose UI
- Q) 26. Apa itu Modifier?
- Q) 27. Apa itu Layout?
- Q) 28. Apa itu Box?
- Q) 29. Apa perbedaan antara Arrangement dan Alignment?
- Q) 30. Apa itu Painter?
- Q) 31. Bagaimana cara memuat gambar dari jaringan?
- Q) 32. Bagaimana cara merender ratusan item sebagai daftar secara efisien sambil menghindari ketidaklancaran UI?
- Q) 33. Bagaimana cara mengimplementasikan paginasi dengan lazy list?
- Q) 34. Apa itu Canvas?
- Q) 35. Pernahkah Anda menggunakan Modifier graphicsLayer?
- Q) 36. Bagaimana cara mengimplementasikan animasi visual di Jetpack Compose?
- Q) 37. Bagaimana cara melakukan navigasi antar layar?
- Q) 38. Bagaimana Preview bekerja dan bagaimana Anda menanganinya?
- Q) 39. Bagaimana cara menulis pengujian unit untuk komponen atau layar UI Compose?
- Q) 40. Apa itu pengujian tangkapan layar, dan bagaimana hal tersebut membantu memastikan konsistensi UI selama pengembangan?
- Q) 41. Bagaimana Anda memastikan aksesibilitas di Jetpack Compose?


