hiltViewModel ve @HiltViewModel
ViewModels'leri Composable'lara enjekte edin.
hiltViewModel ve @HiltViewModel, CoddyKit'te ücretsiz bir Jetpack Compose 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, Jetpack Compose Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Jetpack Compose Academy kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
ViewModels Need Dependencies Too
Your ViewModel usually depends on a repository or use case. Hilt can inject those for you, so you never build them by hand again.
Annotate the ViewModel
Mark the class with @HiltViewModel and add @Inject to its constructor. Hilt now knows how to create it with all its dependencies.
@HiltViewModel
class FeedViewModel @Inject constructor(private val repo: Repo) : ViewModel()Inject Anything It Needs
Constructor parameters can be any type Hilt knows, like a repository, a use case, or a logger. Hilt resolves the whole chain for you.
@HiltViewModel
class FeedViewModel @Inject constructor(
repo: Repo, logger: Logger
) : ViewModel()Get One in Compose
Inside a Composable, call hiltViewModel() to obtain a Hilt-built ViewModel. No factory boilerplate, just one clean call.
@Composable
fun FeedScreen(vm: FeedViewModel = hiltViewModel()) { }Add the Compose Dependency
hiltViewModel() lives in the hilt-navigation-compose artifact. Add it to your Gradle file so the function is available in your screens.
implementation("androidx.hilt:hilt-navigation-compose:1.2.0")Default Parameter Pattern
Putting hiltViewModel() as a default parameter keeps the Composable testable. A test can still pass a fake ViewModel directly.
@Composable
fun FeedScreen(vm: FeedViewModel = hiltViewModel())Scoped to the Owner
hiltViewModel() scopes the instance to the nearest ViewModelStoreOwner, usually the Activity or nav destination, so it survives recomposition.
One ViewModel Per Destination
Inside a NavHost, each destination gets its own ViewModel instance. Navigate away and back, and that screen receives a fresh one.
Mark the Activity Too
The host Activity must carry @AndroidEntryPoint so Hilt can deliver ViewModels into its Composables. Without it, injection fails.
@AndroidEntryPoint
class MainActivity : ComponentActivity()Expose State, Hide Logic
The injected ViewModel exposes UI state and the screen just reads it. Your Composable stays thin while logic lives in one tested place.
val state by vm.uiState.collectAsStateWithLifecycle()No Manual Factories
Before Hilt you wrote a ViewModelProvider.Factory for each ViewModel with arguments. Hilt removes that boilerplate completely. 🎁
Quick Check
Which pair correctly sets up a Hilt-injected ViewModel for a Composable?
Recap: Injected ViewModels
You learned to tag a ViewModel with @HiltViewModel and fetch it via hiltViewModel(), scoped to its owner with zero factory code. ✨
Yapay zeka eğitmeniyle Kotlin öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“hiltViewModel ve @HiltViewModel” dersi ücretsiz mi?
Evet — “hiltViewModel ve @HiltViewModel” 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 Jetpack Compose Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Jetpack Compose Academy kursu toplamda 4 dersten oluşur.
“hiltViewModel ve @HiltViewModel” dersinde ne öğreneceğim?
ViewModels'leri Composable'lara enjekte edin. Jetpack Compose 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.
Jetpack Compose Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Jetpack Compose 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.
“hiltViewModel ve @HiltViewModel” 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 Jetpack Compose Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Jetpack Compose 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
- DI Neden Kullanılır: Test Edilebilir, Ayrıştırılmış Kod
- Modüller, @Provides ve @Binds
- hiltViewModel ve @HiltViewModel
- Kapsamlar ve Bileşen Ömürleri