Android'de Data Binding

Güncelleme tarihi: 10 Haz 2021

Herkese selamlar. Bugün oldukça geniş bir konu olan Data Binding‘i elimden geldiğince ifade etmeye çalışacağım. Biraz uzun bir yazı olacak. Kahveler hazırsa hadi başlayalım.



Görsel Referansı


Kotlin 1.40.20-M2 güncellemesi ile Kotlin Android Extensions içerisinde kullanılan Synthetic'in devre dışı bırakıldığını duymuşuzdur. Peki bu ne anlam ifade ediyor? Artık oluşturduğumuz component;lere direkt ulaşamayacağız. Çözüm olarak ViewBinding, Data Binding veya findViewById kullanmamız gerekecek.


Data Binding Nedir?


Data Binding bir Android Jetpack öğesidir. XML içerisinde değişken tanımlayıp bu değişkenleri component'ler üzerinde farklı amaçlarla kullanmamıza olanak tanır. XML ile Model'in iletişimine imkan verir de diyebiliriz.


Data Binding Neye Çözüm Sunuyor?


Bir konunun iyi bir şekilde anlaşılması için neye çözüm sunduğunu anlamak oldukça önemlidir. Component‘ler üzerinde değer ataması, visibility, onClick, onTextChange gibi ifadelendirmeleri XML üzerinden yönlendirebilmemize olanak tanıyor. Böylelikle ekstra kod kalabalığından kurtuluyoruz. Ayrıca componentler için BindingAdapter da oluşturabilir, bu adapter‘larla dilediğimiz birçok işlemi gerçekleştirebiliriz. Data Binding ile Observable kullanılarak değerler değiştiğinde otomatik olarak component'ler üzerinde değişiklik yapabiliriz. Bu ve bunun gibi birçok alanda çeşitli çözümler sunmaktadır.


Yukarıda bahsettiğim gibi aslında çok uzun bir konu. Data Binding için seri şeklinde yazılmış bloglar mevcut. Elimden geldiğince ifade etmeye çalışacağım. Öyleyse haydi inişe geçelim.

İlk olarak basit bir şekilde nasıl Data Binding kullanılır onunla başlayalım.



Build.Gradle(APP)


plugins {..
id 'kotlin-kapt'}
buildFeatures {
    dataBinding