Offline-first neden önemli? Metro, uçak, dağ başı — her yerde çalışan uygulama
İnternet yokken de çalışan uygulama nasıl tasarlanır? Dayivo'nun offline-first mimarisi neden veri güvenliği ve kullanıcı deneyimi için kritik.
Metro tünelindesin. Bugünkü 40₺‘lik yemek giderini kaydedeceksin. Uygulamayı açıyorsun — “Bağlantı hatası. Lütfen tekrar deneyin.” Vazgeçiyorsun. Ertesi gün de unutuyorsun.
Bu senaryo, “cloud-first” tasarlanmış çoğu uygulamanın gerçeği. Dayivo tamamen tersine çalışır — internet varsa yedekler, ama önce cihazda.
Offline-first ne demek?
İki yaklaşım var:
- Cloud-first: Sen butona basınca istek sunucuya gider, sunucu cevap verince “tamam” dersin. Sunucu yoksa iş yok.
- Offline-first: Sen butona basınca veri önce cihazındaki veritabanına yazılır. “Tamam” sinyalini anında alırsın. Arka planda, uygun bir zamanda bulutla senkronize olunur.
Fark görünmez ama devrim niteliğinde: Kullanıcı sürtünme hissetmez.
Neden çoğu uygulama cloud-first?
Çünkü daha kolay yazılır. Sunucu bir “tek doğruluk kaynağı” (single source of truth) olur. Çakışma yönetimi, senkronizasyon mantığı, yerel veritabanı şifreleme gibi karmaşıklıklar devreye girmez.
Ama bu kolaylık kullanıcının üzerine yıkılır:
- Tren tünelinde veri giriyor mu? Hayır.
- Uçak modunda not tutabiliyor mu? Hayır.
- Yurtdışında roaming kapalıysa widget tıklanıyor mu? Hayır.
Offline-first uygulamada bu sorular yok. Cihaz açıksa, uygulama çalışır.
Dayivo’nun mimarisi
Dayivo telefonunda özel bir yerel depo kullanır. Her gider, alışkanlık işareti, su girişi önce bu depoya yazılır.
Senkronizasyon arka planda şöyle olur:
- Cihaz internet gördüğünde
- Son senkronizasyondan beri biriken değişiklikleri sunucuya yollar (delta sync)
- Sunucudan sana ait yeni değişiklikleri (başka cihazdan girdiysen) çeker
- Çakışma varsa (iki cihazda aynı anda aynı kaydı değiştirme) “last write wins” stratejisiyle çözer
Tüm bu süreç senin farkına varmadan olur. Sen ekranda + butonuna basarsın, milisaniyede kaydedildi işaretini görürsün.
Güvenlik boyutu
“Cihazda veri” kulağa güzel gelse de güvensiz değil mi? Tersine:
Cihazda kilitli: Dayivo telefonundaki verileri kilitli bir kasada tutar. Normal bir kullanıcı veya başka bir uygulama bu kasayı açamaz — yalnızca Dayivo’ya özel anahtarla erişilir.
Yola çıkmadan önce de, geldikten sonra da korumalı: Bulutla veri senkronize olurken yolda kimse okuyamaz. Sunucuya vardığında da okunamaz halde tutulur.
Sunucu operatörü bile göremez: Gelecekte planladığımız ek koruma katmanıyla, verinin anahtarı yalnızca sende olacak. Sunucu saklar ama içeriği okuyamaz.
Senkronizasyon kontrollü
Dayivo’da senkronizasyonu komple kapatabilirsin. “Cihazda kalsın, bulutu kullanmak istemiyorum” diyen kullanıcıya:
- Ayarlar → Senkronizasyon → Kapalı
- Veri yalnızca cihazında, hiçbir şey sunucuya çıkmaz
- Telefonu kaybedersen veri gider (risk bilinir)
Aksi yönde, birden çok cihazda aynı hesabı kullanmak istersen — senkronizasyon açıkken bir cihazdan eklediğin gider diğerinde anında görünür.
Offline-first’in görünmez lüksleri
- Açılış hızı: Uygulama ilk saniyede açılır, network beklenmez
- Widget tıklaması: Anında işaretlenir, %100 tutarlı
- Batarya: Sürekli network istekleri yok, tasarruf
- Data kullanımı: Sadece senkronizasyon anında veri harcarsın — çok küçük
- Roaming dostu: Yurtdışında da problemsiz kullanırsın
Kimler için kritik?
- Gün içinde çok seyahat edenler (metro, uçak, tren)
- Kırsal alanlarda yaşayan veya seyahat edenler
- Data planı sınırlı olanlar (arka plan senkronizasyonunu Wi-Fi-only yapabilirsin)
- Gizlilik odaklı kullanıcılar (bulutu kapatıp tamamen yerel tutabilirsin)
Sonuç
Offline-first bir “özellik” değil, bir felsefe. Kullanıcıyı internet kalitesinin esiri yapmamak, cihazı kullanıcının ajansı olarak görmek. Dayivo bu felsefe üzerine kuruldu — çünkü gerçek hayat her zaman 5G değil. Bazen tünel, bazen uçak, bazen kahvedeki kötü Wi-Fi. Uygulama bu gerçekliği kabul etmeli.
Bir sonraki indireceğin uygulamada şu soruyu sor: “Uçak modunda açsam çalışır mı?” Cevap “hayır” ise, o uygulama seninle değil, sunucuyla çalışıyor.