Uygulamamızı indirin — daha hızlı, bildirimli deneyim. APK İndir
SSL Güvenli Bağlantı 7/24 Destek 15 Gün İade Garantisi

İnternetsiz Çalışan Mobil Uygulamalar Nasıl Tasarlanır

04.10.2026

Saha ekibi kullanan bir lojistik uygulamasında, depo içindeki bazı bölgelerde sinyal tamamen kesiliyordu. Uygulama internet bağlantısı olmadan hiçbir şey yapamayınca, teslimat kayıtları kağıda geri dönmüştü — dijitalleşmenin tam tersi bir durum. Offline destek, "olsa iyi olur" değil bazı uygulama türlerinde temel gerekliliktir.

Hangi uygulamalarda offline şart

Saha çalışanlarının kullandığı uygulamalar (bakım, teslimat, denetim), toplu taşıma bilet/harita uygulamaları, not alma ve üretkenlik araçları offline desteği olmadan pratik değer üretemez. Buna karşılık her zaman canlı fiyat gösteren bir yemek sipariş uygulamasında offline mod öncelik değil; kullanıcı zaten internet olmadan sipariş veremiyor. Offline desteğe yatırım yapmadan önce "bu uygulama bağlantısız kaldığında kullanıcı gerçekten bir şey yapmaya çalışır mı" sorusunu sormak gerekiyor.

Yerel veri saklama: doğru katmanı seçmek

Basit anahtar-değer verileri için SharedPreferences/UserDefaults yeterli ama yapılandırılmış veri için SQLite tabanlı çözümler (Room, Core Data, veya cross-platform projelerde SQLite wrapper'ları) daha sağlıklı. Büyük dosya veya medya önbellekleme için dosya sistemi kullanılmalı, veritabanına blob olarak gömülmemeli — bu performansı ciddi şekilde düşürüyor. Yerel veritabanı şeması tasarlanırken, sunucudaki şemayla birebir aynı olması gerekmiyor; senkronizasyon amaçlı ekstra alanlar (son değişiklik zamanı, senkron durumu gibi) eklemek gerekiyor.

Senkronizasyon çakışmaları: gerçek zorluk burada

Aynı kaydı hem cihaz offline'dayken hem sunucuda başka bir kullanıcı değiştirdiyse, hangisi kazanır? Basit senaryolarda "son yazan kazanır" (last-write-wins) kabul edilebilir ama kritik veri için bu veri kaybına yol açar. Daha sağlam bir yaklaşım: değişiklik zaman damgalarını karşılaştırıp çakışma tespit etmek, çakışma varsa kullanıcıya "hangi versiyonu tutmak istiyorsunuz" diye sormak veya alan bazlı birleştirme (field-level merge) yapmak. Stok takibi gibi sayısal alanlarda ise toplama/çıkarma tabanlı senkronizasyon (delta sync) çakışmaları büyük ölçüde ortadan kaldırıyor.

Kuyruk mantığı ve yeniden deneme

Offline'ken yapılan her işlem (yeni kayıt, güncelleme, silme) bir kuyruğa yazılmalı ve bağlantı geri geldiğinde sırayla sunucuya gönderilmeli. Gönderim başarısız olursa exponential backoff ile yeniden denemek, sunucuyu bombardımana tutmadan güvenilir senkronizasyon sağlıyor. Kullanıcıya da "3 kayıt senkronize edilmeyi bekliyor" gibi görünür bir durum göstermek, güven duygusu açısından önemli.

Test etmeyi unutmayın

Offline senaryoları geliştirme ortamında test etmek zor çünkü geliştiricinin bilgisayarı genelde her zaman bağlı. Uçak modu testleri, ağ hızını yapay olarak kısıtlayan araçlarla (network throttling) düzenli test yapmak, yayına çıkmadan önce gerçek sahadaki davranışı simüle etmenin en pratik yolu. Bu konuda Android ve iOS tarafında farklı network API'ları olduğu için her iki platformda ayrı ayrı test edilmesi gerekiyor.

Offline destek eklemek, geliştirme sürecine ekstra zaman katıyor ama doğru senaryoda bu yatırım kullanıcı memnuniyetine doğrudan yansıyor.

Backend Mimarisi Mobil Uygulama Offline Çalışma Senkronizasyon Yerel Veri Saklama

İlgili Yazılar

NFC Destekli Uygulamalar: Temassız Ödemeden Sadakat Kartına
Çoklu Şube ve Franchise Yönetiminde Mobil Uygulama Nasıl Kurgulanır
Restoran ve Yemek Siparis Uygulamasi Nasil Gelistirilir

Projenize özel, şeffaf bir mobil uygulama fiyat teklifi için fiyat rehberimize göz atabilir veya bizimle iletişime geçebilirsiniz.