İçeriğe geç
Mobil Uygulama Geliştirme9 dk okuma

Saha Ekibi Uygulaması: Yerel Uygulama mı, Mobil Web mi, PWA mı?

Üç seçenek: mobil uyumlu web, PWA ve yerel uygulama

Saha ekibi için kurulabilecek üç yapı, aynı işi farklı cihaz yetenekleri ve farklı dağıtım yollarıyla yapar.

Mobil uyumlu web paneli, telefonun tarayıcısında açılan ve ekrana uyum sağlayan bir web uygulamasıdır. Kurulum yoktur; adres açılır, giriş yapılır. Bağlantı olmadığında çalışmaz.

PWA (Progressive Web App), MDN'nin tanımıyla web teknolojileriyle yapılan ama platforma özgü bir uygulamaya benzer deneyim sunan uygulamadır. Ana ekrana eklenir, kendi simgesiyle tam ekran açılır. Service worker adı verilen bir arka plan bileşeniyle bağlantı yokken de belirli ölçüde çalışabilir.

Yerel (native) uygulama, iOS ve Android için ayrı ayrı ya da çapraz platform bir çatıyla geliştirilip mağazalardan kurulan uygulamadır. Cihazın donanımına ve arka plan işlemlerine en geniş erişime sahiptir.

Üçü arasındaki fark, aynı ekranı göstermekten çok "uygulama kapalıyken ve bağlantı yokken ne yapılabildiği" sorusunda ortaya çıkar.

Karar tablosu: hangi ihtiyaç hangi seçeneği gerektirir?

Saha ihtiyaçlarınızı aşağıdaki satırlarda işaretleyin; en sağdaki sütuna düşen ihtiyaç sayısı, yerel uygulamanın gerekip gerekmediğini gösterir.

İhtiyaçMobil uyumlu webPWAYerel uygulama
Bağlantı yokken kayıt girmekYokVar; iOS'ta gönderim uygulama açıkkenVar, arka planda gönderim
Fotoğraf çekip kayda eklemekVarVarVar
Telefon kamerasıyla barkod okumakAndroid Chrome'da yerleşik, iOS'ta kütüphaneyleAndroid Chrome'da yerleşik, iOS'ta kütüphaneyleYerleşik
Uygulama açıkken konum almakVarVarVar
Uygulama kapalıyken konum takibiYokStandart bir yol bulamadıkVar, izinle
Bildirim göndermekAndroid'de mümkün (service worker gerekir); iOS'ta yokAndroid'de var; iOS 16.4 ve sonrasında ana ekrana ekleninceVar
Bluetooth yazıcı, NFCAndroid Chrome'da kısmen; iOS'ta yokAndroid Chrome'da kısmen; iOS'ta yokVar
Mağazada yayınGerekmezAndroid'de mümkün; App Store'da zorVar, inceleme gerekir
Güncellemenin ulaşmasıAnındaAnındaMağaza onayı ve kullanıcı güncellemesi

Tablonun okunuşu basittir. İhtiyaçlarınız fotoğraf, barkod ve uygulama açıkken konumdan ibaretse ve ekip sürekli bağlantılı çalışıyorsa mobil uyumlu web paneli yeter. Bağlantının koptuğu yerler varsa PWA'ya geçilir. Uygulama kapalıyken konum takibi, Bluetooth yazıcı ya da iOS'ta güvenilir arka plan gönderimi şartsa yerel uygulama gerekir.

PWA'nın sınırları: iOS ile Android aynı değil

PWA'nın sınırını uygulamanın kendisi değil, telefonun işletim sistemi ve tarayıcı motoru belirler; Android'de Chrome geniş destek verirken iOS'ta destek daha dardır. Aşağıdaki maddeler MDN'nin tarayıcı uyumluluk verisi ve Apple'ın WebKit belgelerine dayanıyor; kurulumdan önce güncel hâli yeniden kontrol edilir.

iOS'ta bütün tarayıcılar aynı motoru kullanır. Apple'ın App Store İnceleme Yönergeleri'nin 2.5.6 maddesi, web tarayan uygulamaların WebKit kullanmasını şart koşuyor; alternatif motor yalnızca AB ve Japonya için ayrı izinle mümkün. Yani Türkiye'de iPhone'da Chrome kullanmak, PWA sınırlarını değiştirmez.

