Tüm yazılar

Mobil Uygulamalarda Çevrimdışı Çalışma ve Veri Senkronizasyonu Nasıl Planlanır?

WebinleYayımlanma: Güncellenme:

Bir mobil uygulamanın internet bağlantısı zayıfladığında tamamen kullanılamaz hâle gelmesi, yalnızca teknik bir kesinti değildir. Saha ekibi kayıt açamaz, kullanıcı yarım kalan formunu kaybedebilir veya aynı işlem birden fazla kez sunucuya gönderilebilir. Bu nedenle mobil uygulama veri senkronizasyonu, geliştirme tamamlandıktan sonra eklenecek bir ayrıntı değil, ürün akışının başlangıcında kararlaştırılması gereken bir mimari konudur.

Sağlıklı yaklaşım, “uygulama internetsiz çalışsın” gibi geniş bir istekle başlamaz. Hangi ekranların çevrimdışı açılacağı, hangi işlemlerin cihazda saklanacağı ve bağlantı geri geldiğinde verilerin hangi kuralla birleştirileceği açıkça belirlenir. Böylece iOS ve Android uygulaması kullanıcıya anlaşılır durumlar gösterirken sunucu tarafı da tutarlı veriyi koruyabilir.

Çevrimdışı çalışma ihtiyacını iş akışından çıkarın

Her mobil uygulamanın aynı düzeyde çevrimdışı desteğe ihtiyacı yoktur. Bir içerik uygulamasında daha önce açılmış sayfaların okunabilmesi yeterli olabilir. Saha operasyonunda ise form oluşturma, fotoğraf ekleme, konum kaydetme ve görev durumunu değiştirme gibi işlemlerin bağlantısız ortamda sürmesi gerekebilir.

Planlama sırasında ekran bazında şu sorular yanıtlanmalıdır:

  • Kullanıcı bu ekranı internet olmadan görüntüleyebilir mi?
  • Yeni kayıt oluşturabilir veya mevcut kaydı değiştirebilir mi?
  • İşlem hemen sonuçlanmak zorunda mı, daha sonra gönderilebilir mi?
  • Aynı kayıt başka bir cihazda değişirse hangi veri geçerli sayılmalı?
  • Kullanıcı bekleyen ve başarısız işlemleri nereden görecek?

Bu cevaplar ürün kapsamını netleştirir. Örneğin ödeme onayı gibi sunucu doğrulaması gerektiren bir işlem çevrimdışı tamamlanmış gibi gösterilmemelidir. Buna karşılık taslak form, ürün sayımı veya saha notu cihazda güvenle saklanabilir.

Yerel veri modeli sunucunun kopyası olmamalı

Çevrimdışı mobil uygulama, gerekli verilerin cihazda tutulduğu yerel bir veri katmanına ihtiyaç duyar. Ancak sunucudaki bütün tabloları doğrudan telefona kopyalamak güvenlik, performans ve bakım sorunları doğurabilir. Cihazda yalnızca ilgili kullanıcının görevini sürdürebilmesi için gereken alanlar saklanmalıdır.

Yerel kayıtlarda sunucu kimliği, cihazda oluşturulan geçici kimlik, son değişiklik zamanı ve senkronizasyon durumu gibi teknik alanlar bulunabilir. Yeni bir kayıt internet yokken üretildiğinde geçici kimlik kullanılır; sunucu kaydı kabul ettiğinde bu kimlik kalıcı kayıtla eşleştirilir.

Veri modeli tasarlanırken silme işlemi de düşünülmelidir. Bir kayıt cihazdan hemen kaldırılırsa, sunucuya silme talebi gönderilemeden bilgi kaybolabilir. Bu nedenle bazı akışlarda kayıt önce “silinmeyi bekliyor” olarak işaretlenir ve başarılı senkronizasyondan sonra yerel depodan temizlenir.

Senkronizasyon kuyruğu işlemleri görünür kılar

Bağlantı yokken yapılan değişikliklerin sırayla tutulduğu bir senkronizasyon kuyruğu, sürecin temel bileşenidir. Kuyrukta yalnızca gönderilecek veri değil, işlemin türü, oluşturulma zamanı, deneme durumu ve bağımlı olduğu diğer kayıtlar da izlenebilir.

Örneğin yeni bir müşteri kaydıyla ona bağlı ziyaret notu aynı anda oluşturulduysa önce müşteri kaydının sunucuda açılması gerekir. Kuyruk bu bağımlılığı bilmeden çalışırsa ziyaret notu geçersiz bir kimlikle gönderilebilir. İşlemlerin doğru sırada yürütülmesi, özellikle birden fazla formun birbirine bağlı olduğu kurumsal uygulamalarda önem taşır.

Başarısız istekler sonsuz biçimde tekrarlanmamalıdır. Bağlantı hatası, yetki sorunu ve doğrulama hatası birbirinden ayrılmalıdır. Geçici bağlantı sorunu yeniden denenebilir; hatalı alan içeren kayıt ise kullanıcı veya ekip müdahalesi gerektirir.

Veri çakışması için iş kuralı belirleyin

Aynı kayıt iki cihazda değiştirildiğinde mobil uygulama veri senkronizasyonu bir çakışmayla karşılaşır. “Son kaydeden kazanır” yaklaşımı kolay görünür, fakat önemli bir değişikliği sessizce silebilir. Doğru yöntem verinin niteliğine göre seçilmelidir.

