Yazılım Geliştirme Trendleri 2017/13: Offline First & Cache API : Service Worker

İnternete erişimin mobil cihazlara doğru hızla kaymasını takiben karşımıza çıkan “Mobile First” trendi ile, web uygulamalarını geliştirirken, mobil cihazlara (telefon, tablet) uyumluluk ön plana geldi. Önce CSS/@media query’ler ile ilkel bir şekilde bu süreci yönettik, sonra responsive CSS mimariler (önce Bootstrap, şu sıralar Material) bu yükü üzerimizden aldı.

Şimdi ise “Offline First” trendi ile karşı karşıyayız. Bu trendin ortaya koyduğu değerin (business value) mobile first trendindeki kadar büyük olacağını sanmıyorum ancak yine de, özellikle cache API’ın sunduğu verimlilik ile büyük bir etki yaratacaktır.

“Offlie First” dediğimizde akla hemen “internetin olmadığı durumlarda da uygulamanın çalışabilmesi” gelse de, bence bütün değer burada değil. Asıl değer, cache API’ın bize sunduğu saklama pattern’leri ile, artık daha kapsamlı bir cache süreci yönetebiliyor olacağımız. Bu da çok hızlı, lokal sakladığı dosyalardan veri okuyan, masaüstü kadar hızlı uygulamalar demek.

Tüm HTTP isteklerinde, “Önce cache’e sonra network’e bak” gibi bir pattern izleyebiliyor olmak, web uygulamasının artık mobil/masaüstü bir uygulama gibi yüklenebileceği anlamına geliyor. Bu pattern’i SPA uygulamalarındaki (Angular trendinde incelediğim) “Lazy Loading” ve “Pre Loading” gibi yükleme süreçleriyle entegre ettiğimizde ise koca bir (SPA) uygulamayı parçalara (modüllere) bölüp, adım-adım, — neredeyse kullanıcıya hiç hisettirmeden — yükleyebileceğiz ve bu şekilde web uygulamalarının kullanılabilirliği ve hızı kat-kat artacak.

  • Kullanıcı bir siteyi ilk defa ziyaret ettiğinde, önce küçük bir modül ile onu hızlı bir şekilde karşılayabilir ve anasayfayı cache ile saklayabiliriz.
  • Kullanıcının anasayfada geçireceği ilk birkaç saniye içerisinde, uygulamanın diğer modülleri de (pre loading ile) arka planda yüklenir ve cache’de saklanır.
  • Bu iki adımda hem kullanıcıya hızlı bir geri dönüş yapabildik, hem de koca bir uygulamayı hissettirmeden yükletebildik. Üstelik Offline da çalışmaya hazır.

**

Eğer sıfırdan yazılım kariyerine başlamak istiyorsanız, 3 aylık yoğun programlar düzenliyorum. Bilgi için: https://www.yenikodyazilimkursu.com/