Jetpack Compose Academy · Pelajaran

Mengapa DI: Kod Boleh Diuji dan Terpisah

Lihat masalah yang diselesaikan oleh Hilt.

Pelajaran 1 daripada 413 langkah

Mengapa DI: Kod Boleh Diuji dan Terpisah ialah pelajaran Jetpack Compose Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Jetpack Compose Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Jetpack Compose Academy merangkumi sejumlah 4 pelajaran.

Apakah Suntikan Kebergantungan?

Suntikan kebergantungan bermaksud sesuatu kelas menerima objek yang diperlukannya dari luar, bukannya membinanya sendiri. Kurang kerja pendawaian, lebih banyak tumpuan. 🔌

Masalahnya: new di Mana-mana

Apabila sesuatu kelas memanggil new untuk kebergantungannya sendiri, kelas itu terikat pada jenis tersebut. Mengubah satu perkara memaksa Anda menyunting banyak fail.

class Repo {
    private val api = ApiService() // hard-wired
}

Suntik, Jangan Bina

Hantar kebergantungan melalui pembina dan biarkan perkara lain menciptanya. Kini kelas Anda hanya menyatakan perkara yang diperlukannya, bukan cara membinanya.

class Repo(private val api: ApiService) {
    // api is given to us
}

Pemisahan Kebergantungan Secara Nyata

Dengan suntikan, kod Anda bergantung pada antara muka, bukan kelas konkrit. Anda boleh menggantikan pelaksanaan sebenar dengan pelaksanaan lain tanpa menyentuh pengguna.

interface ApiService { fun load(): String }
class Repo(private val api: ApiService)

Kebolehujian ialah Kelebihan Utama

Dalam ujian, Anda hanya perlu menghantar kebergantungan palsu. Tiada rangkaian, tiada pangkalan data, tiada kejutan—hanya pemeriksaan yang pantas dan boleh dijangka. ✅

val fake = object : ApiService { override fun load() = "hi" }
val repo = Repo(fake)

DI Manual Menjadi Leceh

Anda boleh melakukan suntikan secara manual, tetapi menyambungkan graf yang mendalam bermakna menulis banyak kod berulang. Setiap kebergantungan baharu merambat naik melalui pembina.

val api = ApiService()
val repo = Repo(api)
val vm = MyViewModel(repo) // by hand

Perkenalkan Hilt

Hilt ialah pustaka DI yang disyorkan untuk Android. Hilt menjana pendawaian untuk Anda pada masa kompilasi, jadi Anda hanya menerangkan keperluan dan Hilt membina graf tersebut.

Hilt Dibina Berasaskan Dagger

Hilt dibina berasaskan Dagger tetapi menambah lalai yang memahami Android. Anda mendapat keselamatan masa kompilasi dengan persediaan yang jauh lebih sedikit berbanding Dagger mentah.

Tandakan Aplikasi Anda

Hilt bermula pada akar aplikasi. Anotasikan kelas Application Anda dengan @HiltAndroidApp untuk menjana bekas kebergantungan peringkat teratas.

@HiltAndroidApp
class MyApp : Application()

Suntik Dengan @Inject

Tambahkan @Inject pada pembina dan Hilt akan mengetahui cara mencipta jenis tersebut. Selepas itu, Hilt boleh membekalkannya di mana-mana sahaja ia diperlukan.

class Repo @Inject constructor(private val api: ApiService)

Keselamatan Masa Kompilasi

Jika kebergantungan tiada, Hilt gagal pada masa kompilasi, bukan semasa masa jalan. Anda dapat mengesan kesilapan pendawaian sebelum aplikasi dihantar kepada pengguna. 🛡️

Semakan Pantas

Manfaat manakah yang paling tepat menjelaskan sebab kita menggunakan suntikan kebergantungan?

Imbas Kembali: Mengapa DI Penting

Anda telah mempelajari bahawa DI memberikan kebergantungan kepada kelas, memisahkan kod dan menjadikan ujian mudah. Hilt mengautomatikkan pendawaian itu pada masa kompilasi. 🎉

Percuma untuk bermula

Pelajari Kotlin dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Mengapa DI: Kod Boleh Diuji dan Terpisah” percuma?

Ya — teks penuh “Mengapa DI: Kod Boleh Diuji dan Terpisah” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Jetpack Compose Academy, tingkat taraf kepada CoddyKit PRO. Kursus Jetpack Compose Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Mengapa DI: Kod Boleh Diuji dan Terpisah”?

Lihat masalah yang diselesaikan oleh Hilt. Anda berlatih Jetpack Compose Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Jetpack Compose Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Jetpack Compose Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Mengapa DI: Kod Boleh Diuji dan Terpisah” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Jetpack Compose Academy ini?

Ya. Setiap pelajaran Jetpack Compose Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mengapa DI: Kod Boleh Diuji dan Terpisah
  2. Modul, @Provides & @Binds
  3. hiltViewModel & @HiltViewModel
  4. Skop & Jangka Hayat Komponen
← Kembali ke Jetpack Compose Academy