Bu yazı Junior Android geliştiricilerin kendileri geliştirmeleri ve daha da kaliteli kod yazabilmeleri amacıyla yazılmıştır. Onlara öğrenmeleri ve denemeleri gereken içerikleri anlatan bir rehber niteliğinde olacağını umuyorum.
Uygulamaya kütüphane eklerken dikkatli olun.



Şimdiye kadar Android ile ilgili internette pek çok “Her Android developer’ ın bilmesi gereken kütüphaneler” başlıklı makale yayınlandı. Burada bahsedilen en popüler kütüphaneleri kullanırken bile dikkatli olarak seçmeniz gerekmektedir. Projenin gereklilikleri iyice analiz edilmeli ve projeye dahil edilecek olan kütüphane bu ihtiyaçlar doğrultusunda tercih edilmelidir. Tabi ki bu listelerde neredeyse her proje de kullanabileceğiniz (Butterknife, Picasso vb.) genel kullanıma yönelik kütüphaneleri bu işlemler dışında bırakıyorum.
Retrofit kullanımını mutlaka öğrenin ve projelerinize dahil edin, ettirin!

Network işlemlerinin bulunduğu, özellikle de içerisinde REST sorgularının bulunduğu projelerinizde mutlaka Retrofit kullanın. Retrofit kullanırken de dikkat edilmesi gereken en önemli nokta akıllıca kurgulanmış bir mimari kurulması olacaktır. Bu konuda bir adet blog yazısı yazmıştım önceden. Bu yazı size bir rehber niteliğinde olacaktır: https://medium.com/p/e8af23eeebc1

RxJava nedir, ne değildir, ne amaçla kullanılır? Bu soruları sizde kendinize sormaya başlayın ve cevaplarını bir an önce araştırmaya başlayın.

Günümüz Android dünyasının en popüler konularından bir tanesi RxJava sanırım. Herhangi bir Android projesinde pek çok işlem için kullanılabilir. Mesela bir junior Android developer için en fazla tanıdık olacak işlem sanırım AsyncTasks işlemleri olacaktır. Düzgünce kurgulanmış bir mimari ile gereksiz AsyncTasks kod bloklarından kurtulabilirsiniz. Bu konuda bende adım adım ilerliyorum ve aynı zamanda her defasında yeni şeyler öğreniyorum. RxJava’ nın kullanım yaklaşımlarından bir tanesinden bahsettiğim yazıyı da şuraya paylaşayım. Belki ilginizi çeker ve okursunuz https://medium.com/p/aa78b5023097

Sıkıcı kod bloklarından kurtulmak amacıyla Retrolambda kullanmaya başlayın.

Android uygulama geliştirirken fark edeceksiniz ki kod yapılarınız içerisinde gereksiz anonymous class yapılarından vb. kaynaklanan kod blokları oluşacak. Bu gereksiz uzunlukta ki kod bloklarından kurtulmak adına bir an önce Retrolambda kullanmaya başlayın: https://medium.com/p/191cc8151f85

Düzgün bir Android proje mimarisi nasıl geliştirilebilir bu konuda kafa yormaya başlayın!

Her zaman ana hedefiniz düzgün bir proje mimarisine sahip Android uygulaması geliştirmek olsun. Projenin geleceği açısından ve sizin de uygulamayı sağlıklı geliştirmeye devam edebilmeniz açısından projenin düzgün bir mimariye sahip olması ciddi bir önem arz etmektedir. Bu konuda internette pek çok yazı bulabilirsiniz. Ben de kendi düşüncelerimi bir blog yazısında paylaşmıştım. Bunu okuyarak öğrenmeye başlayabilirsiniz: https://medium.com/p/72f4b33252d0

Package yapısında pek çok farklı yaklaşım olmasına rağmen şu an aktif olarak kullandığım bir package mimarisini anlattığım ayrı bir Medium blog yazısı da mevcut. Tekrardan belirtmek isterim ki bu konuda pek çok farklı yaklaşım mevcut ve ben de hala best practice nedir onu bulmaya çalışıyorum: https://medium.com/p/982f0785934

Projenizin sadece gerekli yerlerinde event bus kütüphanelerini kullanın.

Ben kendi projelerimde bu işlemleri gerçekleştirmesi adına Otto’ yu tercih ediyorum. Bu tarz kütüphanelere bakınca insan sanki sihirli bir şeyler oluyormuş hissine kapılıyor. İşte tam da burada bu işin büyüsüne kapılıp projenizin pek çok yerinde bunu implement etmeye başlayınca bu seferde uygulamanın pek çok yerinde callback metotları oluşmaya başlıyor ve siz de bunları kontrol etmekte zorlanıyorsunuz. Bu yüzden bu tarz yapıları projenize dahil ederken dikkatli davranmanız gerekmektedir.
Projeniz için düzgün bir gradle yapısı kurmaya çalışın.

Android uygulama geliştirme sürecini kolaylaştıran etmenlerden bir tanesi de planlı olarak kurgulanmış bir gradle mimarisine sahip olmak. Basit düzeyde de olsa düzgün bir mimariye sahip gradle kurgusu nasıl oluşturabilir aşağıda ki yazı da anlatmaya çalıştım: https://medium.com/p/f13e368e00a4

Bu arada bende hala gradle’ ı nasıl daha verimli bir şekilde kullanabilirim onları araştırıyorum. Demek istediğim düzgün bir mimariye ulaşmanın sonu yok!
Dependency Injection kavramını bir an önce anlamaya çalışın çünkü projelerinizde sizde Dagger 2 kullanmaya başlamalısınız.

Dependency Injection nedir, ne değildir, ne amaçla böyle bir kavram üretilmiş gibi soruları sizde kendinize sorun ve bu soruların cevaplarını araştırmaya başlayın.

Bu cevapları aldıktan sonra geçeceğiniz adım Android uygulamalarınızda Dagger 2' yi nasıl kullanabilirim, uygulamalarımın geliştirilmesi aşamalarında bana avantajları neler olacaktır gibi soruların cevaplarını aramak olacaktır. Küçük bir giriş niyetinde aşağıda ki yazıyı okuyabilirsiniz. Bu sefer bu benim yazım değil ama yakında bu konuda da bir rehber yazısı yazmayı planlıyorum https://github.com/codepath/android_...-with-Dagger-2

Projelerinizde mümkün olduğunca kodların birbirine olan bağımlılığını azaltın!

Bu durum sizin geliştirmiş olduğunuz Android projesinin sağlıklı bir şekilde kodlanması ve ileri de oluşabilecek değişikliklerin kontrol altına alınabilmesi amacıyla hedeflenmesi gereken ana konuların başında gelmektedir. Özellikle de kütüphanelere bağımlı olan sınıf yapılarının mümkün olduğunca Abstract olması, sizin bu tarz sağlıklı bir mimari kurmanızı kolaylaştıracaktır.

MuratCanBatur - Medium