Drift vs Isar Karşılaştırması

SQLite'ın gücü, Dart'ın tip güvenliği — SQL bilenler için doğal seçim

VS
Isar

NoSQL hız ve basitlik — ama önce doğru paketi seçmelisin

9 dk okumaVeritabanı

Hızlı Karar

Net cevap: veri modelin ilişkiselse ve ekibinde SQL bilgisi varsa Drift daha güvenli bahis — 2.35.0 sürümü 2026-09-09, son commit 2026-09-24, aylık 1,3 milyonu aşan indirme. Isar tarafında tek kritik şart pubspec.yaml'a `isar_community` yazmandır; orijinal `isar` paketi 2023'ten beri donmuş. Fork canlı ve doküman-benzeri veride (önbellek, esnek şemalı notlar) hâlâ makul bir seçim.

DriftIsar
Tam sonucu oku

Puan Karşılaştırması

Grafik yükleniyor...

Detaylı Puanlama

Detaylı Puanlama: Drift ve Isar — kategori bazında 10 üzerinden puanlar
KategoriDriftIsar
Performans
8/10
8/10
Öğrenme Kolaylığı
6/10
8/10
Ekosistem
9/10
5/10
Topluluk
8/10
5/10
İş Pazarı
6/10
5/10
Gelecek
9/10
6/10

Artıları & Eksileri

Drift

Artıları

  • Hem elle SQL hem Dart fluent API ile sorgu yazabilirsin — ikisi de derleme-zamanında doğrulanır
  • İlişkisel modelleme (join, foreign key, view) NoSQL'e göre çok daha güçlü
  • Reaktif .watch() akışlarıyla sorgu sonuçlarını canlı dinleyebilirsin
  • sqflite, native sqlite3 ve hatta Postgres (drift_postgres) dahil birden çok backend'i destekler
  • Aktif geliştirme: son sürüm 2.35.0 (9 Eyl 2026), GitHub'da son commit 24 Eyl 2026
  • pub.dev'de flutter-favorite etiketi ve 160/160 pub point — ekosistem güveni yüksek
  • Web/WASM desteği aktif geliştiriliyor, cross-platform hedefler için avantajlı
  • MIT lisanslı, tamamen ücretsiz, GitHub Sponsors ile sürdürülebilir finansman modeli

Eksileri

  • drift_dev + build_runner zorunlu — kod üretimi her şema değişikliğinde yeniden çalıştırılmalı
  • SQL bilmeyen ekipler için öğrenme eğrisi daha dik
  • Boilerplate: tablo tanımı, DAO, migration stratejisi elle yazılır
  • Migration'lar Isar'ın örtük şema evrimine göre daha fazla elle kod ister
  • İzolat (isolate) kullanımı varsayılan değil — `NativeDatabase.createInBackground` ile bilinçli olarak açman gerekir

En Uygun

İlişkisel veri modeli olan orta-büyük Flutter uygulamalarıSQL bilgisine sahip ekipler ve backend'den mobile geçen geliştiricilerKarmaşık sorgu/join gerektiren offline-first mimarilerWeb (WASM) hedefleyen cross-platform projelerUzun vadeli bakım öngörülen, büyük codebase'ler

Isar

Artıları

  • SQL bilgisi gerektirmez — anotasyonlu Dart sınıfını doğrudan kaydedersin
  • Gömülü tam-metin arama (full-text search) kutudan çıkar
  • Çoklu-index (composite/multi-entry) ve ACID işlemleri yerleşik
  • Varsayılan çoklu-izole (multi-isolate) paralel sorgu desteği — Drift'te bu tek satırlık bir tercih
  • Öğrenme eğrisi Drift'e göre daha düz: boilerplate azdır
  • Topluluk forku isar_community ile geliştirme sürüyor (son commit 8 Eyl 2026)
  • Apache-2.0 lisanslı, tamamen ücretsiz

