Escopos e Tempos de Vida dos Componentes
Controle por quanto tempo as dependências permanecem ativas.
Escopos e Tempos de Vida dos Componentes é uma aula grátis de Jetpack Compose Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Jetpack Compose Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Jetpack Compose Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
What a Scope Controls
A scope decides how long Hilt keeps a single instance alive and where it gets shared. It is about lifetime, not just creation.
Unscoped by Default
Without a scope annotation, Hilt builds a new instance every time it is requested. That is fine for cheap, stateless objects.
@Provides
fun provideMapper(): Mapper = Mapper() // fresh each timeComponents Mirror Android
Hilt provides a set of components that match Android lifetimes, from the whole app down to a single view. Each owns its own instances.
App-Wide With Singleton
SingletonComponent lives as long as the app. Bindings here with @Singleton are created once and shared across every screen.
@InstallIn(SingletonComponent::class)Per-Activity Lifetime
ActivityComponent follows one Activity. Use @ActivityScoped to share an instance across that Activity and recreate it on a new one.
@ActivityScoped
class FormState @Inject constructor()ViewModel Scope
ViewModelComponent matches a ViewModel's life. With @ViewModelScoped a dependency is shared only within that one ViewModel.
@ViewModelScoped
class SessionCache @Inject constructor()Scope Equals Annotation Plus Component
Each scope annotation pairs with one component. @Singleton goes with SingletonComponent, @ActivityScoped with ActivityComponent, and so on.
Lifetimes Form a Hierarchy
Components nest: an Activity lives inside the app, a Fragment inside the Activity. A child can use anything its parents provide.
Scope With Care
Scoping costs memory, because the instance is held until its component dies. Only scope objects whose state genuinely needs to be shared.
Avoid Leaking the Wider Scope
Never inject a short-lived object, like an Activity, into a Singleton. The longer-lived holder would keep it alive and leak memory. ⚠️
Picking the Right Scope
Match the scope to the data's life: app config in Singleton, screen state in ViewModelScoped. The right fit prevents leaks and waste.
Quick Check
You want one shared instance for the entire app lifetime. Which scope fits?
Recap: Lifetimes Under Control
You learned that scopes tie an instance's lifetime to a component, from Singleton down to ViewModel, so dependencies live exactly as long as needed. 🎯
Aprenda Kotlin com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Escopos e Tempos de Vida dos Componentes” é grátis?
Sim — o texto completo de “Escopos e Tempos de Vida dos Componentes” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Jetpack Compose Academy, atualize para CoddyKit PRO. O curso de Jetpack Compose Academy inclui 4 aulas no total.
O que vou aprender em “Escopos e Tempos de Vida dos Componentes”?
Controle por quanto tempo as dependências permanecem ativas. Você pratica Jetpack Compose Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Jetpack Compose Academy?
Nenhuma experiência prévia é necessária. Jetpack Compose Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Escopos e Tempos de Vida dos Componentes”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Jetpack Compose Academy?
Sim. Cada aula de Jetpack Compose Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Por que DI: Código Testável e Desacoplado
- Módulos, @Provides e @Binds
- hiltViewModel e @HiltViewModel
- Escopos e Tempos de Vida dos Componentes