Flutter ile Offline-First Mimari: Isar Veritabanı ile Veri Yönetimi
13.10.2026 | 8
Neden Offline-First Mimari?
Modern mobil uygulamalarda kullanıcılar, internet bağlantısı kopsa bile uygulamanın çalışmaya devam etmesini bekler. Offline-First yaklaşımı, veriyi önce yerel veritabanına yazıp, ardından arka planda sunucuyla senkronize ederek kusursuz bir kullanıcı deneyimi sunar.
Isar: Performans ve Hızın Yeni Adresi
Flutter ekosisteminde Hive popüler olsa da, Isar sunduğu ACID uyumluluğu, ilişkisel sorgulama desteği ve yüksek performanslı indeksleme ile bir adım öne çıkıyor. Isar, tamamen asenkron yapısıyla UI thread'ini asla bloke etmez.

Isar Kurulumu ve Şema Tanımlama
Projenize eklemek için isar ve isar_flutter_libs paketlerini pubspec.yaml dosyanıza ekleyin. Veri modelinizi tanımlarken @collection anotasyonunu kullanmak yeterlidir:
@collection
class User {
Id id = Isar.autoIncrement;
@Index()
late String email;
late String name;
}Mimari İpucu: Veritabanı işlemlerini doğrudan UI katmanından çağırmayın. Bir Repository sınıfı oluşturarak veri erişimini soyutlayın. Bu, ileride veritabanı değişikliği yapmanız gerekirse kodunuzun geri kalanını korur.Senkronizasyon Stratejisi
Uygulamanızın çevrimdışı çalıştığını anlamak için connectivity_plus paketini kullanın. Uygulama tekrar çevrimiçi olduğunda, yerelde biriken 'pending' durumundaki kayıtları bir WorkManager veya BackgroundService ile sunucuya gönderin.
Performans İçin Dikkat Edilmesi Gerekenler
- İndeksleme: Sık sorguladığınız alanlar için mutlaka
@Index()kullanın. - Batch İşlemler: Çoklu veri ekleme veya güncelleme işlemlerinde
isar.writeTxnbloğunu kullanarak işlem süresini optimize edin. - Lazy Loading: Büyük veri setlerinde tüm nesneleri belleğe çekmek yerine, sadece ihtiyacınız olan alanları getirin.
Isar, Flutter'ın reaktif yapısıyla mükemmel uyum sağlar. watch() metodu ile yerel veritabanındaki değişiklikleri anlık olarak UI'a yansıtabilir, karmaşık stream yönetimiyle uğraşmadan güncel kalabilirsiniz.