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 🧐
- 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? 😎
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 :