Android Architecture Components #2 Live Data para criação de Observables em Kotlin

Na postagem anterior falei um pouco sobre os architecure components e sobre o padrão MVVM. Dentre as características desse padrão, em diferentes momentos citei o fluxo unidirecional de informações como sendo uma das principais vantagens do MVVM, e que uma das maneiras de implementá-lo é expondo informações através de observables.

Live Data

Live Data é uma wrapper class disponibilizada pelo pacote de architecture components para permitir que dados sejam observados, e como explicado anteriormente, pode utilizada dentro de ViewModels para expor informações. Você pode utilizá-la da seguinte forma:

data class Usuario(nome: String)class DashboardViewModel : ViewModel {
var usuario: LiveData<Usuario> = MutableLiveData()
fun getUserInfo(): LiveData<Usuario>{
usuario = repository.loadInfo()
/*
* repository retorna uma instância de LiveData
*/
}
}

Uma vez que o usuário está envolvido em um LiveData, as informações podem ser observadas em uma LifecycleActivity ou LifecycleFragment da seguinte forma:

class DashboardActivity : LifecycleActivity {
override fun onCreate(state: Bundle?) {
super.onCreate(state)
setContentView(R.layout.activity_dashboard)
val viewModel = ViewModelProviders.of(this).get(DashboardViewModel::class.java)
viewModel.usuario.observe(this, Observer { usuario ->
//Update view com dados do usuário
text_view_nome_usuario.text = usuario.nome
}
}
}

Desta forma, sempre que o usuário for atualizado no ViewModel, digamos, por uma chamada ao banco de dados, o código contido na View será invocado, e consequentemente a View estará sempre sincronizada com as informações do usuário.


It is our job to parent ourselves so we can be what we want to be. — Mel Robbins

Essa é uma forma de implementar o padrão MVVM com o auxílio dos architecture components disponibilizados pelo Google. Se você gostou dessa postagem, não se esqueça de compartilhar e me seguir para ficar atualizado sobre as próximas postagens.

Até mais.

Jefferson Tavares de Pádua

Written by

Android Associate Developer, ReactJS & NodeJS

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade