pocketbase_drift 0.5.0 copy "pocketbase_drift: ^0.5.0" to clipboard
pocketbase_drift: ^0.5.0 copied to clipboard

A powerful, offline-first PocketBase client backed by a drift database.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart';

import 'core/router/app_router.dart';
import 'core/theme/app_theme.dart';
import 'shared/providers/pocketbase_provider.dart';
import 'shared/utils/seed_data.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // Load startup dependencies in parallel
  final startupData = await Future.wait([
    SharedPreferences.getInstance(),
    rootBundle.loadString('assets/pb_schema.json'),
  ]);

  final sharedPreferences = startupData[0] as SharedPreferences;
  final schemaJson = startupData[1] as String;

  final container = ProviderContainer(
    overrides: [
      sharedPreferencesProvider.overrideWithValue(sharedPreferences),
      schemaProvider.overrideWithValue(schemaJson),
    ],
  );

  // Seed sample projects and tasks if database is newly initialized
  final client = container.read(pocketBaseProvider);
  await seedInitialDataIfEmpty(client);

  runApp(
    UncontrolledProviderScope(
      container: container,
      child: const TaskFlowApp(),
    ),
  );
}

class TaskFlowApp extends ConsumerWidget {
  const TaskFlowApp({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final router = ref.watch(routerProvider);

    return MaterialApp.router(
      title: 'TaskFlow — PocketBase Drift Demo',
      debugShowCheckedModeBanner: false,
      theme: AppTheme.lightTheme,
      darkTheme: AppTheme.darkTheme,
      themeMode: ThemeMode.system,
      routerConfig: router,
    );
  }
}
12
likes
160
points
325
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A powerful, offline-first PocketBase client backed by a drift database.

Repository (GitHub)
View/report issues

Topics

#pocketbase #offline #cache #drift

License

Apache-2.0 (license)

Dependencies

drift, flutter, http, internet_connection_checker_plus, logging, path, path_provider, pocketbase, shared_preferences, sqlite3

More

Packages that depend on pocketbase_drift