Screen Shot 2016-02-21 at 20.20.02

Uygulamanın sosyal medya haberlerini, hava raporlarını, social feedbackleri verebilmesi için, up to date kalması gereklidir. Ancak çok sık sync olmak da performans için en kötü fikirlerden biridir. Peki o zaman nasıl handle edilmeli?

Oversync bataryayı öldürür. Batarya sadece çipi başlatmak için değil sınrasında 2060 sn ek olarak awake tutmak için de tüketilir.

Çok fazla sync olmak kötü diyoruz ancak şöyle de bir gerçek variyi kullanıcı deneyimini sunabilmek için ki en uygulama güncel datayı gösterebilmeli. Bu sebeple sync olmayı tamamen kesemeyiz. Yapmak zorunda da değiliz. Ancak daha az request yapıp kullanıcıya benzer bir deneyim sunmak da mümkün. Burada önemli olan da şu an yapılması gerekenle bekleyebilir olanı ayırmaktan geçmektedir.

Screen Shot 2016-02-25 at 21.52.25

Sürekli server’a gidip yeni data var mı diye sorgulamaktansa, başka servisler kullanılabilir. Mesela Google Cloud Messaging gibi. Yeni content geldiğinde server’a sinyal gönderir. Böylece hem batarya tüketimini hem de server responselarının sayısını düşürür.

Sürekli sync olunması gereken durumlar için ise kendimiz bir logic kurabiliriz. Mesela requesti yaptık, yeni data yoktu. Bir sonraki sorgu zamanını X2 arttırarak ilerleyebiliriz.

Google Play Services API network oriented taskların düzenlenmesini sağlar. Batching’i de kendi handle eder. Network kullanımıyla ilgili detaylı bilgi almak istenirse de Network Traffic Tool kullanılabilir.

Referans: