Progressive Web App (PWA) nedir ve size gerekli mi?
Kısaca PWA olarak anılan progressive web app, birkaç ziyaretten sonra yüklü bir uygulama gibi davranacak şekilde geliştirilmiş bir web sitesidir. Telefonun ana ekranına eklenebilir, çevrimdışıyken ya da zayıf bir bağlantıda çalışabilir ve anlık bildirim gönderebilir; üstelik bunların hiçbiri için uygulama mağazasından geçmesi gerekmez. Özünde yine bir web sitesidir. Farkı, üzerine eklenen birkaç tarayıcı özelliğinden gelir: varlıkları önbelleğe alan ve çevrimdışı mantığı yöneten bir service worker, tarayıcıya simgenin ve açılış ekranının nasıl gösterileceğini söyleyen bir web app manifest dosyası ve tüm bunların varsayılan olarak gerektirdiği HTTPS.
Gerçekte ne kazanırsınız?
Bir siteyi PWA'ya dönüştürmenin gerçek, pratik faydaları üç noktada toplanır.
- Zayıf ağlarda güvenilirlik. Bağlantı koptuğunda service worker önbellekteki sayfaları ve varlıkları sunabilir; böylece sinyal gittiği anda uygulama bomboş bir ekrana dönmez. Saniyede bir değişmeyen içerikler için yalnızca bu bile zahmete değebilir.
- Kurulumsuz kurulum. Kullanıcı siteyi iki dokunuşla ana ekranına ekleyebilir. Ne mağaza incelemesi ne güncelleme takvimi ne de bir düzeltme ile onu kullanan kişi arasında duran beş yıldızlı yorum engeli vardır.
- Anlık bildirimler: Eskiden yalnızca uygulamalara özgü olan bu özellik, artık çoğu platformda (kullanıcının izniyle) doğrudan tarayıcıdan kullanılabiliyor.
Neyin yerini tutmaz?
PWA her durumda native uygulamanın yerini tutmaz ve nerede yetersiz kaldığı konusunda dürüst olmak gerekir. İşletim sistemiyle derin entegrasyon (Bluetooth, arka planda konum takibi, kameraya veya NFC'ye sıkı erişim, karmaşık çevrimdışı veri senkronizasyonu) native bir uygulamada hâlâ daha iyi işler, bazen de yalnızca orada mümkündür. iOS'un PWA özelliklerine desteği geçmişte Android'in gerisinde kalmıştır. Kullanıcılarınızın çoğu iPhone kullanıyorsa ve arka plan bildirimlerine ya da kapsamlı çevrimdışı davranışa ihtiyacınız varsa, Android ile aynı düzeyde destek olduğunu varsaymak yerine PWA yoluna girmeden önce ihtiyaç duyduğunuz özellikleri tek tek test edin.
PWA ayrıca varsayılan olarak App Store'da veya Google Play'de görünmez. Kullanıcı kazanımınızda App Store Optimizasyonu (ASO) ve mağaza aramasıyla keşfedilme önemli bir yer tutuyorsa bu fark önemlidir.
Size PWA gerekli mi?
Asıl önemli soru “PWA havalı mı?” değil, “Ürünümün temel kullanım senaryosu, service worker'lı bir web sitesinin zaten sağlayamayacağı bir şeye ihtiyaç duyuyor mu?” sorusudur. İçerik siteleri, e-ticaret mağazaları, rezervasyon araçları, şirket içi yönetim panelleri, pazar yeri ilan uygulamaları genellikle güçlü PWA adaylarıdır; çünkü değer, derin donanım entegrasyonunda değil, bilgiye hızlı erişimde ve iyi tanımlanmış birkaç işlemdedir.
PWA'nın doğru tercih olduğuna dair birkaç dürüst işaret:
- Kullanıcılarınız siteye, “ana ekrana ekle” seçeneğini görmezden gelmek yerine gerçekten kullanacak kadar sık giriyor.
- Kayda değer bir kullanıcı kesimi için zayıf bağlantı gerçek ve tekrarlayan bir sorun: saha hizmetleri, teslimat, kırsal bölgeler ya da ağırlıklı olarak mobil veriyle internete bağlanılan pazarlar.
- Düzeltmeleri ve yeni özellikleri mağaza inceleme döngüsüne göre değil, kendi takviminize göre yayına almak istiyorsunuz.
- Arka planda işleme, işletim sistemiyle derin entegrasyon ya da birincil kullanıcı kazanım kanalı olarak mağazada keşfedilme gibi ihtiyaçlarınız yok.
Bunların çoğu sizin için geçerli değilse ya da uygulama kamerayı, arka plan konumunu veya donanımı yoğun kullanan, gerçekten mobil öncelikli bir ürünse, native ya da platformlar arası bir uygulama genellikle daha doğru bir yatırımdır. PWA'yı daha sonra her zaman hafif bir tamamlayıcı olarak geliştirebilirsiniz.
PWA geliştirmek gerçekte neler gerektirir?
Bu noktada ortada egzotik bir teknoloji yok: Service worker'lar ve web app manifest dosyaları tüm büyük modern tarayıcılarda destekleniyor. Ancak işi iyi yapmak, bir manifest dosyası eklemekten fazlasını gerektirir. Önbellekleme stratejisi önemlidir: Fazla agresif önbelleğe alırsanız kullanıcılar yeni bir sürüm canlıya alındıktan sonra eski içerik görür; çok az önbelleğe alırsanız çevrimdışı avantajını tamamen kaybedersiniz. Simgelerin ve açılış ekranlarının her platform için doğru boyutlarda üretilmesi gerekir. Kurulum istemleri ve çevrimdışı davranış Android ile iOS arasında belirgin biçimde farklılık gösterdiği için de her şey yalnızca masaüstündeki geliştirici araçlarının emülatöründe değil, gerçek cihazlarda test edilmelidir.
Burncode'da web geliştirme projelerimizde yaptığımız iş tam olarak budur: Sonunda bir manifest dosyası iliştirmek yerine önbellekleme ve çevrimdışı mantığı siteye en baştan doğru biçimde kurmak. Böylece uygulama, kullanıcının ana ekranına yerleştiğinde beklendiği gibi çalışır.