Eksileri

  • ⚠️ Orijinal `isar` paketi fiilen terkedilmiş: son sürüm 2023-04-25, GitHub'da son kod push'u 2025-06-14 — yeni projede KULLANILMAMALI
  • Doğru paket `isar_community` (fork) — ama pub.dev indirme hacmi Drift'in ~13'te biri
  • İlişkisel sorgulama (join, window fonksiyonu) Drift kadar güçlü değil
  • iOS privacy manifest yalnız fork'ta var: `isar_community_flutter_libs` `PrivacyInfo.xcprivacy` gönderiyor, eski `isar` paketi (3.1.0+1, 2023-04-25) manifest öncesi bir sürüm
  • `isar_community_generator` (eski `isar` paketinde `isar_generator`) + build_runner kod üretimi yine de gerekir, tamamen boilerplate'siz değil
  • Resmi benchmark sayfası artık yayında değil (isar.dev/benchmarks.html 404) — güncel, doğrulanabilir bir performans referansı yok

En Uygun

Doküman-benzeri, ilişkisel olmayan veri modelleriHızlı prototipleme ve MVP'ler (az boilerplate)Tam-metin arama ihtiyacı olan offline-first uygulamalarSQL bilmeyen küçük ekipler

Kod Karşılaştırması

Drift
// Drift - Tablo tanımı + reaktif sorgu (drift.simonbinder.eu/setup/)
import 'package:drift/drift.dart';
import 'package:drift/native.dart';
import 'dart:io';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as p;

part 'database.g.dart';

class Todos extends Table {
  IntColumn get id => integer().autoIncrement()();
  TextColumn get title => text().withLength(min: 1, max: 200)();
  BoolColumn get isDone => boolean().withDefault(const Constant(false))();
}

@DriftDatabase(tables: [Todos])
class AppDatabase extends _$AppDatabase {
  AppDatabase() : super(_openConnection());

  @override
  int get schemaVersion => 1;

  // Reaktif akış: tabloda değişiklik oldukça otomatik yayınlanır
  Stream<List<Todo>> watchPendingTodos() {
    return (select(todos)..where((t) => t.isDone.equals(false))).watch();
  }

  Future<int> addTodo(String title) {
    return into(todos).insert(TodosCompanion.insert(title: title));
  }
}

LazyDatabase _openConnection() {
  return LazyDatabase(() async {
    final dbFolder = await getApplicationDocumentsDirectory();
    final file = File(p.join(dbFolder.path, 'db.sqlite'));
    return NativeDatabase.createInBackground(file);
  });
}
Isar
// isar_community - Koleksiyon tanımı + sorgu (pub.dev/packages/isar_community readme deseni)
import 'package:isar_community/isar.dart';
import 'package:path_provider/path_provider.dart';

part 'todo.g.dart';

@collection
class Todo {
  Id id = Isar.autoIncrement;

  @Index()
  late String title;

  bool isDone = false;
}

Future<Isar> openDb() async {
  final dir = await getApplicationDocumentsDirectory();
  return Isar.open(
    [TodoSchema],
    directory: dir.path,
  );
}

Future<void> addTodo(Isar isar, String title) async {
  final todo = Todo()..title = title;
  await isar.writeTxn(() async {
    await isar.todos.put(todo);
  });
}

// Reaktif sorgu: koleksiyon değiştikçe otomatik yayınlanır
Stream<List<Todo>> watchPendingTodos(Isar isar) {
  return isar.todos.filter().isDoneEqualTo(false).watch(fireImmediately: true);
}

Sonuç

Net cevap: veri modelin ilişkiselse ve ekibinde SQL bilgisi varsa Drift daha güvenli bahis — 2.35.0 sürümü 2026-09-09, son commit 2026-09-24, aylık 1,3 milyonu aşan indirme. Isar tarafında tek kritik şart pubspec.yaml'a `isar_community` yazmandır; orijinal `isar` paketi 2023'ten beri donmuş. Fork canlı ve doküman-benzeri veride (önbellek, esnek şemalı notlar) hâlâ makul bir seçim.

Ücretsiz Danışmanlık Al
SSS

Sıkça Sorulan Sorular

Yeni bir projede kesinlikle isar_community kullan. Orijinal isar paketi pub.dev'de 2023-04-25'ten beri, GitHub'da 2025-06-14'ten beri güncellenmiyor — fiilen terkedilmiş. isar_community, topluluğun devraldığı aktif fork ve bugün 'Isar' derken kastedilmesi gereken paket odur.

Giriş

