Cy Logic Insights

Mobil Uygulama Kararı: PWA mı, Native mi? İş Uygulamaları İçin Gerçekçi Bir Karşılaştırma

Saha ekipleri ve kurumsal kullanıcılar için mobil uygulama planlarken Progressive Web App ile native geliştirme arasındaki farkları; çevrimdışı çalışma, kamera, bildirim ve dağıtım açısından değerlendiriyoruz. / Comparing Progressive Web Apps with native apps for business use: offline support, camera, notifications and distribution.

"Mobil uygulamamız olsun" cümlesi çoğu zaman mağazada yayınlanan bir uygulama olarak anlaşılır. Oysa iş uygulamalarının büyük kısmında asıl ihtiyaç şudur: saha personelinin telefonundan hızlı, güvenli ve çevrimdışı toleranslı biçimde sisteme veri girebilmesi. Bu ihtiyacı karşılamanın iki yolu vardır: Progressive Web App (PWA) ve native (Android/iOS) uygulama. Bu yazıda ikisini iş uygulamaları gözüyle karşılaştırıyoruz.

PWA nedir, ne değildir?

PWA, modern tarayıcı özelliklerini (service worker, web app manifest, önbellekleme) kullanarak ana ekrana eklenebilen, tam ekran açılan ve belirli ölçüde çevrimdışı çalışabilen web uygulamasıdır. Tek kod tabanı hem masaüstünde hem mobilde çalışır; güncelleme mağaza onayı beklemeden anında yayınlanır. Buna karşılık bazı cihaz özelliklerine erişimi platforma göre sınırlıdır ve özellikle iOS tarafında bildirim ve arka plan davranışları daha kısıtlı olabilir.

Native uygulamanın avantajı nerede başlar?

Native geliştirme; yoğun kamera ve sensör kullanımı, arka planda sürekli konum, çevrimdışı büyük veri setleriyle çalışma, donanım entegrasyonu (yazıcı, barkod okuyucu, NFC) ve platforma özgü güvenlik özellikleri gerektiğinde öne çıkar. Bedeli, iki platform için ayrı ya da çapraz platform bir kod tabanı, mağaza süreçleri ve daha yüksek bakım maliyetidir.

Karşılaştırma tablosu

KonuPWANative DağıtımBağlantı paylaşılır, anında güncellenirMağaza onayı ve sürüm yönetimi ÇevrimdışıForm taslakları ve önbellek için yeterliDaha güçlü, büyük veri setleri için uygun Kamera / QRTarayıcı üzerinden çoğu senaryoda yeterliTam kontrol BildirimlerPlatforma göre değişken destekTam destek Kurumsal dağıtımMağaza gerektirmez, MDM ile uyumluMağaza veya kurumsal dağıtım programı MaliyetTek kod tabanıPlatform başına ek efor

İş uygulamaları için karar ölçütleri

  1. Kullanım senaryosu: Giriş-çıkış, talep açma, onay verme, fotoğraf ekleme gibi kısa işlemler PWA ile rahatça karşılanır.
  2. Bağlantı koşulları: Şantiye veya depo gibi bağlantının zayıf olduğu yerlerde "çevrimdışı kuyruk" tasarımı iki modelde de gerekir; farkı yaratan kodun platformu değil tasarımın kendisidir.
  3. Cihaz politikası: Personel kendi telefonunu kullanıyorsa (BYOD), mağaza kurulumu istemeyen PWA pratik bir avantaj sağlar.
  4. Bildirim ihtiyacı: Anlık ve kritik bildirimler (örneğin acil servis çağrısı) native tarafı güçlendirir.
İlk sürümü PWA olarak çıkarıp gerçek kullanım verisine göre native'e geçmek, tersi yoldan çok daha ucuzdur. Native ile başlayıp "aslında web yeterliymiş" demek, ödenmiş bir maliyeti geri getirmez.

Teknik not: çevrimdışı kuyruk deseni

Her iki modelde de işe yarayan basit bir desen, işlemleri cihazda sıraya alıp bağlantı geldiğinde sunucuya göndermektir. Sunucu tarafında her işlemin benzersiz bir istemci kimliği taşıması, aynı işlemin iki kez işlenmesini (idempotency) önler.

// Örnek: istemci tarafı kuyruk kaydı (kavramsal)
const entry = {
  client_id: crypto.randomUUID(),   // sunucuda tekrarı önlemek için
  type: 'check_in',
  payload: { site_id, qr_token, at: new Date().toISOString() },
};
queue.push(entry);
// bağlantı geldiğinde: POST /api/events  (sunucu client_id'yi benzersiz tutar)

