Mobil uygulama geliştirmek hem maliyetli hem de karmaşıktır. App Store ve Google Play'de uygulama yayınlamak inceleme süreçleri gerektirir, sürekli güncellemeler bakım yükü yaratır ve kullanıcıların önce indirip sonra açması büyük bir dönüşüm engeli oluşturur. Ortalama bir kullanıcının her ay aktif olarak kullandığı uygulama sayısının sadece 10-15 arasında olduğunu düşünürsek, yeni bir uygulama bu listeye girmenin ne kadar zor olduğunu anlayabiliriz.
Progressive Web App (PWA) teknolojisi bu denklemi değiştiriyor. Uygulama mağazası yok, inceleme süreci yok, zorunlu indirme yok. Yalnızca tarayıcı üzerinden, gerçek bir uygulama deneyimi.PWA Nedir? Teknik Temeller
PWA, modern web teknolojilerini kullanarak yerel uygulama benzeri bir deneyim sunan web uygulamalarıdır. Google tarafından 2015'te tanımlanan bu yaklaşım, üç temel prensibe dayanır:
Güvenilir (Reliable): Ağ bağlantısı zayıf veya yok olsa bile yüklenir ve çalışır. Hızlı (Fast): Etkileşimler akıcıdır, animasyonlar pürüzsüzdür, her türlü ağ koşulunda hızlı yanıt verir. Etkileşimli (Engaging): Ana ekrana eklenebilir, tam ekran çalışabilir, push bildirimler gönderebilir. Bir uygulama gibi hissettirir.PWA'nın Teknik Bileşenleri
Bir web uygulamasının PWA sayılabilmesi için üç kritik teknik bileşene ihtiyacı vardır:
1. HTTPS: Güvenli bağlantı tüm PWA özelliklerinin ön koşuludur. Service worker'lar yalnızca HTTPS üzerinde çalışır. 2. Web App Manifest: JSON formatında bir dosya olan manifest, uygulamanın adını, ikonlarını, başlangıç URL'sini, ekran yönünü ve görüntüleme modunu tanımlar.{
"name": "Mağazam",
"short_name": "Mağaza",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#0066cc",
"icons": [
{
"src": "/icons/icon-192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/icon-512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
Service Worker: Offline Deneyimin Mimarı
Service worker, PWA'yı sıradan bir web uygulamasından ayıran temel teknolojidir. Arka planda çalışır, kullanıcı arayüzünü engellemez ve web sayfası kapalı olsa bile çalışmaya devam edebilir.
Önbellekleme Stratejileri
E-ticaret PWA'larında farklı içerik tipleri için farklı önbellekleme stratejileri kullanılır:
Cache First (Önce Önbellek): Statik varlıklar (CSS, JS, logolar, ikonlar) için idealdir. Service worker önce önbellekte arar, bulamazsa ağdan çeker. Sonraki ziyarette hep önbellekten gelir, ağ durumundan bağımsız olarak anında yüklenir. Network First (Önce Ağ): Ürün listeleri, stok durumu gibi sık değişen içerikler için tercih edilir. Önce ağdan çekmeye çalışır, ağ yoksa önbellekteki son versiyonu gösterir. Stale While Revalidate: Ürün açıklama sayfaları gibi orta sıklıkta değişen içerikler için dengeli bir çözüm. Önce önbellekten hemen gösterir, arka planda ağdan güncel versiyonu çeker ve sonraki ziyaret için önbelleği günceller. Cache Only: Tamamen statik varlıklar için. Yalnızca önbelleğe bakar, ağa hiç gitmez.E-Ticaret İçin Pratik Önbellekleme Örneği
// service-worker.js
const STATIC_CACHE = 'static-v1';
const DYNAMIC_CACHE = 'dynamic-v1';
const STATIC_ASSETS = [
'/',
'/offline.html',
'/css/main.css',
'/js/app.js',
'/icons/logo.svg'
];
self.addEventListener('install', event => {
event.waitUntil(
caches.open(STATIC_CACHE)
.then(cache => cache.addAll(STATIC_ASSETS))
);
});
self.addEventListener('fetch', event => {
const { request } = event;
const url = new URL(request.url);
// API istekleri: Network First
if (url.pathname.startsWith('/api/')) {
event.respondWith(
fetch(request)
.then(response => {
const clone = response.clone();
caches.open(DYNAMIC_CACHE)
.then(cache => cache.put(request, clone));
return response;
})
.catch(() => caches.match(request))
);
return;
}
// Statik varlıklar: Cache First
event.respondWith(
caches.match(request)
.then(cached => cached || fetch(request))
);
});
Offline Mod: Bağlantısız Alışveriş
E-ticaret PWA'larında offline destek kritik bir farklılaştırıcıdır. Metro, uçak veya zayıf sinyal bölgelerinde müşterileriniz mağazanızı gezmeye devam edebilir.
Offline'da Neler Yapılabilir?
Ürün kataloğu gezintisi: Daha önce ziyaret edilen ürün sayfaları önbellekten yüklenir. Arama: Önceden yüklenmiş ürün verileri üzerinde istemci taraflı arama yapılabilir. Sepet yönetimi: Ürün ekleme/çıkarma işlemleri yerel olarak kaydedilir, bağlantı geldiğinde sunucuyla senkronize edilir. İstek listesi: Favorilere ekleme işlemi çevrimdışıyken de çalışır. Sipariş geçmişi: Daha önce yüklenmiş siparişler görüntülenebilir.Background Sync
Service worker'ın Background Sync API'si, bağlantı kesildiğinde yapılan işlemlerin bağlantı geldiğinde otomatik olarak tamamlanmasını sağlar.
// Sepete ekleme işlemi offline iken
navigator.serviceWorker.ready.then(registration => {
registration.sync.register('add-to-cart');
});
// Service worker'da
self.addEventListener('sync', event => {
if (event.tag === 'add-to-cart') {
event.waitUntil(syncCartWithServer());
}
});
Push Bildirimleri: Yeniden Etkileşim Gücü
Push bildirimleri, e-ticaret için en değerli PWA özelliklerinden biridir. Kullanıcı izni alındıktan sonra, uygulama kapalı olsa bile bildirim gönderilebilir.
E-Ticaret Push Bildirim Kullanım Senaryoları
Sepet terk uyarıları: "Sepetinizde 3 ürün var, işleminizi tamamlamayı unutmadınız mı?" Araştırmalar, push bildirim tabanlı sepet terk kampanyalarının e-posta kampanyalarına kıyasla 3 kat daha yüksek açılma oranına ulaşabildiğini göstermektedir. Fiyat düşüşü bildirimleri: Kullanıcının izleme listesindeki bir ürünün fiyatı düştüğünde anında bildirim. Stok bildirimleri: "Beklediğiniz ürün tekrar stokta!" bildirimleri yüksek dönüşüm sağlar. Sipariş durumu güncellemeleri: Sipariş hazırlandı, kargoya verildi, teslim edildi bildirimleri müşteri memnuniyetini artırır. Kişiselleştirilmiş kampanyalar: Kullanıcının geçmiş davranışlarına göre hedeflenmiş indirim bildirimleri.Push Bildirimi İzin Alma Stratejisi
Push bildirimi izni için kullanıcı deneyimi kritiktir. Sayfa açılır açılmaz izin istemek en kötü yaklaşımdır. Araştırmalar, bağlamsal izin isteklerinin (kullanıcı belirli bir eylemi gerçekleştirdikten sonra) çok daha yüksek kabul oranı sağladığını gösteriyor.
Başarılı izin alma stratejisi:- Kullanıcı en az 2 ürün sayfasını ziyaret etsin
- Veya bir ürünü sepete eklesin
- Ardından "Fiyat düşüşlerinden haberdar olmak ister misiniz?" gibi somut bir fayda sunun
- İzin verilirse push aboneliği oluşturun
"Ana Ekrana Ekle" Deneyimi
PWA'nın en güçlü özelliklerinden biri, kullanıcıların mağazanızı ana ekranlarına uygulama gibi ekleyebilmesidir. Bu sayede:
- Uygulama ikonu ana ekranda görünür
- Uygulama başlık çubuğu gizlenerek tam ekran çalışır
- Splash screen gösterilir
- URL çubuğu görünmez, gerçek bir uygulama gibi hissettirir
Google, kullanıcıların PWA kurulumunun ardından mağazayı ziyaret etme sıklığının yaklaşık 3 kat arttığını raporlamaktadır. Bu doğrudan uzun vadeli müşteri değerine (lifetime value) yansır.
Install Prompt'u Doğru Zamanlarda Göstermek
Tarayıcı otomatik olarak install prompt göstermek istediğinde bunu yakalayıp daha uygun bir zamana saklayabilirsiniz:
let deferredPrompt;
window.addEventListener('beforeinstallprompt', (e) => {
e.preventDefault();
deferredPrompt = e;
// Install butonunu göster
showInstallButton();
});
function installApp() {
if (deferredPrompt) {
deferredPrompt.prompt();
deferredPrompt.userChoice.then((choiceResult) => {
if (choiceResult.outcome === 'accepted') {
// Yükleme analitiklerini kaydet
trackInstallEvent();
}
deferredPrompt = null;
});
}
}
PWA E-Ticaret Performans Metrikleri
Gerçek dünya verilerine bakıldığında, PWA implementasyonunun e-ticaret metriklerine etkisi etkileyici boyutlardadır:
| Metrik | Ortalama İyileşme |
|---|---|
| Sayfa yükleme süresi | %50-70 azalma |
| Dönüşüm oranı | %20-40 artış |
| Ortalama oturum süresi | %40-60 artış |
| Sepet terk oranı | %15-25 azalma |
| Tekrar ziyaret oranı | %30-50 artış |
Bu rakamlar sektörden sektöre değişmekle birlikte, PWA'nın e-ticaret KPI'larına pozitif etkisi genel olarak kabul görmektedir.
PWA Implementasyon Yol Haritası
Aşama 1: Temel Hazırlık (1-2 Hafta)
- HTTPS kurulumu ve sertifika yapılandırması
- Web App Manifest oluşturma
- Temel service worker kurulumu
- Kritik varlıklar için önbellekleme stratejisi
Aşama 2: Offline Deneyim (2-3 Hafta)
- Ürün kataloğu önbellekleme
- Offline fallback sayfaları
- Background Sync için sepet senkronizasyonu
- Çevrimdışı durumu kullanıcıya bildirme
Aşama 3: Etkileşim Özellikleri (2-4 Hafta)
- Push bildirim altyapısı kurulumu
- Bildirim segmentasyonu ve kişiselleştirme
- Install prompt stratejisi
- Bildirim analitikleri
Aşama 4: Optimizasyon (Sürekli)
- Lighthouse skoru iyileştirme
- Önbellekleme stratejilerinin fine-tuning'i
- A/B testi ile push bildirim içeriklerini optimize etme
- Yeni API'lerin (Web Share, Web Payments) entegrasyonu
Teramerce ve Mobil Deneyim
Teramerce mağazaları Next.js tabanlıdır ve mobil uyumlu çalışır. Hazır PWA şablonu, service worker ve push bildirim altyapısı Teramerce'in mevcut özellikleri arasında yer almıyor; PWA ihtiyacınızı demo görüşmesinde konuşabiliriz.
Uygulama mağazası bütçesi, geliştirme süreci ve bakım yükü olmaksızın uygulamaya yakın bir deneyim sunmak mümkün; doğru adımları yukarıdaki yol haritasıyla planlayabilirsiniz.