dhruvanbhalara/skills

flutter-isar

Use when configuring local persistence with Isar NoSQL database, defining schemas, or executing reactive queries in Flutter.

Vedi sorgente

Come usare

  1. Copia il comando e controlla il pacchetto prima di installarlo nel tuo ambiente agente.
  2. Controlla strumenti, credenziali e ambienti richiesti nel documento originale.
  3. Descrivi input e risultato desiderato; confronta l’output con le fonti.
npx skills add https://github.com/dhruvanbhalara/skills --skill flutter-isar

Prima di iniziare

  • L’installazione non include abbonamenti, quote API o accesso ai file.
  • Stelle e installazioni indicano attività, non un test indipendente di qualità o sicurezza.
Documento Skill originale

Contenuto dal repository con titoli, esempi, codice, tabelle, link e immagini preservati.

Isar Database

  • Use Isar as the primary local database for structured data persistence
  • Define collections using @collection annotation with Id field
  • Place collection definitions in the data/local/ directory of the relevant feature
  • Run dart run build_runner build --delete-conflicting-outputs after modifying collections

Schema Design

  • Keep collections focused: one collection per domain entity
  • Use @Index annotations for fields queried frequently
  • Use @enumerated for enum fields
  • Use Links and Backlinks for relationships between collections
  • NEVER store derived/computed values: compute them in the domain layer

Migrations

  • Isar handles additive schema changes automatically (new fields, new collections)
  • For breaking changes (renamed fields, removed fields), write migration logic in the repository
  • Version your database schema and check version on app startup

Repository Pattern for Local Data

  • Local DataSource wraps all Isar put, get, delete, watch calls
  • Repositories orchestrate between remote and local DataSources
  • Repositories decide cache-first vs network-first strategy per use case

Offline-First Patterns

  • Cache-First: Read from Isar first, fetch from network in background, update Isar on success
  • Network-First: Fetch from network, fall back to Isar on failure
  • Write-Behind: Write to Isar immediately, sync to server asynchronously (queue pending changes)
  • Always show cached data immediately while refreshing in background

Reactive Queries

  • Use Isar's watchLazy() or watch() to stream changes to the UI via BLoC
  • Wrap Isar watch streams in the repository and expose as Stream<List<DomainModel>>
  • Dispose stream subscriptions properly in BLoC close() method

Secure Storage

  • Use flutter_secure_storage for sensitive key-value data (tokens, encryption keys)
  • Use SharedPreferences ONLY for non-sensitive user preferences (theme, locale, onboarding flags)
  • NEVER store passwords, tokens, or secrets in SharedPreferences or plain Isar

Correlati per attività

dallo stesso repository

Altri Skills

Tutti gli Skills