Progresif Web Uygulamaları: Bir Web Sitesi Bir Uygulamanın Yerini Nasıl Alabilir?
Progresif web uygulamaları; çevrimdışı erişim ve anlık bildirimlerle donatılmış, geleneksel mobil uygulamalar gibi görünen ve çalışan, ancak URL'ler aracılığıyla…
Progresif web uygulamaları; çevrimdışı erişim ve anlık bildirimlerle donatılmış, geleneksel mobil uygulamalar gibi görünen ve çalışan, ancak URL'ler aracılığıyla yayımlanan ve bir web sitesi gibi erişilen web uygulamalarıdır. Bu özelliklere tarayıcı önbellekleri değil, service worker'lar güç verir.
Progresif Web Uygulaması (PWA) Nedir?
Progresif web uygulaması; HTML, CSS, JavaScript ve WebAssembly dahil olmak üzere yaygın web teknolojileri kullanılarak geliştirilen ve web üzerinden sunulan bir tür uygulama yazılımıdır. Hem masaüstü hem de mobil cihazlar dahil olmak üzere standartlarla uyumlu bir tarayıcı kullanan her platformda çalışması hedeflenir. Progresif bir web uygulaması, uygulama benzeri bir kullanıcı deneyimi sunmak için modern web yeteneklerinden yararlanır. PWA'lar yüklenebilir, çevrimdışı çalışabilir ve anlık bildirimlere hazır olacak şekilde tasarlanmıştır.
Ancak bir uygulamanın PWA sayılabilmesi için, tarayıcıya uygulamanın kullanıcının cihazında nasıl görünmesi ve davranması gerektiğini bildiren bir JSON dosyası olan web uygulaması manifestosunu içermesi gerekir. Manifesto; uygulamanın adı, simgeleri, başlangıç URL'si ve görüntüleme modu (örneğin tam ekran, bağımsız veya simge durumuna küçültülmüş) gibi bilgileri barındırır.
Bir PWA İçin Yükleme Nasıl Çalışır?
Bir web uygulamasının PWA olabilmesi için yüklenebilir olması gerekir. Bu, kullanıcının uygulamayı cihazının ana ekranına ekleyebileceği ve tıpkı yerel bir uygulama gibi kolayca erişilebilir hale getirebileceği anlamına gelir. Bununla birlikte, bir web uygulamasının yüklenebilir olması için bir manifesto içermesi şarttır. Manifesto; adı, simgeleri, başlangıç URL'si ve görüntüleme modu gibi uygulama hakkındaki meta verileri içerir. Tarayıcı, PWA'yı yüklemek ve cihazın ana ekranında kullanılabilir hale getirmek için bu manifestoyu kullanır.
Kullanıcı yüklenebilir bir PWA'yı ziyaret ettiğinde, tarayıcı bir yükleme istemi gösterebilir. Bu istem genellikle kullanıcı uygulamayla etkileşime girdikten sonra görünür ve uygulamanın yüklenebileceğini belirtir. İstem, PWA'nın manifestoda belirtilen adını ve simgesini gösterir. Kullanıcı daha sonra uygulamayı ana ekranına eklemek için yükle butonuna tıklayabilir. Yüklendikten sonra PWA bağımsız bir uygulama olarak görünür ve doğrudan ana ekrandan başlatılabilir.
Yükleme isteminden beforeinstallprompt olayı sorumludur. Tarayıcı PWA'nın yüklenebilir olduğunu belirlediği anda Window nesnesi üzerinde tetiklenir. Yükleme istemi, varsayılan olarak otomatik bir tarayıcı davranışıdır. Ancak geliştiriciler beforeinstallprompt olayını dinleyebilir ve tarayıcının varsayılan davranışını engelleyebilir.
Bir PWA İçin Çevrimdışı Erişim Nasıl Çalışır?
PWA'ların en önemli özelliklerinden biri, çevrimdışı veya güvenilmez ağlarda çalışabilme yetenekleridir. Bu, service worker'ların kullanımı sayesinde mümkün hale gelir. İlk yüklemede PWA, ağ isteklerini yakalayan ve PWA'nın çevrimdışı veya güvenilmez ağlarda çalışmasını sağlayan bir arka plan betiği olan bir service worker kaydeder.
Bir service worker kaydedildiğinde başlatılır ve kaydedildiği "kapsam" veya yol tarafından tanımlanan belirli bağlamda denetim sağlar. Yükleme kodunun nasıl başlatıldığına bakılmaksızın, service worker bu kapsamı devralır. Service worker daha sonra uygulamanın çalışması için gereken ana HTML, CSS ve JavaScript dosyaları olan uygulama kabuğunu (app shell) indirir. Daha sonra kullanıcı çevrimiçi olduğunda PWA kaldığı yerden devam eder.
Service worker; talep edilen bir kaynağı Cache Storage API'sini kullanarak önbellekten sunabilir, ağdan çekip daha sonrası için saklayabilir veya yerel bir algoritmadan oluşturabilir. Service worker, tarayıcının ekranını dinamik olarak değiştirmek için web sayfasından gelen iletilere de yanıt verebilir. Anlık bildirimler, arka plan senkronizasyonu ve diğer service worker özellikleri bu temel niteliklerin üzerine inşa edilmiştir.
Bir PWA İçin Anlık Bildirim Nasıl Çalışır?
PWA'ların bir diğer önemli özelliği de anlık bildirim gönderebilmeleridir. Anlık bildirimler, bir uygulamanın aktif olarak kullanılmadığı anlarda bile kullanıcının cihazına güncellemeler veya bildirimler göndermesinin bir yoludur. PWA'lar, web uygulamasının tarayıcınızda açık olup olmadığına bakılmaksızın, bir sunucudan kendisine iletilen mesajları almasını sağlayan Push API'sini kullanır. Bu iletiler, web uygulaması başlatılmamış olsa bile ve/veya arka plandaysa görünür.
Bildirimlere service worker'lar güç verir. Kullanıcılar bir PWA'yı yüklediklerinde anlık bildirimlere izin verebilir ve ardından PWA ile her zamanki gibi etkileşime geçebilirler. Bir push olayı meydana gelirse, service worker betiği arka planda çağrılır ve bir sistem bildirimi gösterebilir. Anlık bildirim gönderebilmek için uygulamanın HTTPS olması ve kullanıcının bildirim gönderme yetkisi için web uygulamasından gelen istekleri kabul etmesi gerekir.
Bildirimler tarayıcı odaklıdır; biçimler ve gösterimler tarayıcıya göre değişiklik gösterebilir. Örneğin Chrome; rozetleri, simgeleri ve diğer özellikleri desteklerken, diğer tarayıcılar daha azını gösterebilir. Mevcut bir özniteliği klonlamadığı veya ayrılmış özellik adlarıyla çakışmadığı sürece, kullanıcı tanımlı herhangi bir rastgele bildirim özniteliği kullanılabilir.
PWA'ları Hâlâ Neler Sınırlandırıyor?
PWA'lar yerel uygulamalarla aynı yeteneklerin birçoğunu sunsa da, hâlâ bazı kısıtlamalara tabidir. Örneğin PWA'lar yüklenebilir, ancak yükleme isteminin gösterilip gösterilmeyeceğine ve nasıl gösterileceğine nihayetinde tarayıcı karar verir. Tarayıcı ayrıca uygulamanın ne zaman güncelleneceğini ve nasıl görüntüleneceğini de denetler.
PWA'lar cihazın tüm donanımına ve sensörlerine de erişemez. Örneğin bir PWA; cihazın kamerasına, mikrofonuna veya GPS'ine erişemeyebilir. Bununla birlikte, GPS gibi bu özelliklerin bazılarına, özelliğin kullanımı sırasında kullanıcının izin vermesi halinde erişilebilir. Bu durum, yerel uygulamaların genellikle yükleme sırasında tek seferlik izin almasından farklıdır.
Ayrıca, anlık bildirimler tüm platformlarda veya tarayıcılarda desteklenmez. Destek platforma ve tarayıcıya göre değişir ve bazı ortamların sınırlamaları olabilir. [TO VERIFY: Evrensel bir davranış ima etmek yerine, bulunursa güvenilir bir karşılaştırma tablosuna bağlantı verin.]
Son olarak, PWA'lar hâlâ nispeten yeni bir teknolojidir ve tüm geliştiriciler veya işletmeler bunları tam olarak benimsememiştir. Sonuç olarak, PWA'ların etrafındaki ekosistem hâlâ gelişmektedir ve bazı araçlar ile kaynaklar yerel uygulama geliştirmeye kıyasla sınırlı kalabilir.
PWA'lar Neden Kalıcı Bir Modeldir?
Progresif web uygulamaları geçici bir hevesten çok daha fazlasıdır; yüksek kaliteli web deneyimleri sunmak için kalıcı bir modeli temsil ederler. PWA'lar; yüklenebilirlik, çevrimdışı önbelleğe alma ve anlık bildirimleri bir araya getirerek, hem hafif kalıp bir URL üzerinden erişilebilir olurken hem de yerel uygulamalarla aynı avantajların birçoğunu sunar.
PWA'lara güç veren temel teknolojiler—service worker'lar, web uygulaması manifestoları ve Push API—standartlaştırılmış web platformu özellikleridir. Bu, PWA'ların sağlam bir temel üzerine inşa edildiği ve uzun yıllar boyunca geçerli bir seçenek olarak kalmasının muhtemel olduğu anlamına gelir. Yine de tarayıcı ve platform kısıtlamalarının getirdiği sınırlamalar varlığını sürdürecektir. PWA'lar tarayıcıdan bağımsız değil, tarayıcı tarafından yönetilen yapılar olarak kalır.
Web teknolojileri gelişmeye devam ettikçe, PWA'lar daha da güçlü ve esnek hale gelebilir. PWA geliştirme tekniklerinde uzmanlaşan geliştiriciler, cihazlar ve işletim sistemleri arasında sorunsuz çalışan etkileyici kullanıcı deneyimleri oluşturmak için avantajlı bir konumda olacaktır.