Bildirim (web push). WebKit ekibinin Şubat 2023 duyurusuna göre web push, iOS ve iPadOS 16.4 ile geldi. Şartı açık: uygulama ana ekrana eklenmiş olmalı ve izin isteği kullanıcının bir düğmeye dokunması gibi doğrudan bir etkileşimle başlamalı. Safari'de sekme olarak açılan panel bildirim alamaz.

Kurulum. Android'de Chrome, uygulamayı kurmayı kullanıcıya kendisi önerebilir. Bu öneriyi tetikleyen olay (beforeinstallprompt) MDN verisine göre Safari'de desteklenmiyor. iPhone'da kullanıcı Paylaş menüsünden "Ana Ekrana Ekle"yi kendisi seçmelidir. Saha ekibine bu adım bir kez gösterilir.

Arka planda senkron. Bağlantı gelince bekleyen işi arka planda gönderen Background Synchronization API, MDN'de "sınırlı erişilebilirlik" olarak işaretli: Chrome ve Chromium tabanlı tarayıcılarda var, Safari ve Firefox'ta yok. Pratik sonuç: iPhone'da bekleyen kayıtlar, uygulama açıldığında ya da açıkken gönderilir.

Barkod. Tarayıcının yerleşik barkod okuyucusu (BarcodeDetector) Android'de Chrome'da destekleniyor; Safari'de ise yalnızca deneysel bir ayarla açılabiliyor. iPhone'da barkod, kamera görüntüsünü işleyen bir JavaScript kütüphanesiyle okunur. Bu çalışır, ama yoğun okutma yapılan işlerde yerleşik okuyucu kadar hızlı olmayabilir; cihazlarınızda denenerek karar verilir.

Bluetooth ve NFC. Web Bluetooth ve Web NFC, MDN verisine göre Android'de Chrome'da var, Safari'de yok; bu, ana ekrana eklenmiş olsun olmasın tarayıcıda açılan her web uygulaması için geçerlidir. Sahada Bluetooth yazıcıdan fiş basmak ya da NFC etiket okumak iPhone'da şartsa PWA bu ihtiyacı karşılamaz.

Veri saklama. WebKit, Safari'de bir siteyle yedi gün etkileşim olmazsa betikle yazılan verileri (IndexedDB gibi) silen bir kural uyguluyor. Aynı duyuruya göre ana ekrana eklenen web uygulamaları Safari'nin parçası sayılmıyor ve kendi kullanım sayaçları var. Sonuç: çevrimdışı kayıt tutan PWA, iPhone'da mutlaka ana ekrana eklenerek kullanılmalı ve bekleyen kayıtlar uzun süre cihazda bırakılmamalıdır.

Çevrimdışı çalışma: asıl karar noktası

Saha ekibi uygulamasında çevrimdışı çalışma, "bağlantı yokken kaydı cihazda tutmak, bağlantı gelince göndermek ve çakışmayı çözmek" demektir; ekran tasarımından çok daha fazla mühendislik ister. Bu yüzden yalnızca gerçekten bağlantının koptuğu iş adımlarında kurulmalıdır.

Çevrimdışı tasarımda dört soru cevaplanır:

  1. Hangi veri cihaza iner? Teknisyenin günlük iş listesi, müşteri adresleri, parça listesi. Bütün stok kataloğu değil, işin gerektirdiği kadarı.
  2. Hangi kayıt cihazda oluşur? Servis formu, kullanılan parça, fotoğraf, müşteri imzası.
  3. Gönderim nasıl doğrulanır? Her kaydın benzersiz bir numarası olur. Gönderim yarıda kesilip tekrarlanırsa sunucuda iki kayıt oluşmaz.
  4. Çakışma olursa ne olur? Aynı iş emri hem ofiste hem sahada değiştirildiyse hangisinin geçerli olduğu kurala bağlanır; belirsiz durumlar bir kişiye listelenir.

Ekranın üstünde bekleyen kayıt sayısı her zaman görünmelidir. Teknisyen "gönderildi mi" diye ofisi aramamalı; uygulama bunu kendisi söylemelidir.

Mağaza yayını, güncelleme ve maliyet kalemleri

Saha ekibi için yapılan bir uygulamanın herkese açık mağazada yayınlanması çoğu zaman gerekmez; asıl soru, uygulamanın ekip telefonlarına nasıl kurulacağı ve nasıl güncelleneceğidir.

