Skip to content

Cynnexis/notifiable_iterables

Repository files navigation

notifiable_iterables

Notifiable Iterables CI/CD language: dart sdk: flutter license: BSD

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/

🔌 Getting Started

⚒️ 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.

Buttons describing the configuration "example" on Android Studio.

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

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

  1. NotifiableList<E>: A notifiable list. It has the same functions as List<E>.
  2. NotifiableSet<E>: A notifiable set. It has the same functions as Set<E>.
  3. NotifiableMap<K, V>: A notifiable map. It has the same functions as Map<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

🏗️ Build With

🤝 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.

✍️ Authors

Please see the CONTRIBUTORS.md file.

📄 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!)