İ̇leri web uygulaması

Genel Bakış

2005 yılından bu yana internet, statik web sitelerinden dinamik web sayfalarına Ajax teknolojisi ve responsive web tasarımları sayesinde hızlı bir şekilde gelişti.

Dinamik ve Responsive Web

Web geliştirme teknolojileri statik HTML dokümanlarından dinamik PHP, ASP.NET, Ajax ve çeşitli sunucu ve istemli cihaz bazlı dillere ve kodlara kaydı.
Son olarak, İleri Web Uygulamaları, HTML5, CSS3 ve JavaScript'in yenilikçi özelliklerinin tanıtılması sayesinde gelişti. Markup(işaretleme dili), styling sheets ve script'lerin bu güçlü birleşimi sayfa unsurları ile kullanıcı etkileşimini, Macromedia Flash olmadan video oynatımına ve oyunların oynanmasına imkan sağladı. (Tüm bunlar sunucuda değil, istemci cihaz üzerinde gerçekleşmektedir.) Yakın zamanda yayınlanan CSS3 ve JavaScript altyapısı tasarım modellerini ve felsefesini değiştirdi; kutu modelini(box model) grids ve flex'ler takip etti, bunları translations, transformations, animasyonlar eşlik etti. Style still'e yeni yaklaşımı internetin sanal katmanını tanımladı.

İnternet tarayıcıları

Bu değişikliklerin hiçbiri bilinen web tecrübesini ciddi şekilde değiştirmeyecektir.

Mobil cihazlar

2007 yılında Apple iPhone piyasaya sundu. Bu cihaz ilk tamamiyle fonksiyonel dokunmatik tecrübeli akıllı telefondu. Web'te gezinti yapma imkanı veren bununla birlikte geniş çeşitlilikte native uygulama kullanıma izin veren, fiyatı makul, kullanışlı bir cihaz fikri hızlıca yayıldı.

İleri Web Uygulamaları

2015 yılında, Google'da Chrome Blink üzerine çalışan bir web developer olan Alex Russell, bir websiteyi çevrimdışı(offline) modda, istenilen kişiselleştirme yeteneğine sahip ve dokunma tecrübesi ile çalışıyor haldeki bir mobil uygulamaya dönüştürdü.
Alex, Uygulama mağazalarındaki web uygulamalarının paketleme ve yayınlama süreçini, web sitesini doğru içerik ile mobil yetenekli web uygulaması haline dönüştürerek ortadan kaldırdı. Yapıya yeni özellikleri devamlı ekleyerek geliştirmesini sürdürdü, bunlardan bazıları kişiselleştirme, ana sayfaya konumlandırma, bildirimler yetisi, çevrim dışı(offline) çalışma yapısı ve dokunma teknolojisi desteği gibi.
Bu sayede, geleneksel web uygulamalarının ve bununla birlikte çoklu platform(cross-platform) mobil uygulamaların sahip oldukları kısıtlamaları bir bir bu geliştirmeyi websitesi üzerinde geliştirerek aştır.
İleri web uygulamaları, web teknolojisi avantajları ile mobil native uygulama kullanıcı tecrübesini birleştirmek adına yeni bir trend ve umut oldu.

Service Workers

Native uygulamalar, kullanıcı tecrübesi daha zengin ve performanslı çalışırlar. Bunun sebebi gerekli olan içeriğin, bileşenlerin ve kaynakların uygulamanın Uygulama Mağazalarından indirilme süresince cihazın hafızasına konumlandırılmış olmasıdır.
Buna karşın, geleneksel web uygulamaları güvenilmez web bağlantı hızları ve yükleme kısıtları sebebi ile problem yaşar. Tüm bunların üzerinden gelebilmek amaçıyla Service Worker yapısı Web Worker yapısı gözetilerek tasarlandı ve kusursuz yükleme tecrübesini sunmaktadır.
Teknik olarak, Servis Worker web tarayıcılarında HTTP ve web taleplerini programlı bir şekilde yönetebilmek amacıyla kodlanabilir vekil(proxy) bir network yapısı sunmaktadır. Service Worker network ile cihazın arasında yer alır ve içeriğin taşınmasını sağlar. Cache'leme mekanizmasını verimli ve hatasız bir şekilde çevrimdışı modda sunabilme yeteneğine sahiptir.

Uygulama Kabuk Mimarisi(Application Shell Architecture)

Uygulamanın arayüzlerinin ve içeriğinin hızlı bir şekilde yüklenmesi amacıyla servis worker responsive web uygulamasının basit kullanıcı arayüzlerini saklar. Bahsedilen basit kullanıcı arayüzleri  terimi uygulamanın kabuğu(shell) olarak ifade edilir.
Bu kabuk başlangıç statik çerçevesini(frame), sayfa düzenini ya da içeriğin adım adım ve bununla birlikte dinamik bir şekilde yüklenmesini sağlayan bir mimari sağlar. Teknik olarak, kabuk paketlenmiş bir koddur ve mobil cihazın tarayıcısının cache'inde tutulur. Bu sebeple, farklı bağlantı hızlarında uygulamanın içeriği yüklenme sırasında kabuk yapı kullanıcı ile ilk etkileşimi yapar. Kullanıcı boş bir ekranın yüklenmesini beklemeden ilk etkileşim olarak bir ekran ile karşılaşmış olur.
Bu tip web uygulamalarının en büyük güçü kullanıcıya sağlam bir mobil tecrübeyi harika bir web teknolojisi ile kullandırmasıdır.
Bu tip web uygulamaları henüz sadece Chrome tarayıcıları tarafından desteklenmektedir. Ancak yakın gelecekte tüm tarayıcılar tarafından desteklenebilir.