10 Temmuz 2015 Cuma
Java Kütüphanesini Maven Reposunda Gönderme
Merhaba Arkadaşlar,
Android Studio ile geliştirme yaparken ister istemez, kendimce gradle ile epey haşır neşir oldum. Bu süreç içerisinde bir çok farklı plugin ile çalıştım. Bu yazıda sizlere çok faydalı bulduğum ve kullanmaktan keyif aldığım bir gradle plugin'inden bahsedeceğim: The Maven Plugin.
29 Haziran 2015 Pazartesi
Android Dinamik Sınıf Yükleme
Merhaba Arkadaşlar,
Yazılım geliştirirken bazen classpath'e dinamik sınıf yüklememizi gerektirecek bir durum oluşabilir; plugin tabanlı, esnek ve genişletilebilir mimari kurmak veya uygulama konfigrasyonuna bağlı olarak runtime'da *.jar yükleme gibi. Neyse ki bu gibi durumları kotarmak için jvm tarafında Class Loader yapısı bize bu olanağı sunuyor.
22 Temmuz 2014 Salı
Android İçin Dependency Injection Çözümü: Dagger
Selam,
Yazılım pattern'leriyle ilgileniyorsanız mutlaka duymuşsunuzdur dependency injection kavramını. Özünde bu desenin amacı; yazılım birimlerinin birbiriyle gevşek bağlı(loosely coopled) olmasını sağlamaktır ki bu sayede birimlerin birinde meydana gelen değişim diğer birim(ler)in de değiştirilmesini gerektirmez ve değişime daha açık bir yapı kurgulamış olursunuz. (bkz. SOLID Open-Closed ve Inversion of Control)
17 Temmuz 2014 Perşembe
Android Eventbus(Otto) Kullanımı
Geliştirme yaparken yazdığınız sınıfların bağımlılıklarının düşük olması önemli bir kriter, bu sayede kurduğunuz yapı kolay genişletilebilir, test edilebilir ve yeniden kullanımı kolay bir hal alır. Sınıflar arasında bağımlık genelde interface'ler kullanılarak düşük tutulur. Ancak bu yaklaşımın olumsuz yanı callback'ler vs.'den kaynaklanan boilerplate code. Fakat biz publisher-subscriber(observer) mekanizmasını kullanarak hem gevşek bağlı(loose coupling) birimler oluşturup hem de boilerplate code problemini kotarabiliriz. Bu noktada piyasadaki eventbus kütüphanelerinden faydalanabilirz.
11 Temmuz 2014 Cuma
Android DatePickerDialog'daki DayPicker'i Gizleme
Merhabalar,
Android'de ekranda fazla yer kaplamadan kullanıcıdan tarih bilgisi almanın yolu, içerisinde tarih seçicisi bulunduran DatePickerDialog'dan geçer. Bu dialog tipi içerisinde DatePicker komponentini barındırarak gün, ay ve yıl spinner'larıyla tarih seçme işlemini kolaylaştırır.
25 Nisan 2014 Cuma
Daha Okunabilir Kod ve Yaşanabilir Dünya İçin Enum'lar
Selamlar,
Enum(Enumaration) tanımlamaları programlama dillerinde belirli değerlere karşılık gelen sabit değerlerin temsili için kullanılırlar, haftanın günleri, yönler vs gibi. Geliştiriciye sağladığı faydalar ise kod okunabilirliğini arttırması, muhtemel değer kümesinin daraltılması ve tip güvenliğini sağlaması dolayısıyla hata payını en aza indirmesi. Ben enumları java dili üzerinden ele alacağım; enum sabiltleri java'ya jdk 1.5 sürümü ile eklenmiştir, ayrıntılar için buraya tıklayınız. Daha öncesinde enum'un üstelendiği görev constant'lar ile kotarılıyordu. "Peki o zaman ne gerek vardı dile enum tipini eklemeye?" diye sorabilirsiniz, ilerleyen bölümlerde sebeplerini açıklıyor olacağım, şimdilik okunabilirlik tarafıyla devam edelim.
Enum(Enumaration) tanımlamaları programlama dillerinde belirli değerlere karşılık gelen sabit değerlerin temsili için kullanılırlar, haftanın günleri, yönler vs gibi. Geliştiriciye sağladığı faydalar ise kod okunabilirliğini arttırması, muhtemel değer kümesinin daraltılması ve tip güvenliğini sağlaması dolayısıyla hata payını en aza indirmesi. Ben enumları java dili üzerinden ele alacağım; enum sabiltleri java'ya jdk 1.5 sürümü ile eklenmiştir, ayrıntılar için buraya tıklayınız. Daha öncesinde enum'un üstelendiği görev constant'lar ile kotarılıyordu. "Peki o zaman ne gerek vardı dile enum tipini eklemeye?" diye sorabilirsiniz, ilerleyen bölümlerde sebeplerini açıklıyor olacağım, şimdilik okunabilirlik tarafıyla devam edelim.
17 Nisan 2014 Perşembe
Çok Parametre Alan Metotlar ve Builder Pattern
Merhaba Arkadaşlar,
Bildiğiniz üzere java'da optional parameter ve named arguments desteği yok dolayısıyla bazen çalıştığımız sınıflar içerisinde çok parametre alan constructor ve metotlarla karşılabiliyoruz, bu da ilgili sınıfın kullanımını ve okunabilirliğini zorlaştıran bir durum. Özellikle nesne inşası sırasında istenen parametrelerden çoğu kez 2-3 tanesi bizi ilgilendiriyor fakat ihtiyaç duyduğumuz parametreler için uygun overload olmaması yüksek ihtimal, üstelik ilgi parametrelerin çeşitli kombinasyonları için overlaod'lar yazmak başlı başına bir yük.
Kaydol:
Kayıtlar (Atom)





