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

A State Management Library for Flutter

Claro! Aqui está um exemplo de um README completo para a sua biblioteca:

# Loo

[![Pub Version](https://img.shields.io/pub/v/loo.svg)](https://pub.dev/packages/loo)

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`:

```yaml
dependencies:
  loo: ^0.0.1
```

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);
  });
}

Licença #

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Este README fornece uma visão geral da biblioteca, instruções de instalação, exemplos de uso, informações sobre testes e detalhes da licença.
2
likes
0
points
24
downloads

Publisher

unverified uploader

Weekly Downloads

A State Management Library for Flutter

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on loo