Flutter'da offline-first bir uygulama kuruyorsan, en erken ve geri alması en pahalı kararlardan biri yerel veritabanı seçimidir. İki isim öne çıkıyor: SQLite üzerine kurulu, SQL bilenler için doğal gelen ilişkisel katman Drift; ve anotasyonlu Dart sınıflarını doğrudan saklayan NoSQL motoru Isar. İkisi de Dart'ta yazılmış, ikisi de build_runner ile kod üretiyor, ikisi de reaktif sorgu akışları sunuyor — ama mimari felsefeleri ve bakım durumları kökten farklı. Bilmen gereken ilk şey şu: "Isar" ismi artık iki ayrı paketi kapsıyor. Orijinal isar paketi pub.dev'de 2023'ten, GitHub'da 2025 ortasından beri hareketsiz; topluluğun sürdürdüğü isar_community forku ise aktif ve gerçek "Isar" bugün budur. Drift tarafında tablo net: 2026-09-09 tarihli 2.35.0 sürümü, 2026-09-24'te commit alan depo ve aylık 1,3 milyonu aşan indirme. Aşağıda mimari farklardan bakım sağlığına, kod örneklerinden göç adımlarına kadar ikisini karşılaştırıp hangi senaryoda hangisini seçmen gerektiğini göreceksin.

Karşılaştırma Matrisi