Cy Logic'in konumu

Kurumsal dağıtım senaryoları

İş uygulamalarında "mağazada yayınlamak" çoğu zaman gereksiz, bazen de sakıncalıdır: şirket içi bir uygulamanın herkese açık mağazada görünmesi istenmez. Seçenekler şunlardır:

  • PWA: Bağlantı paylaşılır, kullanıcı ana ekrana ekler. Mobil cihaz yönetimi (MDM) kullanan kurumlarda bağlantı cihazlara merkezi olarak dağıtılabilir.
  • Kurumsal native dağıtım: Platformların kurumsal dağıtım programları veya MDM üzerinden yükleme; mağazada görünmez ama ek süreç ve maliyet gerektirir.
  • Mağaza yayını: Müşteriye açık uygulamalar (B2C) için doğru yol; iş uygulamaları için çoğunlukla gereksiz.

Güvenlik açısından karşılaştırma

İki modelde de güvenlik, istemcide değil sunucuda ve veride kurulur: kimlik doğrulama, oturum yönetimi, yetki politikaları ve girdi doğrulama. PWA'da tarayıcı güvenlik modeli (same-origin, HTTPS zorunluluğu, service worker kapsamı) geçerlidir; native'de uygulama imzalama ve platform izin modeli devreye girer. Her iki durumda da cihazda saklanan veri (çevrimdışı kuyruk, önbellek) asgari tutulmalı ve hassas veri şifrelenmeden saklanmamalıdır. Cihaz kaybı senaryosunda oturumun sunucudan iptal edilebilmesi, platformdan bağımsız bir gerekliliktir.

Performans ve kullanıcı deneyimi

"Native daha hızlı" genellemesi iş uygulamaları için çoğunlukla geçersizdir; form doldurma, liste görüntüleme ve onay verme gibi işlemlerde modern tarayıcılar yeterli performansı verir. Fark, ağır grafik, uzun listelerin akıcı kaydırılması veya kamera akışı üzerinde gerçek zamanlı işleme gibi senaryolarda ortaya çıkar. Kullanıcı deneyiminde belirleyici olan platform değil, ekran tasarımının sahadaki kullanım koşullarına (eldiven, güneş ışığı, tek elle kullanım) uygunluğudur.

Bakım maliyeti: görünmeyen kalem

Native uygulamalarda işletim sistemi sürümleri, mağaza politikaları ve SDK güncellemeleri yıllık düzenli bakım gerektirir; uygulama hiç değişmese bile. PWA'da bu yük tarayıcı uyumluluğuyla sınırlıdır ve genellikle daha düşüktür. Üç yıllık toplam maliyet hesabında bu kalem çoğu zaman en büyük farkı yaratır.

Karar ağacı (özet)

  1. Uygulama müşteriye açık mı (B2C) ve mağaza varlığı pazarlama açısından gerekli mi? Evetse native veya çapraz platform değerlendirin.
  2. Arka planda sürekli konum, yoğun donanım entegrasyonu veya büyük çevrimdışı veri gerekiyor mu? Evetse native.
  3. Kısa işlemler, formlar, QR, fotoğraf ve onaylar mı? PWA ile başlayın.
  4. Emin değilseniz PWA ile başlayın; kullanım verisi kararı netleştirir.

Örnek senaryo

Kurgusal bir örnek: birden fazla şantiyesi olan bir firma, personelin giriş-çıkışını, satın alma taleplerini ve İSG kontrollerini mobilden yapmak istiyor. İşlemler kısa, bağlantı değişken, personel kendi telefonunu kullanıyor. Bu profil PWA için tipiktir: tek kod tabanı, mağaza kurulumu yok, çevrimdışı kuyruk ile zayıf bağlantı toleransı. Aynı firma, araçların güzergâhını arka planda sürekli kaydetmek isterse, o özellik için ayrı bir native bileşen değerlendirilir; tüm uygulamanın native olması gerekmez.

Kurumsal portallarımızı mobil öncelikli web ve PWA olarak geliştiriyoruz; dinamik QR ile giriş-çıkış, talep ve onay akışları bu modelde çalışıyor. Native Android ve iOS uygulama kapsamı ise doğrulama sürecinde olup web sitemizde ancak onaylandığında yayınlanacaktır. Bu, "yalnızca kanıtlayabildiğimiz yetkinlikleri anlatırız" ilkemizin bir gereğidir.