Modüller ve Sağlayıcılar
Hilt'e bağımlılıkları nasıl oluşturacağını bildirin.
Modüller ve Sağlayıcılar, CoddyKit'te ücretsiz bir Android Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 4 dersten oluşur.
Hilt'e Nesneleri Nasıl Oluşturacağını Söyleme
Kurucusu @Inject ile işaretlenmişse Hilt bir sınıfı otomatik olarak oluşturabilir. Ancak arayüzler veya sahibi olmadığınız türler için Hilt'e bir Module ile nasıl oluşturacağını öğretmeniz gerekir.
Kurucu Enjeksiyonu
En basit durum şudur: Kurucuyu işaretlersiniz ve Hilt onu nasıl oluşturacağını bilir.
class Analytics @Inject constructor(
private val api: ApiService
)Kurucu Enjeksiyonu Yeterli Olmadığında
Şunların kurucusunu işaretleyemezsiniz:
- Bir arayüzün (kurucusu yoktur).
- Bir kütüphaneden gelen sınıfın (örneğin Retrofit veya Room).
Bunlar için bir modül gerekir.
Modül Tanımlama
@Module, Hilt'e türleri nasıl sağlayacağını söyler. @InstallIn, ait olduğu bileşeni (kapsamı) belirtir.
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
@Module
@InstallIn(SingletonComponent::class)
object NetworkModuleKütüphane Türleri İçin @Provides
Bağımlılığı oluşturan ve döndüren bir işlev üzerinde @Provides kullanın. Hilt, bu türe ihtiyaç duyulduğunda işlevi çağırır.
@Provides
@Singleton
fun provideRetrofit(): Retrofit =
Retrofit.Builder()
.baseUrl("https://api.example.com/")
.build()Sağlayıcılar Birbirine Bağlı Olabilir
Bir @Provides işlevi parametre alabilir; Hilt bu parametreleri grafikten sağlar.
@Provides
fun provideApi(retrofit: Retrofit): ApiService =
retrofit.create(ApiService::class.java)Arayüzler İçin @Binds
Bir arayüzü bir uygulamaya bağlamak için soyut bir modülde @Binds kullanın. Basit bağlama işlemlerinde @Provides'ten daha verimlidir.
@Module
@InstallIn(SingletonComponent::class)
abstract class RepoModule {
@Binds
abstract fun bindRepo(
impl: NetworkUserRepository
): UserRepository
}@Provides ve @Binds Karşılaştırması
- @Binds — yalnızca bir arayüzü, kurucu enjeksiyonu olan bir uygulamaya eşlediğinizde kullanılır. Soyut işlev.
- @Provides — nesneyi oluşturmak için kod çalıştırmanız gerektiğinde kullanılır (örneğin bir oluşturucu).
@Singleton ile Kapsam Belirleme
Hilt'in her seferinde yeni bir örnek oluşturmak yerine tüm uygulama boyunca tek bir örneği yeniden kullanması için sağlayıcıyı @Singleton gibi bir kapsamla işaretleyin.
Kapsamı Bileşenle Eşleştirme
Kapsam bileşenle eşleşmelidir: SingletonComponent ile @Singleton, ActivityComponent ile @ActivityScoped ve benzeri.
Modül Özeti
@Module+@InstallIn, bağlamaların nerede bulunacağını tanımlar.@Provides, kütüphane veya karmaşık türleri oluşturur.@Binds, arayüzleri uygulamalara eşler.
Hızlı Kontrol
Modüller ve sağlayıcılar konusundaki anlayışınızı sınayın.
Özet
Şunları öğrendiniz:
- Kurucu enjeksiyonu, sınıfın sahibi olduğunuzda çalışır.
@Module+@InstallIn, Hilt'e diğer türleri nasıl sağlayacağını öğretir.@Provides, kütüphane veya karmaşık nesneleri oluşturur;@Binds, arayüzleri eşler.@Singletongibi kapsamları ilgili bileşenleriyle eşleştirin.
Sıkça Sorulan Sorular
“Modüller ve Sağlayıcılar” dersi ücretsiz mi?
Evet — “Modüller ve Sağlayıcılar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 4 dersten oluşur.
“Modüller ve Sağlayıcılar” dersinde ne öğreneceğim?
Hilt'e bağımlılıkları nasıl oluşturacağını bildirin. Android Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Android Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Android Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Modüller ve Sağlayıcılar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Android Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Android Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Bağımlılık Enjeksiyonu Neden Kullanılır
- Hilt Kurulumu
- Modüller ve Sağlayıcılar
- ViewModel'lere Enjeksiyon