Skip to main content
OAOlamilekan AdeyemiFlutter · React · Next.js · Full-Stack DeveloperHire Me
All packages/Data sync/flutter_offline_sync_engine
Data sync

flutter_offline_sync_engine

A local mutation queue and synchronization handlers for Flutter applications. Explore the API and current limitations.

Data syncQueueFlutter
v1.0.0Documented version
MITOpen source license
Flutter & DartSee platform notes

Overview

Represent local changes as queued mutations and provide the application logic that sends them to your backend.

flutter_offline_sync_engine Represent local changes as queued mutations and provide the application logic that sends them to your backend.

Data sync
Queue
Flutter

Installation

Add the package to your Flutter project.

bash
flutter pub add flutter_offline_sync_engine:^1.0.0

Quick Start

Start with this small example, then connect it to your own application. Read the known limitations before using it with real data.

dart
import 'package:flutter_offline_sync_engine/flutter_offline_sync_engine.dart';

// Supply a backend handler that returns true only after success.
final engine = OfflineSyncEngine(
  actionHandler: (action) async {
    // Connect your backend here. Do not acknowledge unsent data.
    return false;
  },
);

Future<void> queueExample() async {
  engine.recordMutation(SyncAction(
    id: 'todo_01',
    entityType: 'todos',
    actionType: SyncActionType.create,
    payload: {'title': 'Try the example'},
  ));
  await engine.synchronize();
}

This is a starting point, not a complete application. Add error handling and tests for your own backend and lifecycle.

Configuration

Keep configuration with the part of your application that owns the package instance. Connect authentication, storage, exporters or backend handlers explicitly rather than relying on hidden global state.

Use the versioned API reference for constructors and options. The starting example above focuses on a small integration surface; the repository example shows the surrounding application code.

Explore configuration in the API reference

Known Limitations

The current queue is memory only. Our local audit reproduced a concurrent modification error when adding a mutation during synchronization. Serialize changes while evaluating this release; do not treat it as durable storage.

API Reference

Explore the public classes, methods and constructors for version 1.0.0.

Open versioned API reference

Example & Tests

Use the repository example to explore the package in context. Run its tests locally, and add regression cases for the known limitations above. The SSL package’s device test results do not apply to this package.

bash
git clone https://github.com/lekthedeveloper/flutter_offline_sync_engine.git
cd flutter_offline_sync_engine
flutter pub get
flutter test
View repository example

Frequently Asked Questions

Can I use this package in a commercial app?

The package is MIT licensed. Follow the license terms and review the current limitations for your use case.

Where should I report a bug?

Open an issue in the package repository. Include the package and Flutter versions, a minimal reproduction and the expected behavior. Remove credentials and private data.

Are these packages all verified for production?

No blanket guarantee is made. Each guide documents its current limitations. Test your integration and use independent review for sensitive workflows.