Apple tarafı. App Store İnceleme Yönergeleri'nin 4.2 maddesi, uygulamanın "yeniden paketlenmiş bir web sitesinin" ötesine geçen özellikler sunmasını istiyor. Bir web panelini yalnızca kabuğa sarıp App Store'a göndermek bu yüzden reddedilebilir. Şirket içi kullanım için Apple, "custom apps" adıyla belirli kuruluşlara özel dağıtım sunuyor: uygulama Apple Business Manager üzerinden yalnızca o kuruluşa görünür ve cihaz yönetimi aracıyla ya da kodla dağıtılır. Bu yolda da uygulama Apple'ın onayından geçer.

Android tarafı. Bir PWA, Google'ın Trusted Web Activity yöntemiyle Android uygulaması olarak paketlenebilir. Chrome geliştirici belgesine göre bunun için uygulama ile sitenin aynı geliştiriciye ait olduğu Digital Asset Links ile doğrulanır. Ayrıca kurumsal cihaz yönetimi araçlarıyla uygulamayı yalnızca şirket telefonlarına dağıtmak da yaygın bir yoldur.

Güncelleme. Web paneli ve PWA'da yeni sürüm sunucuya yüklendiği anda bütün ekibe ulaşır. Yerel uygulamada her güncelleme mağaza incelemesinden geçer ve kullanıcının telefonunda güncellenmesi gerekir; eski sürümü kullanan bir teknisyen olabileceği için sunucu tarafı bir süre eski sürümü de desteklemelidir.

Maliyet kalemleri: rakam değil, kalem listesi

Toplam maliyet tek bir geliştirme bedelinden oluşmaz; seçilen yapıya göre ortaya çıkan kalemleri baştan listelemek, teklifleri karşılaştırılabilir kılar. Kesin rakam kapsama göre değiştiği için burada kalemleri veriyoruz.

  • Geliştirme: Yerel uygulamada iki platform ya da çapraz platform çatı; web ve PWA'da tek kod tabanı.
  • Sunucu ve ara katman: Her üç seçenekte de gerekir. Saha kaydını toplayan, ERP'ye ileten katman çoğu zaman uygulamanın kendisinden daha kritiktir.
  • Mağaza ve geliştirici hesapları: Yerel uygulama ya da mağaza dağıtımı varsa Apple ve Google geliştirici hesapları.
  • Cihaz yönetimi: Şirket telefonlarına dağıtım yapılacaksa cihaz yönetimi aracı.
  • Test cihazları: Ekipte kullanılan telefon ve el terminali modellerinde deneme.
  • Bakım: İşletim sistemi güncellemeleri, mağaza politikası değişiklikleri ve ERP sürüm geçişleri. Yerel uygulamada bu kalem genellikle daha ağırdır.

Bizim standardımız sabit fiyat ve teslim sonrası 15 gün ücretsiz hata düzeltmedir; süreklilik isteyen bakım ayrı bir anlaşmayla yürür.

ERP bağlantısı: saha kaydı muhasebeye nasıl ulaşır?

Saha uygulamasında oluşan kayıt, ERP'ye doğrudan değil bir ara katman üzerinden ve programın resmî arayüzünden yazılmalıdır. Telefonun ERP veritabanına bağlanması hem güvenlik hem veri bütünlüğü açısından yanlış bir tasarımdır. Bu kısım, uygulamanın ekranlarından bağımsız bir ERP entegrasyonu işidir.

Sağlam bir yapı şöyle kurulur:

  • Ara katman: Uygulama yalnızca kendi sunucusuyla konuşur. Ara katman veriyi dönüştürür, eşler ve ERP'ye iletir. ERP değişse de saha uygulaması değişmez.
  • Kuyruk: ERP kapalıyken ya da bakımdayken saha durmaz. Kayıtlar kuyrukta bekler, bağlantı gelince sırayla işlenir.
  • Resmî yazma yolu: Logo'da Logo Objects ya da Logo REST Servis, Netsis'te NetOpenX, Mikro'da Mikro Desktop API gibi belgelenmiş arayüzler kullanılır. Erişim izni çoğunlukla yetkili bayi kanalından açılır.
  • Okuma için önbellek: Müşteri, ürün ve fiyat listesi ERP'den okunup ara katmanda tutulur; telefon bu listeyi oradan alır.
  • Eşleme tablosu: Stok kodu, cari kodu, birim ve depo eşlemeleri kodda değil, yönetilebilir bir tabloda durur.

