avatarHalil Özel

Özet

Kotlin Synthetic, Android geliştiricilerinin kullandığı bir eklenti, kullanımdan kaldırıldı ve alternatifler neler olduğuna bakılacaktır.

Öz

Kotlin Synthetic, Android geliştiricilerinin kullandığı bir eklenti, Kotlin 1.40.20-M2 güncelleme notlarında kullanımdan kaldırıldı. Bu ayrılık Kotlin Synthetic'in sadece Kotlin dilinde kullanılması, global isimlendirmelerde çirkin görüntü oluşturması, boş değer atamalarında bilgiyi göstermemesi ve Google'ın modüler bir şekilde çalışmayı teşvik etmesine rağmen Kotlin Synthetic'in 2018 yılından beri o yapıya uygun çalışmaması nedeniyle gerçekleşti. Kotlin Synthetic'in yerine 2 alternatif bulunmaktadır: findViewById ve View Binding. View Binding, Android Architecture Component'lerinden birisidir ve View'lerle etkileşime girerek daha kolay kod yazılmasını sağlar.

Bullet Points

  • Kotlin Synthetic, Android geliştiricilerinin kullandığı bir eklenti, Kotlin 1.40.20-M2 güncelleme notlarında kullanımdan kaldırıldı.
  • Kotlin Synthetic'in ayrılmasının nedenleri: sadece Kotlin dilinde kullanılması, global isimlendirmelerde çirkin görüntü oluşturması, boş değer atamalarında bilgiyi göstermemesi ve Google'ın modüler bir şekilde çalışmayı teşvik etmesine rağmen Kotlin Synthetic'in 2018 yılından beri o yapıya uygun çalışmaması.
  • Kotlin Synthetic'in yerine 2 alternatif bulunmaktadır: findViewById ve View Binding.
  • View Binding, Android Architecture Component'lerinden birisidir ve View'lerle etkileşime girerek daha kolay kod yazılmasını sağlar.

Bir Devrin Sonu: Kotlin Synthetic

Selamlar, Android geliştiricilerin kullandığı eklentilerden olan Kotlin Synthetic maalesef aramızdan ayrıldı. Haydi bu ayrılışın nedenlerini öğrenip, alternatifler nelermiş onları kavrayalım.

Kotlin 1.40.20-M2 güncelleme notlarında Kotlin Android Extensions içerisinde kullanılan Synthetic kullanımdan kaldırıldı. ☹️ Sürümle ilgili notları GitHub hesabından öğrenebilirsiniz:

Android-Kotlin geliştiricilerinin 1 numarası olan Synthetic, findViewById tanımlamasından kurtarıp daha safe, yalın kod yazılmasını sağlıyordu.

Peki bu ayrılık neden gerçekleşti 🧐

Android Kotlin Synthetic
  • Kotlin Synthetic, sadece Kotlin dilinde kullanılıyordu.
  • Global isimlendirmelerde çirkin görüntü oluşturuyordu.
  • Boş değer(nullability) atamalarında bilgiyi göstermiyordu.
  • Google modüler bir şekilde çalışmayı teşvik ederken Kotlin Synthetic, 2018 yılından beridir o yapıya uygun çalışmadı.

Detaylı bilgi için Android Developers Blog yazısını okuyabilirsiniz :

Ölenle ölünmüyor. Şimdi ne kullanacağız 🤓

2 alternatif bulunmaktadır. Yılların emektarı : findViewById diğeri ise Google’ın önerdiği View Binding.

  • findViewById: Yıllardır kullanılan bir tanımlama çeşididir. Hem Kotlin hemde Java’da kullanılmaktadır.
  • View Binding: Kotlin Synthetic’e göre biraz daha fazla kod yazılsada daha safe’tir. Birçok işlem yapılmaktadır.

View Binding Nedir? 😎

View Binding

Android Architecture Component’lerinden birisidir. Data Binding ile karıştırılmamalıdır. İkisi farklı işlevlerde kullanılmaktadır. View’lerle etkileşime girerek daha kolay kod yazılmasını sağlar. Bir class, fragment vb içerisinde View Binding nesnesi oluşturulduğunda xml’deki elemanlara bu nesne üzerinden erişim sağlanmaktadır. Hem Java hem de Kotlin dilinde kullanılmaktadır.

Nasıl Kullanılır? 👀

View Binding kullanabilmeniz için en az Android Studio sürümünüz 3.6 olmalıdır.

Aşağıdaki kodu build.gradle dosyası içine ekliyoruz :

Bu eklemeyle kullanmak istediğimiz yerde bize bir View Binding nesnesi oluşturup onun üzerinden ilgili view elemanlarına erişip istediğimiz işlemleri yapabileceğiz.

  • Activity içerisinde View Binding kullanımı

bindingMain adında bir nesne oluşturduk. onCreate() fonksiyonu içerisinde ise bunu kullanacağımızı belirttik. Şimdi istediğimiz gibi view elemanlarına erişip, kullabileceğiz.

bindingMain.nameSurname.text = "Halil Ozel"
  • Fragment içerisinde View Binding kullanımı

Activity’e göre kullanırken dikkatli olmalısınız. Binding nesnesini, OnDestroyView() fonksiyonunda temizlemezseniz, memory hataları alabilirsiniz.

bindingMain nesnesi oluşturduk. Dilediğimiz şekilde view elemanlarını kullanabiliriz.

bindingMain.job.text = "Mobile Application Developer"

Evet Arkadaşlar, Kotlin Synthetic’i ebede uğurlarken View Binding’e tekrardan hoşgeldin diyoruz. Keyifli kodlamalar herkese :)

Kotlin
View Binding
Android
Android App Development
Kotlin Android Extensions
Recommended from ReadMedium