Mobil tətbiqdə şəbəkə kəsilmələri və oflayn rejim (Offline-First) memarlığı
Mobil tətbiqlərin hər yerdə və hər an stabil işləməsi istifadəçi məmnuniyyətini müəyyən edən ən mühüm amillərdən biridir. İdman analitikası sahəsində fəaliyyət göstərən tətbiqlərdə istifadəçilərin metroda, təyyarədə və ya internet bağlantısının zəif olduğu digər qapalı məkanlarda belə köhnə analiz materiallarına baxmaq, fərdi qeydlər etmək və ya kupon layihələrini hazırlamağa davam etmək istəyi daxili "Offline-First" (Öncəliklə Oflayn) memarlığının qurulmasını tələb edir. Bu mürəkkəb asinxron məlumat sinxronizasiyası sistemlərini öyrənmək və internet kəsildikdə belə tam funksional işləyən daxili verilənlər bazası strukturlarını mənimsəmək üçün mütəxəssislər mütəmadi olaraq mostbet apk rəsmi resursundakı texniki mühəndislik bəlgələrindən faydalanırlar.
"Offline-First" yanaşmasının təməl prinsipləri
Klassik mobil tətbiqlər məlumatları birbaşa şəbəkədən (Network) yükləyir və internet olmadıqda ekranda xəta pəncərəsi göstərir. "Offline-First" modelində isə tətbiqin əsas ekran interfeysi (UI) heç vaxt birbaşa şəbəkə ilə əlaqə saxlamır. Bunun əvəzinə, UI yalnız cihazın daxili lokal verilənlər bazası (məsələn, Room və ya SQLite) ilə qarşılıqlı əlaqədə olur.
Məlumat mübadiləsi daxili olaraq aşağıdakı iyerarxiya ilə idarə olunur:
Daxili sorğu: İnterfeys ekranda göstəriləcək məlumatları lokal bazadan tələb edir və dərhal ekranda əks etdirir.
Arxa fon yenilənməsi: Şəbəkə daxili modulu (Repository) arxa fonda serverə sorğu göndərir.
Lokal bazanın yenilənməsi: Serverdən yeni məlumatlar daxil olduqda, onlar birbaşa daxili verilənlər bazasına yazılır.
UI-ın avtomatik reaktiv yenilənməsi: Lokal bazadakı məlumat dəyişdiyi üçün interfeys (Observer vasitəsilə) avtomatik olaraq ekrandakı vizual elementləri təzələyir.
Bu arxitektura sayəsində istifadəçi tətbiqin daxilində heç bir yüklənmə çarxı (loader) görmür və internet tamamilə kəsilsə belə, lokal bazada saxlanılan son aktual məlumatları rəvan şəkildə oxumağa davam edir.
Məlumat sinxronizasiyası və münaqişələrin həlli (Conflict Resolution)
İnternet bağlantısı bərpa olunduqda, istifadəçinin oflayn rejimdə etdiyi bütün yerli dəyişikliklər (məsələn, yeni qeydlər, seçilmiş sevimli komandalar) serverlə sinxronizasiya edilməlidir. Bu zaman fərqli cihazlardan eyni vaxtda edilən dəyişikliklər nəticəsində məlumat münaqişələri (conflicts) yarana bilər.
Bu münaqişələri həll etmək üçün tətbiqdə bir neçə fərqli daxili alqoritm tətbiq olunur:
Last-Write-Wins (LWW / Son yazılan qazanır): Ən sadə və geniş yayılan metoddur. Hər bir məlumat paketi ilə birlikdə vaxt möhürü (timestamp) göndərilir. Server daxilində ən son saniyədə göndərilmiş məlumatı əsas qəbul edir və köhnələri silir.
Merge (Birləşdirmə): Əgər oflayn rejimdə fərqli sahələr dəyişdirilibsə, sistem hər iki dəyişikliyi birləşdirir.
Version Vector (Versiya Vektorları): Hər bir məlumat obyektinin daxili versiya nömrəsi olur. Serverə göndərilən obyektin versiyası serverdəkindən böyükdürsə, məlumat yenilənir, əks halda tətbiqə serverdəki son versiyanı yükləmək əmri verilir.