Yazı dizisinin bu bölümünde, Android developer’ lar arasında en çok yapılan hatalardan bahsetmek istiyorum.

Sadece kendi cihazınızda çalışan bir uygulama yapmayın!

Kişisel olarak Android uygulama geliştirme sürecinin en nefret edilesi durumu sanırım çeşitli sürümlerde ve ekran boyutlarında ki cihazların piyasada aktif olarak kullanılması. Bu durum tasarım aşamasından, bu tasarımın kodlanmasına kadar olan bütün süreçte problemlere yol açabilir. Eğer sadece debug yaptığınız cihazı kendinize referans olarak bir kodlama yaparsanız, büyük ihtimalle başarısız bir uygulama ortaya çıkacaktır. O yüzden bilmemiz gereken bazı temel kavramlar mevcut.

Density-independent pixels kavramının ne olduğunu öğrenin!

Android dünyasında farklı ekran boyutları ile başa çıkmanın en mantıklı yolu Resources dosyalarının farklı ekran boyutlarına göre veya ilgili ekran konfigürasyonuna göre ilgili klasörlerine koyulması gerekmektedir.

Bunun yanı sıra son zamanlarda çok sıklıkla duyduğumuz Vector Drawable kavramını da araştırmanız gerekmektedir.

Bütün bu bahsettiklerim ile ilgili detaylı bilgileri okumanız için aşağıdaki linkleri paylaşıyorum.

https://medium.com/google-developers...d-7dc7e4efcbb3
https://developer.android.com/guide/...s_support.html

Sakın Main Thread’ i bloklamayın!

Hatırlatma fayda var ki, main thread’ in tek bir amacı bulunmakta. O da UI kesintiye uğramadan kullanıcıya gösterilmesi.

Bilindiği gibi yapılan araştırmalara göre, insan gözünün veya beyninin algılayabildiği frame oranı bir takım faktörlere bağlı olarak hesaplansa da genel olarak bellidir. Bir mobil uygulama için ise, 100 ms lik bir aralık boyunca 24 fps yenileme hızından daha düşük ise, o uygulama da performans sorunları mevcuttur.

Android uygulamalarında ki bir başka kurala göre, bir activity için 5 saniye, bir Broadcast Receiver için ise 10 saniye boyunca yanıt alınmaz ise, ANR dediğimiz “Application Not Responding” diyaloğu meydana çıkacaktır.

Böyle bir durumla karşılaşmamak için, uygulama içinde yapılan network işlemleri, image’ ların yüklenmesi, database sorguları gibi main thread’ i bloklayacak işlemlerin background thread içerisinde yapılması gerekmektedir.

Bu konuda daha detaylı bilgi edinmeniz amacıyla aşağıdaki makaleyi okuyabilirsiniz.

https://developer.android.com/traini...f-anr.html#anr

Yaptığınız arayüzlerdeki View hiyerarşisine dikkat ediniz.

Android uygulamalarında Layout hazırlayabilmeniz için view tanımlamalarını xml dosyaları içine koyarsınız. Daha sonra framework sizin hazırlamış olduğunuz xml dosyasını parse eder ve burada ki tag’ lere karşılık gelen nesneleri oluşturarak bir tree ortaya çıkartır. Bu işlemin yapılması aşaması da uygulamanın performansına ciddi olarak etkisi bulunmaktadır.

Burada genel olarak bilmemiz gereken nokta, iç içe ne kadar çok view veya layout kullanırsanız, bu parse işlemi o kadar uzun süreceği ve hesaplama işlemlerinin maliyeti o kadar artacağı için uygulama olumsuz etkilenecektir. Bu yüzden xml dosyalarını hazırlarken akıllıca hareket etmekte fayda var.

Tabi bence bu kolay bir işlem değil. Yaptığımız uygulamalarda sürekli gelişme ihtiyacı olan adımların başında gelmekte.

Aşağıda paylaştığım video’ yu izlemenizi tavsiye ediyorum.

scriptaccess" value="always">

Git kullanın!

Uygulamayı geliştirien developer isterseniz sadece siz olun, veya bir ekibin parçası olun, kesinlikle Git nedir?, Git workflow nedir? sorularının cevaplarını öğrenin. Bu konularda daha detaylı bilgileri önceden yazmış olduğum Medium yazılarından öğrenebilirsiniz. Aşağıda linkleri paylaşıyorum.

Öncelikle Git 101 tadında olan “Git Nedir?” yazısını okuyabilirsiniz: https://medium.com/turkce/yeni-ba%C5...1-ff7ea5b3eff9

Ben zaten git kullanımını biliyorum, hatta aktif olarak kullanıyorum diyenler için de şu yazıyı okumalarını tavsiye ediyorum: https://medium.com/turkce/ba%C5%9Far...r-e026e5cc24c2

MuratCanBur