Depo ve sevkiyat işlerinde ayrıca el terminali gündeme gelir. Çoğu Android el terminali okuttuğu barkodu klavye girişi gibi aktarabildiği için web formlarıyla da çalışabilir; cihaz modelinizde teyit edilir. Yoğun okutma yapılan depo işleri için ayrıntı barkodlu stok takip programı sayfamızda.

Hazır bir saha servis uygulaması işinizi görüyorsa onu kullanmanızı öneririz. Fabrikaya özel yazılım, hazır ürünün kapsamadığı akış ya da ERP bağlantısı için anlamlıdır.

Sıkça Sorulan Sorular

Servis takip uygulaması için mutlaka mağazadan indirilen uygulama mı gerekir?

Gerekmez. Ekip çoğunlukla bağlantılı çalışıyorsa ve uygulama kapalıyken konum ya da Bluetooth yazıcı gibi ihtiyaçlar yoksa mobil uyumlu web paneli ya da PWA yeterlidir. Yerel uygulama, bu ihtiyaçlar şart olduğunda gerekir.

PWA iPhone'da bildirim gönderebilir mi?

Gönderebilir, ama şartla. WebKit'in duyurusuna göre iOS ve iPadOS 16.4 ve sonrasında, ana ekrana eklenmiş web uygulamaları bildirim izni isteyebilir. İzin isteği kullanıcının bir düğmeye dokunmasıyla başlamalıdır; Safari sekmesinde açılan panel bildirim alamaz.

Bağlantının olmadığı yerde kayıt kaybolur mu?

Çevrimdışı çalışma için tasarlanmış bir PWA ya da yerel uygulamada kayıt cihazda tutulur ve bağlantı gelince gönderilir. iPhone'da PWA'nın arka planda gönderimi desteklenmediği için gönderim uygulama açıkken yapılır. Bekleyen kayıt sayısı ekranda görünür olmalıdır.

Saha uygulaması ERP'ye doğrudan bağlanabilir mi?

Önermiyoruz. Telefonun ERP veritabanına bağlanması güvenlik riski yaratır ve programın kendi kontrollerini atlar. Doğru yapı, saha kaydını bir ara katmanda toplayıp ERP'ye programın resmî arayüzünden yazmaktır.

Önce web paneliyle başlayıp sonra yerel uygulamaya geçilebilir mi?

Geçilebilir; ara katman ve ERP bağlantısı baştan doğru kurulduysa yalnızca ön yüz değişir. Bu yüzden ilk sürümü web ya da PWA olarak çıkarıp sahadan gelen gerçek ihtiyaca göre yerel uygulamaya karar vermek çoğu zaman daha düşük risklidir.

Sonraki adım: saha ihtiyaçlarınızı karar tablosuna dökelim

Saha ekibinizin hangi işleri, hangi cihazlarla ve hangi bağlantı koşullarında yaptığını birlikte inceleyebiliriz. Mobil uyumlu web yetiyorsa yerel uygulama önermeyiz; gerekiyorsa sebebini karar tablosuyla gösteririz. Saha uygulaması ve ERP bağlantısı, fabrikaya özel yazılım projelerimizin parçası olarak da kurulabilir. Ücretsiz online keşif görüşmesi için iletişime geçin. İsterseniz WhatsApp'tan da yazabilirsiniz.

YAZAR

Doğuhan Bulut

Kurucu & CTO

Muhasebe/ERP entegrasyonları, otomasyon ve web mimarisi. 10+ yıl yazılım geliştirme deneyimi.

SIRADAKİ ADIM

Mobil uygulamanızı planlayalım

iOS + Android + backend: kapsam, mimari, App Store/Play Store yayın planı. 30 dk ücretsiz keşif.

Ücretsiz keşif al
BENZER İÇERİKLER İSTERSEN

Aylık dijital özet bültenimiz

Ayda 1 e-posta — yeni yazılar, KOBİ + KVKK güncellemeleri, entegrasyon ve otomasyon notları. Spam yok, istediğiniz an çıkış.