Gökhan Türedi
"Kıyıdan köşeden yazılıma dair"
3 Ocak 2017 Salı
Android Kütüphanesinde Initialization ve Context'e Ulaşım
Android geliştirme ortamında basit bir işlem(resource'lara ulaşım vs) yapmak için bile context instance'ına ihtiyaç duyarız. Yazdığımız sınıflarda context'e ulaşmak için context'i oradan oraya sürekli parametre olarak aktarmaktan sıkılıyor/üşeniyorsanız aşağıdaki gibi bir Application sınıfı yazarak bu külfetten bir nebze de olsa kurtulabilirsiniz:
28 Nisan 2016 Perşembe
Anotasyon İşleme İle Kod Oluşturma
Java 5 sürümüyle hayatımıza giren anotasyonlar (annotations) bugün pek çok modern framework tarafından -konfigrasyon ağırlıkta olmak üzere- kullanılmakta; spring tarafında bean tanımlamalarında, bağımlılık enjektesinde, mvc routing'de, orm kütüphanelerinde tablo, kolon vs tanımlamalarında, AOP'de vs. Bu çözümlerde anotasyonlar genelde yansıma (reflection) ile çalışma zamanında kullanılıyor. Oysa anotasyonlar derleme zamanında da kullanılabiliyor. Bunu sağlayan yapı java derleyicisi(javac) ile entegre calisan Annotation Processor Tool (APT). APT ile cok kolay biçimde derleme zamanında kod üretimi (Code Generation) yapılabiliyor.
29 Ocak 2016 Cuma
Android Üzerinde Basit MVP Uyarlaması
Merhaba Arkadaşlar,
Bu blog yazısında android uygulama geliştirirken MVP kalıbı nasıl uygulanır temel haliyle anlatmaya çalışacağım. MVP MVC, MVVM gibi MV* (mv-whatever) kalıplarının farklılaşmış bir şekli olup Model View Presenter kelimelerinin kısaltmasıdır. Temel mantığı kullanıcı arayüzü (ui) ile iş kurallarını (business logic) birbirinden ayırmak (bkz. separation of concerns). MVP kendi içinde supervising presenter ve passive view olarak ikiye ayrılır, ben passive view üzerinde duracağım.
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.
Kaydol:
Kayıtlar (Atom)