#Android Kotlin ViewModel ve Livedata
Görsel Kaynak: https://www.youtube.com/watch?v=suC0OM5gGAA
Temiz kod mantığı ve bu mantık doğrultusunda geliştirilmiş mimari desenler bir çok yazılım diline uygulanabildiği gibi Android uygulama geliştirmede de sıkça kullanılır.
Bu prensipler bir uygulamada farklı görevler için kullanılan kodların farklı sınıfların içerisinde olması gerektiğini savunur.
Android uygulama geliştirirken, Activity ve Fragment gibi sınıflarda sadece kullanıcının etkileşimde olduğu aksiyonların kodlarının yazılması gerekir. Bu yüzden kullanıcının aksiyonlarının hazırlandığı, UI'daki elementlerin manipüle edilmesinden önceki işlemleri ViewModel'lar içinde yazarız.
ViewModel'lar ile View'ler arasında anlık veri alış-verişi olması gereken durumlarda soket mantığıyla çalışan, gözlemlenebilir, değişiklik olduğu zaman bizi haberdar eden bir yapıya ihtiyaç duyarız.
İşte LiveData tam olarak bunun için kullanılmaktadır.
MainActivity
viewModel.textContent.observe(this, {
binding.txtMain.text = it
})
MainActivityViewModel
private var _textContent = MutableLiveData<String>()
val textContent: LiveData<String> get() = _textContent