Saha uygulamasında temel tasarım kararı
Uygulama veriyi önce cihazda yazmalı, sunucuya sonra göndermelidir. Kullanıcı bağlantı olup olmadığını düşünmez; kayıt anında yerelde tamamlanır, senkronizasyon arka planda yürür. Depoda, bodrum katta veya kırsalda çalışan ekipler için bu bir özellik değil, temel karardır. Mimarinin ayrıntısı [offline-first tasarım rehberimizde](/blog/mobil-rehberi).
Ne yapıyoruz?
- iOS ve Android uygulama geliştirme (native veya çapraz platform)
- Yerel veritabanı, kalıcı giden işlem kuyruğu ve senkron çalışanı
- Alan bazlı çakışma çözümü kuralları
- Barkod/QR okuma, kamera, imza ve konum entegrasyonları
- Mağaza yayın süreçleri, sürüm zorlama ve hata izleme
- Kurumsal kimlik doğrulama ve cihaz kaybında uzaktan oturum sonlandırma
Çakışma kuralı proje başında yazılır
İki cihaz aynı kaydı çevrimdışıyken değiştirdiğinde ne olacağı alan bazında tanımlanır: bağımsız alanlarda birleştirme, kritik olmayan alanlarda son yazan kazanır, finansal etkisi olan alanlarda (fiyat, iskonto, tahsilat tutarı) sunucu otoritesi ve kullanıcıya sorma. Tüm tablo için tek strateji seçmek ya veri kaybı ya gereksiz uyarı üretir.
Çift kayıt oluşmasını engelliyoruz
Zayıf bağlantıda istek gider ama yanıt kaybolur; uygulama yeniden dener ve sunucuda iki sipariş oluşur. Her işlemi cihazda üretilen benzersiz bir anahtarla gönderiyor, sunucuda aynı anahtar ikinci kez görüldüğünde ilk sonucu döndürüyoruz.
Konum verisi ve mahremiyet
Çalışan konumu kişisel veridir. Konumu sürekli iz olarak değil, ziyaret başlangıcı/bitişi gibi olay bazlı topluyor; toplama amacını, saklama süresini ve çalışanın görünürlüğünü tasarıma dâhil ediyoruz.
Sık sorulan sorular
Native mi, çapraz platform mu?
Sürekli barkod okuma, arka planda konum ve düşük gecikmeli kamera gibi donanım yoğun senaryolarda native avantajlıdır. Form ve liste ağırlıklı saha uygulamalarında çapraz platform tek kod tabanıyla iki mağazaya çıkmayı sağlar.
Yerel veriyi şifrelemek gerekir mi?
Cihazda müşteri, fiyat veya tahsilat verisi tutuluyorsa gerekir. Cihaz kaybında uzaktan oturum sonlandırma ve yerel veriyi temizleme yeteneği de planlanmalıdır.
Senkronizasyon durumu kullanıcıya nasıl gösterilir?
Kayıt bazında: bekliyor, gönderildi, onaylandı. Tek bir genel “senkronize edildi” göstergesi kısmi başarısızlıkları gizler.