Karşılaştırma Matrisi: Drift / Isar
ÖzellikDriftIsar
İlk yayın yılı2019 (Moor'dan devraldı)2021 (isar_community fork: 2024)
Veri modeliİlişkisel (SQL)Doküman (NoSQL)
Güncel sürüm / tarih2.35.0 (2026-09-09) (Öne çıkan)isar_community 3.3.2 (2026-03-23)
Son GitHub commit2026-09-24 (Öne çıkan)2026-09-08 (isar_community)
Aylık pub.dev indirme1.339.010 (Öne çıkan)102.411 (isar_community)
GitHub yıldızı3.2804.023 (orijinal isar, güncel değil)
pub.dev pub points160/160, flutter-favorite (Öne çıkan)140/160 (isar_community)
LisansMITApache-2.0
SQL desteğiTam (elle SQL + fluent API) (Öne çıkan)Yok (NoSQL sorgu builder)
Tam-metin aramaElle FTS5 kurulumu gerekirYerleşik (Öne çıkan)
Varsayılan multi-isolateTek satırlık opt-in (createInBackground)Varsayılan destekli (Öne çıkan)
Web/WASM desteğiResmi wasm-ready etiketi (Öne çıkan)Yok (pub.dev platform etiketlerinde web listelenmiyor)
Backend çeşitliliğisqflite, native sqlite3, Postgres (Öne çıkan)Yalnız isar motoru
Kod üretimi gereksinimidrift_dev + build_runnerisar_community_generator + build_runner
Öğrenme eğrisiSQL bilgisi gerekir, daha dikDaha düz, az boilerplate (Öne çıkan)

Derinlemesine İnceleme

Drift

Genel Bakış

Drift, SQLite üzerine kurulu, tip-güvenli bir ilişkisel veritabanı katmanıdır. Yaratıcısı Simon Binder, projeyi 2019'da "Moor" adıyla başlattı; moor paketi bugün pub.dev'de "discontinued, replacedBy: drift" olarak işaretli. Felsefesi nettir: SQL'den kaçmak yerine SQL'i korumak, üstüne derleme-zamanı tip güvenliği ve Dart'ın fluent API'sini eklemek. Elle .sql yazıp drift_dev ile Dart kodu üretebilir ya da Dart tablo tanımlarıyla (class Todos extends Table) çalışabilirsin; iki yol da aynı derleme-zamanı doğrulamasından geçer. .watch() ile herhangi bir sorgu reaktif bir Stream'e dönüşür ve Flutter'ın yeniden-render mekanizmasıyla örtüşür. En büyük avantajı tek bir API yüzeyinden birden fazla backend'e bağlanabilmesidir: sqflite üzerinden mobil, native sqlite3, drift_postgres ile sunucu tarafı Postgres. Bedeli ise SQL bilmeyen ekipler için daha dik bir öğrenme eğrisi.

Ekosistem

Paket yöneticisi
pub.dev
Geliştirme ortamı
Android Studio + Dart pluginVS Code + Dart/Flutter extension
Popüler kütüphaneler
drift_dev (code generator)drift_postgressqlite3_flutter_libs
GitHub yıldızı
3,280

Isar

Genel Bakış

"Isar" bugün iki ayrı pakete işaret eden bölünmüş bir markadır. Orijinal isar paketini GitHub'da simc (Simon Choi) 2020-06-10'da açtı, ilk sürüm 2021-01-10'da yayınlandı; proje, anotasyonlu Dart sınıflarını doğrudan saklayan hızlı bir NoSQL veritabanı olarak popülerlik kazandı. Ne var ki o paket pub.dev'de son olarak 2023-04-25'te (3.1.0+1) güncellendi, GitHub'daki son kod push'u 2025-06-14'te kaldı. Topluluk 2024-11-23'te isar-community organizasyonunu kurarak projeyi devraldı. isar_community bugün gerçek anlamda canlı: son sürüm 3.3.2 (2026-03-23), son commit 2026-09-08, aylık 102 binin üzerinde indirme. Fork, orijinal API yüzeyini korur: SQL bilgisi gerektirmez, kod üretimi isar_community_generator ile yapılır, çoklu-index ve ACID işlemler yerleşiktir. "Isar" derken bugün kastetmen gereken paket budur; orijinal isar yeni bir projede başlangıç noktası olmamalıdır.

Ekosistem

Paket yöneticisi
pub.dev (isar_community — orijinal isar paketi terkedilmiş)
Geliştirme ortamı
Android Studio + Dart pluginVS Code + Dart/Flutter extension
Popüler kütüphaneler
isar_community_generator (code generator)isar_community_flutter_libs
GitHub yıldızı
193

Teknik Analiz

Mimari Felsefe: İlişkisel SQL vs Doküman-tabanlı NoSQL

Drift, SQLite'ı doğrudan kullanan ilişkisel bir katmandır — verini tablolar, satırlar ve foreign key'lerle modellersin, sorguları hem SQL hem Dart fluent API ile yazabilirsin, ikisi de derleme-zamanında doğrulanır. Bu, join gerektiren karmaşık veri ilişkilerinde (örn. bir kullanıcının siparişleri ve o siparişlerin kalemleri) ciddi bir avantaj sağlar: SQL'in 40+ yıllık ilişkisel cebiri elinin altındadır. Isar/isar_community ise doküman-tabanlı NoSQL modelini benimser: @collection anotasyonlu bir Dart sınıfını doğrudan saklarsın, şema örtük olarak sınıfın kendisinden çıkarılır. Bu model, iç içe (nested) veya esnek şemalı veriler için daha az sürtünmeyle çalışır ama ilişkisel sorgulama (çoklu tablo join, window fonksiyonları) Drift kadar doğal değildir — Isar'da ilişkiler IsarLink/IsarLinks ile modellenir, bu da SQL foreign key kadar esnek değildir. Seçim burada gerçekten veri modeline bağlı: verin doğası gereği ilişkiselse (siparişler, kullanıcılar, kategoriler) Drift; bağımsız doküman koleksiyonlarıysa (notlar, önbellek kayıtları, offline cache) Isar daha az kod ister.

Bakım Durumu: "Isar" İki Ayrı Paket, Tek İsim

Bu karşılaştırmanın en kritik teknik bulgusu budur ve kurulum yapmadan önce mutlaka bilmen gerekir. pub.dev API'sine göre orijinal isar paketinin son sürümü 3.1.0+1, yayın tarihi 2023-04-25 — o tarihten beri hiç güncellenmemiş. GitHub'daki isar/isar deposunun son push tarihi 2025-06-14; 2026-09-24 okuması itibarıyla o tarihten sonra kod hareketi yok. Buna karşın Drift'in son sürümü 2.35.0, yayın tarihi 2026-09-09 ve GitHub'daki son commit 2026-09-24 tarihli — aktiflik farkı çarpıcı. Isar tarafında iyi haber şu: proje ölmedi, topluluk 2024-11-23'te isar-community GitHub organizasyonunu kurarak devraldı. isar_community paketinin son sürümü 3.3.2 (2026-03-23), GitHub'daki son commit 2026-09-08 tarihli — gerçek anlamda aktif. pub.dev indirme verileri de bu tabloyu doğruluyor: orijinal isar son 30 günde yalnızca 3.367 indirme almış, isar_community ise 102.411 — yaklaşık 30 kat fark. Pratik sonuç nettir: yeni bir Flutter projesine isar paketini pubspec.yaml'a eklemek hatalı bir başlangıç noktasıdır; doğru bağımlılık isar_community'dir.

Sorgulama, Tip Güvenliği ve Kod Üretimi

İkisi de kod üretimi (build_runner) kullanır ama farklı amaçlarla. Drift'te drift_dev, tablo tanımlarından (ya da elle yazılmış .sql dosyalarından) tip-güvenli Dart sınıfları ve sorgu metodları üretir; hem SQL hem Dart tarafı derleme-zamanında birbiriyle senkron kalır — yanlış kolon adı yazarsan derleme hatası alırsın. Isar/isar_community'de isar_community_generator (eski isar paketinde isar_generator), @collection anotasyonlu sınıflardan şema ve sorgu builder'ları (.filter(), .where()) üretir; sorgu API'si daha "fluent" ve az satırlıdır ama SQL'in ifade gücüne (subquery, aggregate, window fonksiyonu) sahip değildir. Reaktivite tarafında ikisi de benzer bir deneyim sunar: Drift'te .watch(), Isar'da .watch(fireImmediately: true) ile sorgu sonucu bir Stream'e dönüşür ve Flutter widget'ları bu akışı dinleyerek otomatik güncellenir. Pratikte SQL'e aşina bir ekip Drift'te daha az sürprizle ilerlerken, SQL'den kaçınmak isteyen ekipler Isar'ın API yüzeyini daha "doğal" bulur.

Paralellik: Çoklu-İzole Desteği

Isar/isar_community'nin mimari avantajlarından biri, varsayılan olarak çoklu-izole (multi-isolate) paralel sorgu desteği sunmasıdır — birden fazla Dart isolate'i aynı veritabanına eş zamanlı erişebilir, bu da ağır sorgu/yazma yükünü UI thread'inden uzak tutmayı kolaylaştırır. Drift'te izolat kullanımı da mümkündür: NativeDatabase.createInBackground bağlantıyı arka plan isolate'inde açar ve Drift'in pub.dev'deki README'si bu konuda iddialıdır — "Drift is the only major persistence library with builtin threading support, allowing you to run database code across isolates with zero additional effort." Resmi platform dokümantasyonu ise (drift.simonbinder.eu/platforms/) NativeDatabase satırında "No further setup is required. Usage in a isolate is recommended." der. Fark aslında "varsayılan mı, yoksa tek satırlık bir tercih mi" ekseninde: Isar'da çoklu-izole erişim modelin doğal hâliyken, Drift'te bağlantıyı açarken createInBackground yazmayı hatırlaman gerekir. O adımı atlarsan sorguların ana isolate'te koşar ve ağır batch işlemlerinde (toplu import, senkronizasyon) UI donabilir.

Platform Desteği ve Web/WASM

Drift'in platform matrisi geniştir: Android, iOS, Windows, Linux, macOS ve Web — pub.dev'de "wasm-ready" etiketiyle listelenir ve drift.simonbinder.eu/platforms/ sayfası her platform için ayrı bir executor (NativeDatabase, SqfliteQueryExecutor, web sürücüsü) tanımlar. Isar/isar_community tarafında tablo daha dardır ve burada iki ayrı kaynağı birbirine karıştırmamalısın. Birincisi paket etiketleri: isar_community'nin pub.dev platform etiketleri yalnızca Android, iOS, Windows, Linux ve macOS'u listeler — web bu listede yok. İkincisi resmi doküman: isar-community.dev/v3/ sayfasının özellik listesinde "📱 Multiplatform — iOS, Android, Mac, Windows and Linux" yazar, web'den hiç söz edilmez. platform:web etiketi bugün yalnızca terkedilmiş orijinal isar paketinde durmaya devam ediyor; yani o etikete bakarak web desteğini forka mal edemezsin. Pratik sonuç: web'i de hedefleyen bir cross-platform projede Drift sana hem etiket hem doküman düzeyinde net bir zemin sunar, isar_community ise böyle bir beyan vermez. Mobil-only bir uygulama için bu fark önemsizdir.

Lisans, Maliyet ve iOS Uyumluluk Riski

Maliyet tarafında fark yok: Drift MIT, Isar/isar_community Apache-2.0 lisanslı — ikisi de tamamen ücretsiz, açık kaynak, tek-tier modelde ve ayrı bir "pricing" sayfaları bulunmuyor; ikisi de GitHub Sponsors üzerinden gönüllü bağışla finanse ediliyor (Drift için sponsors/simolus3, Isar tarafında sponsors/leisim ve sponsors/vicenterusso). iOS/App Store tarafında ise bilmen gereken bir tarihçe var. Apple'ın privacy manifest şartı için isar/isar#1601 numaralı issue ("Add privacy manifest for Apple") 2024-04-24'te açıldı ve 2025-06-14'te kapatıldı. Bugün topluluk fork'unun isar_community_flutter_libs paketi iOS kaynaklarında bir PrivacyInfo.xcprivacy gönderiyor; bu dosya yalnızca NSPrivacyAccessedAPICategoryDiskSpace kategorisini E174.1 gerekçesiyle beyan ediyor, FileTimestamp veya SystemBootTime için bir beyan içermiyor. Terkedilmiş isar paketinde ise böyle bir dosya hiç yok: 3.1.0+1 sürümü 2023-04-25 tarihli, yani Apple'ın bu şartı yürürlüğe koymasından önceki bir noktada donmuş. iOS'a yayın yapacak bir ekip için pratik sonuç şu: Isar kullanacaksan zaten fork'u kullanmalısın, privacy manifest de bunun somut gerekçelerinden biri.

Hangi Senaryoda Hangisi

İlişkisel veri modeli olan orta-büyük Flutter uygulaması (sipariş, kullanıcı, kategori gibi bağlı tablolar)

Öneri: Drift

SQL'in ilişkisel cebiri (join, foreign key) join gerektiren senaryolarda Isar'ın doküman modelinden daha az sürtünmeyle çalışır.

Hızlı MVP / prototip, SQL bilmeyen küçük ekip

Öneri: isar_community

Anotasyonlu sınıfı doğrudan kaydetmek, boilerplate'i azaltır; öğrenme eğrisi Drift'e göre daha düz.

Web/WASM'ı da hedefleyen cross-platform proje

Öneri: Drift

Resmi wasm-ready etiketi ve drift.simonbinder.eu/platforms/ dokümantasyonu net; isar_community'nin pub.dev platform etiketlerinde de resmi dokümanında da web hiç listelenmiyor.

Tam-metin arama gerektiren offline-first uygulama (notlar, mesajlaşma arşivi)

Öneri: isar_community

Gömülü tam-metin arama kutudan çıkar; Drift'te bu SQLite FTS5 kurulumu gerektirir.

Ağır batch/senkronizasyon işlemleri (toplu import, offline sync)

Öneri: isar_community

Drift'te bağlantıyı NativeDatabase.createInBackground ile açman gerekir; Isar'da çoklu-izole erişim varsayılandır.

Mevcut projede hâlâ eski isar paketi kullanılıyor

Öneri: isar_community'ye geç

Orijinal isar'ın son kod push'u 2025-06-14; güvenlik/uyumluluk yamaları gelmiyor. Migration önceliklendirilmeli.

Backend'den Flutter'a geçen, SQL'e hakim geliştirici ekibi

Öneri: Drift

Mevcut SQL bilgisi doğrudan aktarılır; drift_postgres ile aynı zihniyet sunucu tarafında da kullanılabilir.

Yaygın Tuzaklar

  • pubspec.yaml'a orijinal isar paketini eklemek (son sürüm 2023-04-25, GitHub'da son push 2025-06-14)

    Isar

    Çözüm

    Bunun yerine isar_community paketini kullan — API yüzeyi aynı, ama aktif bakımlı (son commit 2026-09-08).

  • GitHub yıldız sayısına bakarak paketin aktif olduğuna karar vermek

    Her ikisi

    Çözüm

    Yıldız kümülatif bir metriktir. Bunun yerine pub.dev'in latest.published ve GitHub'ın pushed_at alanına, son 30 günlük indirme trendine bak.

  • Eski isar paketiyle iOS'a çıkmak — o sürümde (3.1.0+1, 2023-04-25) privacy manifest dosyası hiç yok

    Isar

    Çözüm

    Fork'a geç: isar_community_flutter_libs iOS kaynaklarında PrivacyInfo.xcprivacy gönderiyor (DiskSpace / E174.1). Arşivi aldıktan sonra manifestin pakete girdiğini doğrula.

  • Drift'te şema değişikliklerinde MigrationStrategy yazmayı atlayıp uygulamayı crash ettirmek

    Drift

    Çözüm

    Her schemaVersion artışında onUpgrade içinde açık migration adımları tanımla; test ortamında eski→yeni geçişi doğrula.

  • Ağır sorgu/import işlemlerini Drift'te ana isolate'te çalıştırıp UI'ı dondurmak

    Drift

    Çözüm

    NativeDatabase.createInBackground ile veritabanı bağlantısını arka plan isolate'inde aç; büyük batch işlemleri oraya taşı.

