useful_classes 2.4.5
useful_classes: ^2.4.5 copied to clipboard

Pack with useful classes to facilitate the creation of other resources

Useful Classes #

Package with useful classes to assist in creating other packages and applications.

Introduction #

This package was developed with the intention of maintaining useful classes that are used in other packages, to avoid replicating copies of the same classes.

How to install #

Add the dependency on pubspec.yaml.

Informing ^ at the beginning of the version, you will receive all updates that are made from version 2.0.0 up to the version before 3.0.0.

  useful_classes: ^2.0.0

Import the package in the source code.

import 'package:useful_classes/useful_classes.dart';

Basic Model #

BasicModel is very useful for classes that need to be created from a JSON (on the flutter a JSON is a field and value map) or write a JSON from the instance data.

In the example below, a class with the name UserModel will be created, after that an example of how to create the class from a JSON will be shown and after generating JSON again based on the data contained in the class instance.

Class implementation

class UserModel extends BasicModel {
  int id;
  String name;
  String email;
  String phoneNumber;

  UserModel() : super();  
  UserModel.fromJson(json) : super.fromJson(json);

  void readValues() {
    super.readValues(); = readValue<int>('id'); = readValue<String>('name'); = readValue<String>('email');
    this.phoneNumber = readValue<String>('phone_number');

  void writeValues(bool exportOnlyChanged, bool ignoreNulls) {
    writeValue('phone_number', this.phoneNumber);

Import the class based on a JSON

Map<String, dynamic> json = {
  'id': 1,
  'name': 'Darth Vader',
  'email': 'darth.vader@sith.galaxy',
  'phone_number': '547889633245'

UserModel user = UserModel.fromJson(json);

Generate JSON

UserModel user = UserModel() = 'Obi-Wan Kenobi' = 'obiwan.Kenobi@jedi.galaxy'
  ..phoneNumber = '478998789753'

Map<String, dynamic> json = user.toJson();

Logger #

The Logger class is a simple class for printing information on the terminal only when the application is in debug mode.

Below is an example of implementing the logger.

final Logger logger = Logger();

logger.log('simple log');
/// output: simple log'information log');
/// output: 💡 information log

logger.warning('warning log');
/// output: ⚠️ warning log

logger.error('error log');
/// output: ⛔ error log

If it is necessary to add a prefix when printing all logs, use the prefix parameter in the class constructor.

final Logger logger = Logger(prefix: 'My prefix');

OnDispose #

Implement in their classes dispose() method, allowing notify listeners when class is disposed

class Test with OnDispose {

    // your class structure

    dispose() {
        // dispose your class and call `super.dispose()` to notify listeners

In the example below, the test class will be created and an event added when discarding the class to print the text Object disposed.

final Test test = Test();
test.onDispose.add((object) => print('Object disposed'));

/// output: Object disposed
pub points

Pack with useful classes to facilitate the creation of other resources

Repository (GitHub)
View/report issues


API reference







Packages that depend on useful_classes