flutter/flutter-working-with-databases

Gère la persistance locale des données avec SQLite ou d'autres solutions de base de données. À utiliser lorsqu'une application Flutter doit stocker, interroger ou synchroniser de grandes quantités de données structurées sur l'appareil.

Qu'est-ce que flutter-working-with-databases ?

Cette compétence permet aux applications Flutter de gérer efficacement la persistance locale des données structurées en utilisant SQLite ou d'autres solutions de base de données. Elle est essentielle pour les applications manipulant de grands volumes de données hors ligne, comme les carnets d'adresses, les journaux d'activité, ou les données de configuration complexes. La compétence s'appuie sur des packages Flighter populaires tels que `sqflite` pour les bases de données SQL locales, ou `hive` et `Isar` pour des solutions NoSQL plus légères. Elle fournit des abstractions pour la création, la lecture, la mise à jour et la suppression (CRUD) de données, ainsi que des techniques pour la synchronisation avec un serveur distant. La documentation technique détaille la configuration des packages, la définition des schémas de base de données, l'exécution de requêtes asynchrones pour éviter de bloquer l'interface utilisateur, et les stratégies de gestion de la concurrence et des migrations de schémas.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flutter/skills/tree/main/skills/flutter-working-with-databases

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait flutter-working-with-databases ?

Gère la persistance locale des données avec SQLite ou d'autres solutions de base de données. À utiliser lorsqu'une application Flutter doit stocker, interroger ou synchroniser de grandes quantités de données structurées sur l'appareil.

Description

Cette compétence permet aux développeurs Flutter de persister des données localement sur l'appareil. Elle prend en charge SQLite via le package sqflite, ainsi que des alternatives NoSQL comme hive ou Isar. Idéal pour les applications qui doivent fonctionner hors ligne et gérer des données complexes.

Fonctionnalités

  • Opérations CRUD : Créer, lire, mettre à jour et supprimer des enregistrements dans la base de données locale.
  • Requêtes asynchrones : Toutes les opérations de base de données sont exécutées de manière asynchrone pour ne pas bloquer le thread UI.
  • Gestion des schémas : Définition de tables, d'index et de contraintes ; migration des schémas entre les versions de l'application.
  • Synchronisation : Stratégies pour synchroniser les données locales avec un serveur distant, avec gestion des conflits.

Utilisation

Ajoutez le package de base de données dans votre fichier pubspec.yaml :

dependencies:
  sqflite: ^2.0.0
  path: ^1.8.0

Exemple de création d'une base de données et d'une table :

import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';

Future<Database> initDatabase() async {
  final dbPath = await getDatabasesPath();
  final path = join(dbPath, 'my_app.db');

  return openDatabase(path, version: 1, onCreate: (db, version) async {
    await db.execute('''
      CREATE TABLE notes (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        title TEXT NOT NULL,
        content TEXT,
        createdAt TEXT
      )
    ''');
  });
}

Considérations

  • Performance : Utilisez des transactions pour les insertions/mises à jour groupées.
  • Concurrence : Évitez d'accéder à la base de données depuis plusieurs isolates sans gestion appropriée.
  • Sécurité : Pour les données sensibles, envisagez le chiffrement avec le package sqflite_sqlcipher.

Intégration avec le Framework

Cette compétence fonctionne avec tous les outils et cadres qui interagissent avec les bases de données Flutter, y compris l'IDE, les générateurs de code comme build_runner, et les solutions de test.

Références

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

flutter/flutter-accessibility

Configure your Flutter app to support assistive technologies like Screen Readers

flutter/flutter-accessibility-audit

Triggers an accessibility scan through the widget_inspector and automatically adds Semantics widgets or missing labels to the source code.

flutter/flutter-adding-home-screen-widgets

Adds home screen widgets to a Flutter app for Android and iOS. Use when providing glanceable app information or quick actions on the device home screen.

flutter/flutter-add-integration-test

Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests. Use when adding integration testing to a project, exploring UI components via MCP, or automating user flows with the integration_test package.

flutter/flutter-add-widget-preview

Adds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consistent design and interactive testing.

flutter/flutter-add-widget-test

Implement a component-level test using `WidgetTester` to verify UI rendering and user interactions (tapping, scrolling, entering text). Use when validating that a specific widget displays correct data and responds to events as expected.

flutter/flutter-animating-apps

Implements animated effects, transitions, and motion in a Flutter app. Use when adding visual feedback, shared element transitions, or physics-based animations.

flutter/flutter-animation

Add animated effects to your Flutter app

flutter/flutter-apply-architecture-best-practices

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-app-size

Measure and reduce the size of the Flutter app bundle, APK, or IPA

flutter/flutter-architecting-apps

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-architecture

Use the Flutter team's recommended app architecture

flutter/flutter-building-forms

Builds Flutter forms with validation and user input handling. Use when creating login screens, data entry forms, or any multi-field user input.

flutter/flutter-building-layouts

Builds Flutter layouts using the constraint system and layout widgets. Use when creating or refining the UI structure of a Flutter application.

flutter/flutter-building-plugins

Builds Flutter plugins that provide native interop for other apps to use. Use when creating reusable packages that bridge Flutter with platform-specific functionality.

flutter/flutter-build-responsive-layout

Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. Use when you need the UI to look good on both mobile and tablet/desktop form factors.

flutter/flutter-caching

Cache data in a Flutter app

flutter/flutter-caching-data

Implements caching strategies for Flutter apps to improve performance and offline support. Use when retaining app data locally to reduce network requests or speed up startup.

flutter/flutter-concurrency

Execute long-running tasks in a background thread in Flutter

flutter/flutter-databases

Work with databases in a Flutter app

Skills associés