mlms_load 0.8.3
mlms_load: ^0.8.3 copied to clipboard
A Flutter plugin for improved app loading and synchronization management.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:mlms_load/mlms_load.dart';
final _router = GoRouter(
routes: [
GoRoute(
path: '/',
builder: (context, state) => const HomeScreen(),
),
GoRoute(
path: '/details/:id',
builder: (context, state) => DetailsScreen(
id: state.pathParameters['id']!,
),
),
GoRoute(
path: '/settings',
builder: (context, state) => const SettingsScreen(),
),
],
);
void main() {
runApp(
MlmsLoadApp(
splashBackgroundImage: const AssetImage('assets/splash_bg.png'),
splashScreen: const MaterialApp(
home: Scaffold(
backgroundColor: Colors.transparent,
body: Center(
child: CircularProgressIndicator(color: Colors.white),
),
),
),
mainScreen: MaterialApp.router(
routerConfig: _router,
),
responseHeaderKey: 'YOUR_RESPONSE_HEADER_KEY',
synchronizationUrl: 'https://your-sync-url.com',
),
);
}
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: ListView(
children: [
ListTile(
leading: const Icon(Icons.info_outline),
title: const Text('Details Item 1'),
onTap: () => context.go('/details/1'),
),
ListTile(
leading: const Icon(Icons.info_outline),
title: const Text('Details Item 2'),
onTap: () => context.go('/details/2'),
),
ListTile(
leading: const Icon(Icons.info_outline),
title: const Text('Details Item 3'),
onTap: () => context.go('/details/3'),
),
ListTile(
leading: const Icon(Icons.settings),
title: const Text('Settings'),
onTap: () => context.go('/settings'),
),
],
),
);
}
}
class DetailsScreen extends StatelessWidget {
final String id;
const DetailsScreen({super.key, required this.id});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Details #$id'),
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => context.go('/'),
),
),
body: Center(
child: Text(
'Details screen for item $id',
style: Theme.of(context).textTheme.headlineSmall,
),
),
);
}
}
class SettingsScreen extends StatelessWidget {
const SettingsScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Settings'),
leading: IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () => context.go('/'),
),
),
body: ListView(
children: [
SwitchListTile(
title: const Text('Notifications'),
subtitle: const Text('Enable push notifications'),
value: false,
onChanged: (_) {},
),
SwitchListTile(
title: const Text('Dark mode'),
subtitle: const Text('Enable dark theme'),
value: false,
onChanged: (_) {},
),
],
),
);
}
}