Geçiş Kılavuzu

isar_community → Drift (İlişkisel modele geçiş)

Tahmini süre: Ölçülmüş bir süre yok; iş yükü koleksiyon sayısı ve IsarLink ilişki yoğunluğuyla büyür — adım 4 (veri taşıma) ve adım 7 (paralel doğrulama) en uzun kalemlerdir
  1. 11. Mevcut isar_community koleksiyonlarını (@collection sınıfları) envanterle — hangi alanlar ilişkisel bağ (IsarLink/IsarLinks) taşıyor tespit et
  2. 22. Her koleksiyonu bir Drift tablosuna (class X extends Table) çevir; IsarLink'leri foreign key kolonlarına dönüştür
  3. 33. drift_dev ile kod üretimini kur (build_runner build), tablo şemasını doğrula
  4. 44. Migration script'i yaz: isar.collection.where().findAll() ile eski veriyi oku, Drift'in into(table).insert() ile yeni şemaya yaz
  5. 55. Reaktif sorguları taşı: Isar'ın .watch() çağrılarını Drift'in .watch() Stream API'sine eşleştir
  6. 66. Tam-metin arama kullanıyorsan Drift'te SQLite FTS5 virtual table kur (isardaki yerleşik FTS'in karşılığı yok, elle kurulmalı)
  7. 77. Geçiş sırasında hem eski hem yeni şemayı bir feature flag ile paralel çalıştır, veri bütünlüğünü karşılaştırmalı test et
  8. 88. Doğrulama sonrası isar_community bağımlılığını ve eski veritabanı dosyasını temizle