Alan bazında birleştirme

İki kullanıcı farklı alanları değiştirdiyse güncellemeler birleştirilebilir. Biri telefon numarasını, diğeri not alanını değiştirdiyse iki bilgi de korunabilir. Aynı alanın iki farklı değere dönüştürülmesi durumunda ek karar gerekir.

Sunucu önceliği

Stok, fiyat veya yetki gibi merkezi olarak yönetilen bilgilerde sunucu değeri esas alınabilir. Uygulama, yerel değişikliğin neden kabul edilmediğini kullanıcıya açıklamalıdır.

Kullanıcıya seçim sunma

Teknik ekibin otomatik karar veremeyeceği önemli içeriklerde iki sürüm gösterilebilir. Bu seçenek daha fazla arayüz tasarımı ister, ancak veri kaybının kritik olduğu süreçlerde anlamlıdır.

Kullanıcıya bağlantı ve kayıt durumunu açıkça gösterin

Çevrimdışı destek görünmez bir arka plan özelliği gibi ele alınmamalıdır. Kullanıcı kaydın cihazda saklandığını, sunucuya gönderilmeyi beklediğini veya hata aldığını anlayabilmelidir. Aksi hâlde aynı işlemi yeniden yaparak çoğaltılmış kayıtlar oluşturabilir.

Arayüzde bağlantı durumu, bekleyen işlem sayısı ve son başarılı senkronizasyon zamanı sade biçimde gösterilebilir. “Kaydedildi” ifadesi yerine “Cihaza kaydedildi, bağlantı gelince gönderilecek” gibi durumla uyumlu bir metin kullanılabilir. Başarısız kayıtta yeniden deneme ve ayrıntı görme seçenekleri sunulmalıdır.

Güvenlik çevrimdışı senaryoda da devam eder

Cihazda veri tutmak, erişim ve saklama kurallarını daha önemli hâle getirir. Hassas içerik düz metin dosyalarda bırakılmamalı; işletim sisteminin güvenli saklama imkânları ve uygun şifreleme yaklaşımı kullanılmalıdır. Kullanıcı oturumu kapandığında hangi verilerin temizleneceği önceden belirlenmelidir.

Yetkisi değişen bir kullanıcının cihazı uzun süre internete bağlanmayabilir. Bu nedenle çevrimdışı erişimin süresi ve kapsamı iş riskine göre sınırlandırılabilir. Sunucuya bağlantı kurulduğunda güncel yetkiler kontrol edilmeli, artık erişilmemesi gereken veriler cihazdan kaldırılmalıdır.

Test planını gerçek bağlantı koşullarıyla kurun

Yalnızca tamamen açık veya tamamen kapalı internet testi yeterli değildir. Bağlantının istek sırasında kesilmesi, yavaşlaması ve tekrar gelmesi ayrı senaryolardır. Uygulamanın arka plana alınması, telefonun kapanması veya işletim sisteminin uygulamayı sonlandırması da kuyruk davranışını etkileyebilir.

Test listesinde şu durumlar yer almalıdır:

  • Kayıt gönderilirken bağlantının kesilmesi
  • Aynı işlemin yeniden denenmesi ve çift kayıt kontrolü
  • İki cihazın aynı veriyi değiştirmesi
  • Oturum süresinin çevrimdışıyken dolması
  • Büyük dosya veya fotoğraf aktarımının yarıda kalması
  • Uygulama güncellemesinden sonra bekleyen kayıtların korunması
  • Sunucu doğrulamasından dönen alan hatalarının gösterilmesi

Proje kapsamına hangi kararlar yazılmalı?

Geliştirme teklifi veya teknik kapsam hazırlanırken “offline destek vardır” cümlesi tek başına yeterli değildir. Desteklenen ekranlar, cihazda tutulacak veri, kuyruk kuralları, çakışma yöntemi, dosya aktarımı, güvenlik sınırları ve kullanıcı bildirimleri ayrı maddeler hâline getirilmelidir.

İlk sürümde bütün uygulamayı çevrimdışı yapmak yerine en kritik iş akışları seçilebilir. Bu yaklaşım test yükünü kontrol eder ve gerçek kullanım geri bildirimlerine göre kapsamın genişletilmesini sağlar.

Webinle, iOS ve Android projelerinde mobil akışı sunucu mimarisiyle birlikte değerlendirir. Çevrimdışı çalışma gereksiniminiz için teknik kapsam oluşturmak isterseniz mobil uygulama geliştirme hizmetimizi inceleyebilir ve projenizi paylaşabilirsiniz.

Sık sorulan sorular

Her mobil uygulama offline-first geliştirilmeli mi?

Hayır. Çevrimdışı desteğin kapsamı kullanıcı ortamına ve iş sürecine bağlıdır. Gereksiz kapsam, geliştirme ve test yükünü artırabilir.

Bağlantı gelince bütün veriler otomatik gönderilebilir mi?

Gönderilebilir; ancak işlem sırası, yetki, doğrulama ve çakışma kuralları uygulanmalıdır. Kullanıcı da bekleyen veya başarısız kayıtları görebilmelidir.

iOS ve Android aynı senkronizasyon mantığını kullanabilir mi?

İş kuralları ortak tasarlanabilir. Bununla birlikte arka plan çalışma sınırları, yerel depolama ve işletim sistemi davranışları platform bazında ele alınmalıdır.