flutter_offline_sync_engine 1.0.0
flutter_offline_sync_engine: ^1.0.0 copied to clipboard
Optimistic UI offline-first data synchronization engine for Flutter with configurable conflict resolution strategies.
flutter_offline_sync_engine #
An optimistic UI offline-first data synchronization engine for Flutter. Automatically queues mutations while offline, emits reactive state streams, and handles conflict resolution strategies when connectivity restores.
🌟 Key Features #
- 📱 Optimistic UI Updates: Instant local UI responses before remote server acknowledgment.
- 🔄 Conflict Resolution Strategies: Built-in support for
ClientWins,ServerWins,LastWriteWins, or custom resolver callbacks. - 📡 Reactive Status Streams: Emits real-time engine states (
idle,syncing,success,error). - 🛡️ Failure Resilience: Preserves un-synced queue items across retry cycles.
📦 Installation #
Add flutter_offline_sync_engine to your pubspec.yaml:
dependencies:
flutter_offline_sync_engine: ^1.0.0
🚀 Quick Start #
import 'package:flutter_offline_sync_engine/flutter_offline_sync_engine.dart';
final engine = OfflineSyncEngine(
conflictResolver: const ConflictResolver(strategy: ConflictStrategy.lastWriteWins),
actionHandler: (action) async {
// Send to REST API or GraphQL backend
return await api.send(action.payload);
},
);
// Record local mutation when offline/online
engine.recordMutation(SyncAction(
id: 'action_01',
entityType: 'todos',
actionType: SyncActionType.create,
payload: {'title': 'Buy coffee'},
));
// Replay queue when connection returns
await engine.synchronize();
📄 License #
MIT License - Developed with ❤️ by Olamilekan Adeyemi (@lekthedeveloper).