使い方
- インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
- 必要なツール、認証情報、対応環境を原文で確認します。
- 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/dhruvanbhalara/skills --skill flutter-isar開始前の確認
- 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
- スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。
Isar Database
- Use Isar as the primary local database for structured data persistence
- Define collections using
@collectionannotation withIdfield - Place collection definitions in the
data/local/directory of the relevant feature - Run
dart run build_runner build --delete-conflicting-outputsafter modifying collections
Schema Design
- Keep collections focused: one collection per domain entity
- Use
@Indexannotations for fields queried frequently - Use
@enumeratedfor enum fields - Use
LinksandBacklinksfor 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,watchcalls - 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()orwatch()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_storagefor sensitive key-value data (tokens, encryption keys) - Use
SharedPreferencesONLY for non-sensitive user preferences (theme, locale, onboarding flags) - NEVER store passwords, tokens, or secrets in
SharedPreferencesor plain Isar





