Çevrimdışı Çalışan (Offline-First) Mobil Uygulama Tasarımı
Neden gerekli?
Bodrum katlarda, şantiyelerde, depolarda, kırsal bölgelerde ve hatta asansörde bağlantı kesilebilir. Uygulama her işlemde sunucuya bağımlıysa kullanıcı iş yapamaz, veri kaybolur veya tekrar girilir.
Temel bileşenler
- Yerel veritabanı: Cihazda SQLite tabanlı çözümler veya benzeri yerel depolama
- Değişiklik kuyruğu: Çevrimdışıyken yapılan işlemler sırayla kaydedilir
- Senkronizasyon motoru: Bağlantı geldiğinde kuyruktaki değişiklikleri gönderir, sunucudaki güncellemeleri alır
- Çakışma çözümü: Aynı kayıt hem cihazda hem sunucuda değiştiyse ne olacağı
Çakışma stratejileri
- Son yazan kazanır: Basit ama veri kaybına yol açabilir
- Alan bazında birleştirme: Farklı alanlar değiştiyse ikisi de korunur
- Kullanıcıya sorma: Kritik verilerde çakışma kullanıcıya gösterilir
- Sadece ekleme: Kayıtları değiştirmek yerine yeni olay olarak eklemek (örneğin stok hareketleri); çakışmayı doğal olarak azaltır
Tasarım ilkeleri
- Kullanıcıya bağlantı ve senkronizasyon durumunu açıkça gösterin: “3 kayıt gönderilmeyi bekliyor”
- Cihazda kimlik üretimi için UUID kullanın; sunucu kimliği beklemeyin
- Sunucuya giden işlemleri idempotent tasarlayın; aynı işlem iki kez gelirse tekrarlanmasın
- Büyük dosyaları (fotoğraf) ayrı ve devam ettirilebilir şekilde yükleyin
- Cihazda tutulan hassas veriyi şifreleyin
- Yalnızca kullanıcının ihtiyaç duyduğu veriyi cihaza indirin
Test
Uçak modu, zayıf bağlantı, bağlantının işlem ortasında kopması ve aynı kaydın iki cihazdan değiştirilmesi senaryoları mutlaka test edilmelidir.
Sonuç
Offline-first tasarım, sahada çalışan uygulamaların güvenilirliğini belirler. Mobil uygulama geliştirme hizmetimizi inceleyebilir veya ücretsiz keşif görüşmesi talep edebilirsiniz.