loo 0.0.2 copy "loo: ^0.0.2" to clipboard
loo: ^0.0.2 copied to clipboard

A State Management Library for Flutter

Loo #

Pub Version

Loo é uma biblioteca de gerenciamento de estado para Flutter, projetada para ser simples e eficiente.

Instalação #

Adicione a dependência ao seu arquivo pubspec.yaml:

dependencies:
  loo: ^0.0.2

Então, execute flutter pub get para instalar a nova dependência.

Uso #

Registro de Estado #

Para registrar um estado, use o método register da classe Loo:

import 'package:loo/loo.dart';

class MyState extends ChangeNotifier {
  int _counter = 0;
  int get counter => _counter;

  void increment() {
    _counter++;
    notifyListeners();
  }
}

void main() {
  final loo = Loo.instance;
  final state = MyState();
  loo.register(state);
}

Obtenção de Estado #

Para obter um estado registrado, use o método get da classe Loo:

final myState = Loo.instance.get<MyState>();

Atualização de UI #

Para atualizar a UI quando o estado mudar, use o widget LooView:

import 'package:flutter/material.dart';
import 'package:loo/loo.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return LooView(
      child: MaterialApp(
        home: MyHomePage(),
      ),
      onInit: () {
        final loo = Loo.instance;
        loo.register(MyState());
      },
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final myState = Loo.instance.get<MyState>();

    return Scaffold(
      appBar: AppBar(
        title: Text('Loo Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Counter: ${myState.counter}',
            ),
            ElevatedButton(
              onPressed: myState.increment,
              child: Text('Increment'),
            ),
          ],
        ),
      ),
    );
  }
}

Testes #

Para rodar os testes, use o comando:

flutter test

Exemplo de Teste #

import 'package:flutter/foundation.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:loo/loo.dart';

class TestState extends ChangeNotifier {
  int _counter = 0;
  int get counter => _counter;

  void increment() {
    _counter++;
    notifyListeners();
  }
}

void main() {
  test('register and get', () {
    final loo = Loo.instance;
    final state = TestState();
    loo.register(state);
    final result = loo.get<TestState>();
    expect(result, state);
  });
}
2
likes
125
points
24
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A State Management Library for Flutter

Homepage

License

MIT (license)

Dependencies

flutter

More

Packages that depend on loo