tiny_state 1.1.0 copy "tiny_state: ^1.1.0" to clipboard
tiny_state: ^1.1.0 copied to clipboard

A tiny, global, reactive state manager for Flutter that is simple, fast, and requires zero boilerplate. Feels like using a ValueNotifier, but global and enhanced.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tiny_state/tiny_state.dart';
import 'src/models/todo.dart';
import 'src/screens/home_screen.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  final prefs = await SharedPreferences.getInstance();
  tinyState.persistenceAdapter = SharedPreferencesAdapter(prefs);

  // Initialize all the states with default values.
  tinyState.watch<int>('themeMode', ThemeMode.dark.index, persist: true);
  tinyState.watch<int>('counter', 0);
  tinyState.watch<String>('firstName', 'John');
  tinyState.watch<String>('lastName', 'Doe');
  tinyState.watch<List<Todo>>('todos', []);
  tinyState.watch<String>('note', '', persist: true);
  tinyState.watch<int>('persistedCounter', 0, persist: true);
  tinyState.watch<int>('inMemoryCounter', 0);

  runApp(const App());
}

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    final themeIndex = tinyState.watch<int>('themeMode', ThemeMode.dark.index);
    return ValueListenableBuilder<int>(
      valueListenable: themeIndex,
      builder: (context, index, child) {
        return MaterialApp(
          title: 'tiny_state Advanced Example',
          theme: ThemeData.light(useMaterial3: true),
          darkTheme: ThemeData.dark(useMaterial3: true),
          themeMode: ThemeMode.values[index],
          home: const HomeScreen(),
        );
      },
    );
  }
}
1
likes
160
points
10
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A tiny, global, reactive state manager for Flutter that is simple, fast, and requires zero boilerplate. Feels like using a ValueNotifier, but global and enhanced.

Repository (GitHub)
View/report issues

Topics

#state-management #reactive #state #valuenotifier

License

MIT (license)

Dependencies

flutter, shared_preferences

More

Packages that depend on tiny_state