Gelecek Öngörüsü

Drift

Drift'in geleceği güçlü sinyaller taşıyor: 2026-09-09'da 2.35.0 çıktı, GitHub'daki son commit 2026-09-24 tarihli, 207 açık issue aktif bir katkı topluluğuna işaret ediyor. drift_postgres ile sunucu tarafına genişleme ve web/WASM desteğinin olgunlaşması, projeyi yalnızca mobil değil tam-yığın Dart geliştirme için de konumlandırıyor. pub.dev'in flutter-favorite etiketi ve 160/160 pub point skoru, Flutter ekibi/topluluğu nezdinde referans katman statüsünü koruduğunu gösteriyor.

Isar

isar_community'nin yol haritası orijinal isar'a göre çok daha umut verici: 2024-11-23'te kurulan fork, 2026-09-08'de aktif commit atıyor ve aylık indirmesi 100 bini aştı. Ancak hâlâ v3.x hattında; duyurulmuş bir v4 stabil sürüm yok, bu yüzden planını büyük bir mimari sıçrama beklemeden kurmalısın. Orijinal isar paketinin geleceği ise belirsiz: son kod push'u 2025-06-14, resmi bir 'terk edildi' duyurusu da yok — proje fiilen askıda kalmış durumda ve yeni projeler için önerilmiyor.

Altın Bilgi

Bu karşılaştırmanın en değerli çıkarımı performans değil, marka bölünmesidir. "Isar" arayan çoğu geliştirici hâlâ orijinal isar paketini bulur — 2.448 like ve 4.023 yıldızla "popüler ve aktif" görünür — ama son sürümü 2023-04-25, son kod push'u 2025-06-14 tarihli. Yıldız ve like tek seferlik, kümülatif eylemlerdir; paket donsa bile düşmezler. Bakım sağlığının çok daha güvenilir göstergesi son 30 günlük indirmedir: orijinal isar 3.367 alırken fork isar_community 102.411 alıyor. Bir paketin bugün yaşayıp yaşamadığını anlamak istiyorsan yıldıza değil, pub.dev'in latest.published tarihine, GitHub'ın pushed_at alanına ve son 30 günlük indirme trendine bak.

İlgili Blog Yazıları

Tüm Yazıları Gör

İlgili Projeler

Tüm Projeleri Gör

İlgili İçerik