Anasayfa / Kütüphaneler / Android ButterKnife Kütüphanesi Kullanımı

Android ButterKnife Kütüphanesi Kullanımı

Merhaba. Bu yazımda Android platformunda kullanıma sunulan, bazı kod bloklarını basitleştiren ve okunabilirliği arttıran ButterKnife kütüphanesinden bahsedeceğim.

ButterKnife, Square firmasında Jake Wharton tarafından geliştirilmiş kullanışlı bir kütüphanedir.

ButterKnife ile Xml yani tasarım tarafında oluşturduğumuz bazı elemanları, Java tarafına geçirmemizi ve kullanabilmemizi sağlar. Xml tarafından kastım Button, TextView, ListView, Drawable, Color, Strings vs.

ButterKnife kütüphanesinin kullanımını basit bir örnek üzerinde gösterelim.

İlk olarak build.gradle dosyamızı hazırlayalım. ButterKnife kütüphanesini kullanabilmek için build.gradle dosyasında en tepeye aşağıdaki satır eklenir.

En altta dependencies kısmına ise şu 2 satır kod eklenmelidir. Son hali:

Örnek olarak ekranımıza basit bir buton ekleyelim ve tıklama olayına 1-2 satırlık kod yazalım.

Normalde klasik olarak butonun tıklama eventi için önce butonu findViewById ile bağlıyoruz ve bir Listener kullanarak işlemi yapıyoruz.

Şu anki yapıda, klasik olarak bildiğimiz kod şu şekildedir:

Basit olarak bir adet butonumuz var ve tıklandığında mesaj verip, görselle ilgili değişiklikler yaptık.

ButterKnife kullandığımızda ise biraz daha anlaşılabilir ve kısa bir kod yapısı karşımıza çıkıyor. findViewById yerine BindView annotationunu kullanıyoruz. Üzerinde işlem yaptığımız bileşen bir View bileşeni olduğu için BindView yazıyoruz. Drawable dosyası için olsaydı BindDrawable yazacaktık.

Aynı kodu ButterKnife ile yazarsak:

2 YÖNTEMDE DE ORTAK OLAN ÇIKTIMIZ:

Butona tıklamadan önce:

Butona tıklandıktan sonra:

Burada dikkat ettiyseniz şu anki yapıda(findViewById), butonu oluşturma ve tıklama kodlarımızı onCreate() metodu içerisine yazıyoruz. ButterKnife kullandığımızda ise bu kodları onCreate() dışına yazıyoruz.

Aynı şekilde sadece görsel bileşenleri değil de strings.xml, colors.xml gibi dosyalar için tanımlama yaparsak :

Şeklinde kullanmamız gerekir. Oluşturduğunuz değişken adını da istediğiniz yerde kullanabilirsiniz. Örnek kullanım:

Örnekte sadece buton üzerinden gösterdik fakat TextView, EditText gibi bileşenler de tamamen aynı şekilde kullanılır. Bununla ilgili de basit bir örnek verelim.

Örneğimizde 2 adet buton kullanarak, EditText içerisine girilen sayıyı arttırıp azaltma işlemi yaptık. İki butonun da tanımlamalarını ve click eventini ayrı ayrı yaptık.

KAYNAK KOD İNDİR

Nasıl Çalışır ?

ButterKnife, Annotation tabanlıdır ve Annotation’lar da CompileTime (derleme zamanında) dikkate alınıp çalıştırılır. Bunu sağlayan yapı Annotation Processor‘dur. Siz de AbstractProcessor sınıfından türetilen(extends) bir Processor ve bunun Binding’lerini yazarsanız, siz de kendinize özel bir ButterKnife benzeri bir kütüphane oluşturabilirsiniz ve açık kaynak olarak kullanıma sunabilirsiniz 🙂 Hazırlanan bu tarz kütüphanelere ViewInjector kütüphanesi denir.

Projeyi derlediğinizde (henüz çalıştırmadan), Annotation’un bulunduğu satırlar, şuan bildiğimiz ve uyguladığımız Java kodlarına(findViewById) dönüştürülür. Bunu sağlayan yapı, kütüphane içindeki Annotation Prosessor‘dür. Hangi bileşenin hangi koda dönüştürüleceği ise bu kütüphanede tanımlanmıştır.

Mehmet Kirazlı

İstanbul Eyüp'te ikamet ediyorum. Giresun Alucra'lıyım. Bilgisayar Mühendisliği bölümünden 2013 yılında mezun oldum. "Yeni Başlayanlar için Java 8" kitabının yazarıyım. Şu anda özel bir firmada Mobil Yazılım Geliştirme Uzmanı olarak çalışıyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir