Lokal saxlama və cache
Lokal saxlama üçün seçim datanın xarakterindən asılıdır:
- `shared_preferences` — kiçik açar-dəyər cütləri: tema seçimi, onboarding görülübmü, son seçilmiş filter. Sinxron oxunmur, quraşdırma zamanı bir dəfə yüklənir
- SQLite (`sqflite`) və ya digər baza — strukturlaşdırılmış, sorğu tələb edən data: sifariş tarixçəsi, offline cache
- Fayl sistemi — şəkillər, sənədlər, export faylları
- Təhlükəsiz saxlama — token və şifrələr `shared_preferences`-də saxlanmamalıdır; onun üçün platformanın keychain/keystore-una bağlanan ayrıca paket lazımdır
Cache strategiyası da datanın xarakterindən asılıdır:
- Cache-first — əvvəl lokaldan göstər, sonra arxada yenilə. Sürətli açılış verir; köhnə data qısa müddət görünə bilər
- Network-first — əvvəl şəbəkədən, alınmasa lokaldan. Təzəlik vacib olanda (bank balansı, sifariş statusu)
- Cache-only — offline rejim
Ən çox unudulan hissə cache-in etibarsız edilməsidir (invalidation): datanın nə vaxt köhnəldiyini müəyyən etmək. Vaxt əsaslı (TTL), hadisə əsaslı (istifadəçi dəyişiklik etdi) və ya versiya əsaslı yanaşmalar var.
Interview ipucu. Təhlükəsizlik sualı burada gizlənir: shared_beferences şifrələnmir — Android-də root olunmuş cihazda və iOS-də backup-dan oxumaq mümkündür. Token, şifrə və şəxsi məlumat üçün platformanın təhlükəsiz saxlama mexanizmi lazımdır. Bunu özün qeyd etsən, təhlükəsizlik düşüncəsini göstərmiş olursan — bu, sığorta və bank sahəsində xüsusilə dəyərlidir.
📚 Mənbələr və sənədlər
- Açar-dəyər saxlamarəsmidocs.flutter.dev
- SQLite ilə saxlamarəsmidocs.flutter.dev
- shared_preferences paketirəsmipub.dev
- sqflite paketipub.dev