Mengapa Menggunakan Injeksi Dependensi?
Buat kode yang mudah diuji dan modular.
Mengapa Menggunakan Injeksi Dependensi? adalah pelajaran Android Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Android Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Android Academy mencakup 4 pelajaran total.
Apa Itu Injeksi Dependensi?
Injeksi Dependensi (DI) berarti memberikan kepada suatu objek hal-hal yang dibutuhkannya dari luar, alih-alih membiarkannya membuat sendiri hal-hal tersebut.
Masalahnya: Dependensi yang Sulit Diubah
Ketika sebuah class membuat dependensinya sendiri, class tersebut menjadi sangat terikat dan sulit diubah atau diuji.
class UserViewModel {
private val repo = UserRepository(
ApiClient(), AppDatabase.get()
) // tightly coupled
}Solusinya: Lakukan Injeksi
Teruskan dependensi melalui konstruktor. Class tersebut tidak perlu lagi mengetahui cara pembuatannya.
class UserViewModel(
private val repo: UserRepository
) {
// repo supplied from outside
}Manfaat 1: Kemudahan Pengujian
Dalam pengujian, Anda dapat meneruskan repositori palsu atau tiruan, sehingga Anda dapat menguji ViewModel tanpa jaringan atau basis data nyata.
val vm = UserViewModel(FakeUserRepository())Manfaat 2: Modularitas
Karena class bergantung pada abstraksi, Anda dapat mengganti implementasi — misalnya API nyata dengan stub luring — tanpa menyentuh pengguna dependensi tersebut.
Bergantung pada Antarmuka
Buat class bergantung pada antarmuka, bukan pada tipe konkret. Inilah kunci untuk memudahkan penggantian.
interface UserRepository {
suspend fun getUsers(): List<User>
}
class NetworkUserRepository(
private val api: ApiService
) : UserRepository { /* ... */ }Manfaat 3: Tanggung Jawab Tunggal
Class berfokus pada tugasnya, bukan pada pembuatan kolaboratornya. Pembuatan objek dipindahkan ke tempat khusus.
DI Manual Menjadi Merepotkan
Anda dapat melakukan DI secara manual, tetapi ketika graf bertambah besar, Anda harus menghubungkan banyak objek secara manual dan meneruskannya melalui konstruktor. Proses ini melelahkan dan rentan terhadap kesalahan.
val db = AppDatabase.get(context)
val api = ApiService.create()
val repo = NetworkUserRepository(api)
val vm = UserViewModel(repo)
// ...repeated everywhereGunakan Kerangka Kerja DI
Kerangka kerja mengotomatiskan penghubungan ini. Anda cukup mendeklarasikan cara membuat setiap dependensi sekali, lalu kerangka kerja tersebut membangun seluruh graf untuk Anda.
Mengapa Hilt
Hilt adalah kerangka kerja DI yang direkomendasikan untuk Android. Dibangun di atas Dagger, Hilt menyediakan komponen standar dengan scope yang sesuai untuk class Android (Application, Activity, ViewModel), dengan jauh lebih sedikit kode tambahan.
Yang Disediakan Hilt
- Pembuatan graf dependensi secara otomatis.
- Scope yang menyadari siklus hidup.
- Injeksi yang mudah ke dalam Activity, Fragment, dan ViewModel.
Pelajaran berikutnya akan menyiapkan semua ini.
Pemeriksaan Singkat
Uji pemahaman Anda tentang injeksi dependensi.
Rangkuman
Anda telah mempelajari:
- DI memasok dependensi dari luar, bukan membuatnya secara internal.
- DI meningkatkan kemudahan pengujian, modularitas, dan pemisahan tanggung jawab.
- Bergantunglah pada antarmuka.
- DI manual tidak dapat berkembang dengan baik; Hilt mengotomatiskannya.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengapa Menggunakan Injeksi Dependensi?” gratis?
Ya — teks lengkap “Mengapa Menggunakan Injeksi Dependensi?” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Android Academy, upgrade ke CoddyKit PRO. Kursus Android Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mengapa Menggunakan Injeksi Dependensi?”?
Buat kode yang mudah diuji dan modular. Kamu berlatih Android Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Android Academy?
Tidak diperlukan pengalaman sebelumnya. Android Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Mengapa Menggunakan Injeksi Dependensi?” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Android Academy ini?
Ya. Setiap pelajaran Android Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengapa Menggunakan Injeksi Dependensi?
- Menyiapkan Hilt
- Modul dan Penyedia
- Menginjeksi ke ViewModel