notifiable_iterables
Provides iterables that implements the ChangeNotifier
class.
pub.dev: https://pub.dev/packages/notifiable_iterables
GitHub: https://github.com/Cynnexis/notifiable_iterables
API Documentation: https://cynnexis.github.io/notifiable_iterables/
:electric_plug: Getting Started
:hammer_and_pick: Installation
It is recommended to install this package via pub
.
To install this package in your project, open the pubspec.yaml
, see this section.
Running the Example
The example/
directory contains an Android Studio project that uses notifiable_iterables
.
To make it run, open the project using Android Studio to launch the configuration example.
If you don't have Android Studio, please open a terminal in the example
project directory, and execute the following lines:
# Get the dependencies
pub get
# Check that a device is connected to this computer
flutter devices
# Run the example
flutter run
:dart: Usage
The full documentation is available here.
To use this library, you need to import it in your dart file:
import 'package:notifiable_iterables/notifiable_iterables.dart';
Then, you can use the following classes:
NotifiableList<E>
: A notifiable list. It has the same functions asList<E>
.NotifiableSet<E>
: A notifiable set. It has the same functions asSet<E>
.NotifiableMap<K, V>
: A notifiable map. It has the same functions asMap<K, V>
.
Those classes can be uses exactly like their iterable equivalent.
Example:
// Create a notifiable list
NotifiableList<int> list = NotifiableList<int>.of(<int>[0, 1, 2, 3]);
print(list[2].toString()); // prints "2"
// Add a listener
list.addListener(() => print("New list: $list"));
// Change the list
list[3] = 4; // Notify the listeners, the console will show the updated list
:building_construction: Build With
:handshake: Contributing
To contribute to this project, please read our CONTRIBUTING.md
file.
We also have a code of conduct to help create a welcoming and friendly environment.
:writing_hand: Authors
Please see the CONTRIBUTORS.md
file.
:page_facing_up: License
This project is under the BSD License. Please see the LICENSE.txt file for more detail (it's a really fascinating story written in there!)