Kotlin Live Template ile Recycler View Adapter Oluşturma
Merhaba, Android ile uygulama yazarken birden fazla defa kullanmamız gerek birçok kod parçası olmuştur. Hatta bunlardan bazıları uzun uğraşlar sonucu ortaya çıkar ve bu işlemi her yapışımızdan sonra daha sıkıcı bir hal almaya başlar. Bu yazıda Android 4.0 ile Kotline gelen Live Template özelliğini Recycler View Adapter üzerinde anlatacağım.
Bu işlemi gerçekleştirmemiz için öncelikle elimizde örnek bir kod olması gerekli. CustomAdapter sınıfı en basit şekli ile aşağıdaki gibi olmalı.
Bu sınıfı oluşturduktan sonra sınıftaki kodları kopyalıyoruz (importlar olmadan).
Android Studio’da Live Templates kısmına geliyoruz. Bu kısıma ulaşmak için File -> Settings (Ctr+Alt+S) -> Editor -> Live Templates yolunu izleyebilir veya klavyeden Ctrl+Shift+A tuşlarına basarak çıkan ekrandan Live Template yazabilirsiniz. Bu kısımda birçok hazır Template bulunmakta biraz gezinerek gerçekten işinize yarayacak özellikler keşfedebilirsiniz.
Burada birçok dosya bulunmakta peki biz kendi hazırlayacağımız özelliği nereye ekleyeceğiz ? Tabii ki istediğiniz klasöre ekleyebilirsiniz fakat daha derli toplu olması için kendi Template klasörünüzü oluşturmanızı tavsiye ederim. Bunun için sağ kısımda bulunan + ikonuna basarak 2. sıradaki Template Group seçeneğini seçerek eklemek istediğiniz klasör ismini girebilirsiniz. Bu işlemi yaptıktan hazır Templet eklemek için oluşturduğunuz klasörü seçerek sağ kısımda bulunan + ikonuna tıklayıp Live Template seçeneğini seçmektir. Daha sonra karşınıza açılan ekrandan gerekli özellikleri seçmelisiniz.
Kod yazarken, oluşturduğumuz Template’yi Abbreviation kısmına yazdığımız isimle çağıracağız. O yüzden verdiğiniz ismin uniqe olduğundan emin olun. İsim verme işleminden sonra bu Template’yi nerelerden çağırabileceğimizi seçmeliyiz. Eğer her yerden çağırmak istiyorsak Define butonuna tıklayarak Kotlin -> Top-Level kısmını seçebiliriz.
Bu işlemden sonra daha önce kopyalamış olduğumuz kodu Template text kısmına yapıştırıyoruz, kaydediyoruz ve çıkıyoruz. Daha sonra herhangi bir .kt dosyasında Template’ye verdiğimiz ismi yazdığımızda IDE otomatik olarak öneriyor.
Burayı seçtikten sonra kodumuz otomatik olarak tamamlanıyor fakat importlar eksik. Bunun için Template kısmına importları da ekleyebiliriz fakat bu uygun bi yapı olmaz. Onun yerine importları elimizle yapıyoruz ve o importun nereden geldiğini öğreniyoruz. Mesela View’ı kullanabilmek için android.view.View import edilmeli. Gerekli import yolunu kopyalıyoruz ve Ayarlardan oluşturduğumuz Live Template’i açıyoruz. Daha sonra bu importu hangi View’ı kullanmak için yapmamız gerekiyor ise o kısıma yapıştırıyoruz.
Bu işlemden sonra aynı işlemleri diğer Viewlar için de gerçekleştiriyoruz ve en sonda oluşturduğumuz Template aşağıdaki gibi oluyor.
Fakat buradaki sorun ise bizim oluşturacağımız Adapter Sınıfının ve row_item xml dosyasının ismi her zaman aynı olmayacak. Bu eksikliğin önüne geçmek için ise hangi kısımların değişiklik içermesi gerekiyor ise o kısmı silip ‘$’ işaretleri arasında bir değişken ismi belirliyoruz. Daha sonra bu değişkenin Template oluşturulduktan sonra nasıl davranması gerektiğini belirliyoruz.
Ben Sınıf ismi için CLASSNAME tek satırdan oluşan item için ise CUSTOMROW isimlerini kullandım. İsimlendirme işlemini yaptıktan sonra sıra değişkenlerin davranışını belirlemeye geldi. Sağ kısımda buluna Edit variables butonuna tıklıyoruz ve açılan ekranda CLASSNAME için fileNameWithoutExtension(), CUSTOMROW için ise completeSmart() özelliğini seçiyoruz. fileNameExtension(), Template oluşturulduğunda o kısıma .kt uzantılı dosyanın ismi ne ise onu yazacaktır. completeSmart() ise R.layout klasöründeki dosyalardan seçim yapmanızı isteyecektir.
Artık Adapter yazarken eskisi kadar uğraşmayacaksınız. Ayrıca bu özelliği diğer birçok kod parçası için kullanabilirsiniz. Android Studio’nun hazır olarak sunduğu Templatelere de bakarak onları da kullanabilirsiniz. Örnek olarak Toast mesaj yazmak istiyorsanız toast, Logcat’e Exception kaydı düşmek istiyorsanız loge yazarak uzun kod yazımlarını daha az efor sarfederek yazabilirsiniz.
https://www.mobiler.dev/post/android-studio-4-0-ile-gelen-yenilikler