Skip to main content

SQLite and Flutter Implementation

SQLite and Flutter Implementation

Understanding SQLite and Its Implementation in Flutter

What is SQLite?

SQLite is a lightweight, serverless, and self-contained SQL database engine. It is widely used for local data storage in applications because it is simple to set up and requires no external server. It is fast, reliable, and supports full SQL capabilities, making it a popular choice for mobile and desktop applications.

Why Use SQLite in Flutter?

Flutter, being a versatile framework for building cross-platform applications, often requires local storage solutions for tasks like caching data, storing user preferences, or maintaining offline functionality. SQLite is a perfect match for such needs due to its simplicity and efficiency.

How to Implement SQLite in Flutter

Step 1: Add Dependencies

To use SQLite in Flutter, add the following dependencies to your pubspec.yaml file:

dependencies:
  sqflite: ^2.3.0
  path: ^1.8.0

Run flutter pub get to fetch the packages.

Step 2: Initialize the Database

Set up the database and define the schema:

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

class DatabaseHelper {
  static final DatabaseHelper _instance = DatabaseHelper._internal();
  factory DatabaseHelper() => _instance;

  DatabaseHelper._internal();

  static Database? _database;

  Future get database async {
    if (_database != null) return _database!;
    _database = await _initDatabase();
    return _database!;
  }

  Future _initDatabase() async {
    final dbPath = await getDatabasesPath();
    return openDatabase(
      join(dbPath, 'example.db'),
      onCreate: (db, version) async {
        await db.execute('''
          CREATE TABLE tasks (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            title TEXT,
            description TEXT
          )
        ''');
      },
      version: 1,
    );
  }
}

Step 3: Perform CRUD Operations

Create

Future insertTask(Map task) async {
  final db = await DatabaseHelper().database;
  await db.insert('tasks', task, conflictAlgorithm: ConflictAlgorithm.replace);
}

Read

Future>> getTasks() async {
  final db = await DatabaseHelper().database;
  return await db.query('tasks');
}

Update

Future updateTask(int id, Map task) async {
  final db = await DatabaseHelper().database;
  await db.update('tasks', task, where: 'id = ?', whereArgs: [id]);
}

Delete

Future deleteTask(int id) async {
  final db = await DatabaseHelper().database;
  await db.delete('tasks', where: 'id = ?', whereArgs: [id]);
}

Step 4: Use SQLite in Your UI

Integrate SQLite operations into your Flutter widgets. For example, display a list of tasks fetched from the database in a ListView.

Conclusion

SQLite is a powerful and efficient solution for local data storage in Flutter applications. With the sqflite package, you can easily implement SQLite to handle your app's storage needs, whether it's for simple preferences or complex offline data management.

© 2024 Flutter Blog. All rights reserved.

Comments

Popular posts from this blog

API Integration in Flutter - A Step-by-Step Guide

API Integration in Flutter - A Step-by-Step Guide API Integration in Flutter - A Step-by-Step Guide Learn how to integrate APIs into your Flutter app with this easy-to-follow tutorial. Step 1: Add Dependencies Start by adding the necessary dependencies for HTTP requests and JSON handling in your pubspec.yaml file. dependencies: flutter: sdk: flutter http: ^0.13.3 Run flutter pub get to install the dependencies. Step 2: Create a Service Class for API Calls Next, create a Dart file (e.g., api_service.dart ) to handle your API logic. Below is an example of a simple GET request function: import 'dart:convert'; import 'package:http/http.dart' as http; class ApiService { final String baseUrl; ApiService({required this.baseUrl...

How, Purpose, and When to Use Google ML Kit in Flutter

How, Purpose, and When to Use Google ML Kit in Flutter How, Purpose, and When to Use Google ML Kit in Flutter Purpose of Google ML Kit in Flutter Google ML Kit simplifies adding AI features to mobile applications. Its primary purposes include: On-Device Machine Learning: Perform AI tasks without requiring an internet connection, ensuring low latency, privacy, and faster processing. Pre-trained Models: Use Google's robust, pre-trained models without needing ML expertise. Versatile AI Features: Enable functionalities like: Text recognition Barcode scanning Image labeling Face detection Pose detection Language identification Translation Entity extraction Smart replies When to Use Google ML Kit You should use Google ML Kit when: You need pre-built AI features withou...

Implementing in-app turn-by-turn navigation in a Flutter application using Google Maps and the Directions API involves several steps

  1. Integrate Google Maps into Your Flutter App a. Add the  google_maps_flutter  Package: Include the  google_maps_flutter  package in your  pubspec.yaml  file to embed Google Maps into your Flutter application. yaml dependencies: google_maps_flutter: latest_version b. Obtain and Configure Your API Key: Generate an API Key:  Create a project in the  Google Cloud Console , enable the  Maps SDK for Android  and  Maps SDK for iOS , and generate an API key. Configure Android:  Add your API key to the  AndroidManifest.xml  file. Configure iOS:  Add your API key in the  AppDelegate.swift  file. c. Display the Map: Use the  GoogleMap  widget to display the map within your application. #dartcode import 'package:google_maps_flutter/google_maps_flutter.dart'; GoogleMap( initialCameraPosition: CameraPosition( target: LatLng(latitude, longitude), zoom: 14.0, ), onMapCreated: (Goo...