aquabase 0.6.6
aquabase: ^0.6.6 copied to clipboard
Flutter SDK for Aquabase — encrypted real-time database with offline sync, tags, and binary transport.
example/main.dart
import 'package:flutter/material.dart';
import 'package:aquabase/aquabase.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 1. Initialize Aquabase
final app = await Aquabase.init(
projectId: 'demo-project-id',
apiKey: 'aq_pub_demoapikey123',
);
runApp(MyApp(app: app));
}
class MyApp extends StatelessWidget {
final Aquabase app;
const MyApp({super.key, required this.app});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: const Text('Aquabase Demo')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
// 2. Write data (instant local cache + background sync)
ElevatedButton(
onPressed: () async {
await app.collection('users').doc('u1').set({
'name': 'Ana',
'age': 25,
'createdAt': DateTime.now(),
});
},
child: const Text('Save User'),
),
const SizedBox(height: 16),
// 3. Read data
StreamBuilder<Document?>(
stream: app.collection('users').watch('u1'),
builder: (context, snapshot) {
if (snapshot.hasData && snapshot.data != null) {
final data = snapshot.data!.data;
return Text('User: \${data['name']} (\${data['age']})');
}
return const Text('No user saved yet.');
},
),
const SizedBox(height: 32),
// 4. Offline sync status
StreamBuilder<bool>(
stream: app.connectionState,
builder: (context, snapshot) {
final isConnected = snapshot.data ?? app.isConnected;
return Text(
isConnected ? '🟢 Online' : '🔴 Offline (Pending: \${app.pendingOfflineOps})',
);
},
),
],
),
),
),
);
}
}