İçeriğe atla
Sitemox
Blog
Mimari1 dk okuma05 Mayıs 2026

Mobil uygulamada çevrimdışı çalışma: senkronizasyon desenleri

Saha ekipleri her zaman sinyal bulamıyor. Çevrimdışı yazma, kuyruk yönetimi ve çakışma çözümü için pratik desenler.

Mobil uygulamada çevrimdışı çalışma: senkronizasyon desenleri

Depoda, bodrum katında, otoyolda veya kırsal bir teslimat noktasında sinyal yoktur. Saha uygulamalarında "internet yoksa çalışmaz" kabul edilebilir bir davranış değil.

Çevrimdışı öncelikli yaklaşım

Temel fikir şu: uygulama her zaman yerel veritabanına yazar, sunucuyla senkronizasyon arka planda gerçekleşir. Kullanıcı hiçbir zaman ağı beklemez.

Bu, "internet varsa sunucuya, yoksa yerel'e yaz" yaklaşımından farklıdır. İki ayrı yol tutmak, test edilmesi çok zor hata durumları üretir. Tek yol olsun: her zaman yerel.

İşlem kuyruğu

Yerel yazma işlemleri aynı zamanda bir kuyruğa eklenir. Bağlantı geldiğinde kuyruk sırayla işlenir. Kuyruk kalıcı olmalı — uygulama kapansa bile kaybolmamalı.

  • Her işleme benzersiz bir kimlik verin.
  • Sunucu tarafında bu kimliği kontrol edin; aynı işlem iki kez gelirse ikincisi yok sayılsın.
  • Başarısız işlemleri artan aralıklarla yeniden deneyin.
  • Belirli sayıda denemeden sonra kullanıcıya bildirin, sessizce kaybetmeyin.

Sıralama önemli

"Kaydı oluştur" ve "kaydı güncelle" işlemleri ters sırayla giderse hata alırsınız. Aynı varlığa ait işlemler sıralı işlenmeli; farklı varlıklar paralel gidebilir.

Çakışma çözümü

Aynı kaydı iki kullanıcı çevrimdışıyken değiştirdiğinde ne olacak? Seçenekler:

  • Son yazan kazanır: Basit ama veri kaybettirebilir. Bağımsız kayıtlar için kabul edilebilir.
  • Alan bazlı birleştirme: Farklı alanlar değişmişse ikisi de korunur. Çoğu iş uygulaması için doğru denge.
  • Kullanıcıya sor: Kritik verilerde iki sürümü gösterip seçtirin.

Hangisini seçerseniz seçin, kararı önceden verin ve dokümante edin. Çakışmayı çalışma anında keşfetmek pahalıdır.

Kullanıcıya durumu göster

Çevrimdışı çalışan bir uygulamada kullanıcı, kaydettiği şeyin gerçekten gidip gitmediğini bilmek ister. Basit bir gösterge yeterli: "3 kayıt bekliyor" veya "Tümü senkron". Belirsizlik güveni öldürür.

Veri boyutu

Tüm veritabanını cihaza indirmeye çalışmayın. Kullanıcının işine yarayacak dilimi çekin: kendi görevleri, son 30 günün kayıtları, ilgili müşteriler. Depolama sınırlarını aşan uygulamalar işletim sistemi tarafından temizlenebilir.

#mimari#mobil#senkronizasyon
Mobil Uygulamada Çevrimdışı Çalışma ve Senkronizasyon