Çevrimdışı çalışan mobil uygulama, internet bağlantısı olmadığında da temel işlerin yapılabildiği, bağlantı geri geldiğinde verilerin kendiliğinden merkeze gönderildiği uygulamadır. Saha ekipleri, depo personeli, kırsalda çalışan satış temsilcileri ya da tarım ve enerji sahalarında çalışan ekipler için bu bir lüks değil, uygulamanın kullanılıp kullanılmayacağını belirleyen özelliktir. Bu yazıda çevrimdışı çalışmanın ne anlama geldiğini ve en zor kısmı olan senkronizasyonu sade bir dille anlatıyoruz.
Offline-first ne demek?
Çoğu uygulama "önce internet" mantığıyla çalışır: her ekranda sunucuya sorar, cevap gelmezse bekler ya da uyarı verir. Offline-first (önce çevrimdışı) yaklaşımında ise uygulama önce cihazdaki kendi verisiyle çalışır; sunucuyla konuşmak arka planda, fırsat buldukça yapılan bir iştir.
Kullanıcı açısından fark şudur: uygulama her zaman hızlı açılır, ekranlar anında gelir, yapılan iş cihazda kaydedilir. Ekranın bir köşesinde "3 kayıt gönderilmeyi bekliyor" gibi küçük bir bilgi görünür; bağlantı gelince bu sayı sıfırlanır.
Bu yaklaşım yalnızca internetsiz yerlerde değil, zayıf ve kesik kesik bağlantının olduğu her yerde işe yarar. Asansörde, tünelde ya da kalabalık bir fuar alanında da uygulama akıcı çalışmaya devam eder.
Cihazda hangi veri tutulmalı?
Her şeyi telefona indirmek ne mümkün ne de doğrudur. Doğru soru, kullanıcının internetsiz kaldığında hangi işi yapabilmesi gerektiğidir.
| Veri türü | Cihazda tutulmalı mı? | Not |
|---|---|---|
| Kullanıcının o günkü iş emirleri | Evet | Güne başlarken indirilir |
| Ürün / parça listesi | Evet, özet hâliyle | Kod, ad, birim; büyük görseller hariç |
| Müşteri kartları | Yalnızca ilgili olanlar | Tüm müşteri listesi gereksiz ve risklidir |
| Fiyat bilgisi | Duruma göre | Güncelliği kritikse "son güncelleme" zamanı gösterilmeli |
| Fotoğraf, imza, form | Evet, gönderilene kadar | Gönderildikten sonra cihazdan temizlenmeli |
Cihazda tutulan veri kişisel veri içeriyorsa şifreli saklanması, telefon kaybolduğunda uzaktan erişimin kapatılabilmesi ve gereğinden uzun tutulmaması gerekir.
Senkronizasyon, işin en zor kısmı
Senkronizasyon, cihazdaki veriyle sunucudaki verinin birbirine eşitlenmesidir. İki yönlüdür: cihazda yapılan değişiklikler sunucuya gider, sunucudaki yenilikler cihaza gelir.
Kolay görünür, ama birkaç soruya baştan cevap vermek gerekir:
- Gönderim sırası. Önce iş emri kapanışı mı gitmeli, yoksa ona bağlı fotoğraflar mı? Bağımlı kayıtların doğru sırayla gönderilmesi gerekir.
- Yarıda kalan gönderim. Bağlantı gönderim ortasında koparsa kayıt iki kez oluşmamalı. Her kayda cihazda benzersiz bir kimlik verilmesi bu sorunu çözer.
- Büyük dosyalar. Fotoğraflar mobil veriyle mi gönderilecek, yoksa Wi-Fi beklenecek mi? Kullanıcıya bu tercihi sunmak faydalıdır.
Çakışma, iki kişi aynı kaydı değiştirdiğinde
Çakışma, aynı kaydın hem cihazda (çevrimdışıyken) hem başka bir yerde değiştirilmesidir. Örneğin teknisyen internetsizken iş emrine not eklerken, ofis aynı iş emrinin adresini güncellemiş olabilir. Bağlantı gelince hangisi geçerli olacak?
Tek bir doğru cevap yoktur; veri türüne göre kural koymak gerekir:
- Son yazan kazanır. En basit yöntemdir; düşük riskli alanlarda (ör. bir not alanı) yeterlidir.
- Alan bazında birleştirme. Teknisyen notu, ofis adresi değiştirdiyse ikisi de korunur; çünkü farklı alanlara dokunmuşlardır.
- Sahibi belli alanlar. Bazı alanları yalnızca ofis, bazılarını yalnızca saha değiştirebilir. Çakışma baştan engellenir.
- İnsana sor. Gerçekten kritik alanlarda (ör. tutar, miktar) sistem çakışmayı işaretler ve bir yetkilinin karar vermesini bekler.
Stok gibi hassas verilerde ek bir önlem gerekir. Çevrimdışıyken yazılan sipariş, bağlantı gelene kadar stok değişmiş olabileceği için "ön sipariş" olarak kaydedilip merkezde onaylanmalıdır. Bu tür kuralların hangi sistemin hangi veriden sorumlu olduğuyla ilgili genel çerçevesini entegrasyon çalışmasında belirliyoruz.
Kullanıcıya dürüst olun
Çevrimdışı çalışan bir uygulamada kullanıcı, verisinin gidip gitmediğini merak eder. Bu yüzden:
- Gönderilmeyi bekleyen kayıt sayısı her zaman görünür olsun.
- Uzun süre gönderilemeyen kayıt için açık bir uyarı çıksın.
- Kullanıcı uygulamadan çıkış yapmadan ya da uygulamayı silmeden önce bekleyen veri varsa uyarılsın.
- Sunucunun kabul etmediği kayıt için "neden" sade bir dille söylensin.
Kontrol listesi
- İnternetsiz kalınan tipik yerler ve süreler belirlendi mi?
- Cihazda tutulacak veri listesi çıkarıldı mı?
- Kişisel veri cihazda şifreli mi saklanıyor?
- Her kayıt benzersiz kimlikle mi oluşturuluyor?
- Çakışma kuralları veri türüne göre yazıldı mı?
- Bekleyen kayıtlar kullanıcıya görünüyor mu?
- Uçak modunda gerçek bir saha günü test edildi mi?
Globya'da nasıl yapıyoruz
Çevrimdışı ihtiyacı projenin başında konuşuyoruz; sonradan eklemek, baştan planlamaktan çok daha zordur. Hangi işin internetsiz yapılacağını, hangi verinin cihazda kalacağını ve çakışma kurallarını sizinle birlikte yazıyor, uygulamayı uçak modunda gerçek saha senaryolarıyla test ediyoruz. Bu yaklaşımı özellikle saha ekibi uygulamalarında ve inşaat ve yapı malzemeleri gibi sahası geniş sektörlerde uyguluyoruz. Genel çerçeve mobil uygulama sayfamızda.
Sık sorulan sorular
Tarayıcıda çalışan bir uygulama (PWA) da çevrimdışı çalışabilir mi?
Evet, belli ölçüde. Ekranlar ve sınırlı miktarda veri cihazda tutulabilir. Ancak çok miktarda veri, uzun süreli internetsizlik ve arka planda gönderim gerektiğinde mağaza uygulaması daha güvenilir sonuç verir.
Telefon kaybolursa cihazdaki veriye ne olur?
Veri şifreli saklanır ve kullanıcının oturumu merkezden kapatılabilir. Gönderilmemiş kayıtlar kaybolabileceği için uygulamanın bağlantı bulduğu her fırsatta göndermesi önemlidir.
Mevcut uygulamamıza çevrimdışı çalışma eklenebilir mi?
Mümkündür, ama uygulamanın veri yapısına göre kapsamlı bir değişiklik gerekebilir. Önce mevcut yapıyı inceleyip ne kadarının yeniden kullanılabileceğini söylüyoruz.
Globya asistanı 7/24 çevrimiçi; sorunuzu hemen yanıtlar, gerekirse ekibe iletir.