gaana 1.0.3 copy "gaana: ^1.0.3" to clipboard
gaana: ^1.0.3 copied to clipboard

A Flutter state management solution boilerplate based on Notifier

example/example.md

Example #

For a complete example, please, have a look at Clean Architecture example with Gaana state manager.

import 'package:flutter/material.dart';
import 'package:gaana/gaana.dart';
import 'package:gaana/example.dart';

void main() {
  final usersNotifier = UsersNotifier(exampleUsers);
  final compositeNotifier = CompositeNotifier([usersNotifier]);
  runApp(Gaana(child: const MyApp(), notifier: compositeNotifier));
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      initialRoute: '/',
      routes: {'/': (context) => GaanaExample()},
    );
  }
}

Or more advanced with ThemeProvider:

import 'package:flutter/material.dart';
import 'package:gaana/gaana.dart';
import 'package:gaana/example.dart';

class ThemeProvider with ChangeNotifier {
  ThemeMode _themeMode = ThemeMode.system;
  ThemeMode get themeMode => _themeMode;
  bool get isDarkMode => _themeMode == ThemeMode.dark;
  void toggleTheme(bool isOn) {
    _themeMode = isOn ? ThemeMode.dark : ThemeMode.light;
    notifyListeners();
  }

  void setTheme(ThemeMode mode) {
    _themeMode = mode;
    notifyListeners();
  }
}

void main() {
  final usersNotifier = UsersNotifier(exampleUsers);
  final themeNotifier = ThemeProvider();
  final compositeNotifier = CompositeNotifier([usersNotifier, themeNotifier]);
  runApp(Gaana(child: const MyApp(), notifier: compositeNotifier));
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      initialRoute: '/',
      themeMode: context.gaana.get<ThemeProvider>()?.themeMode,
      theme: ThemeData.light(),
      darkTheme: ThemeData.dark(),
      routes: {'/': (context) => GaanaExample()},
    );
  }
}
2
likes
150
points
20
downloads

Publisher

verified publisherfenki.net

Weekly Downloads

A Flutter state management solution boilerplate based on Notifier

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on gaana