useful_classes 3.0.0 useful_classes: ^3.0.0 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
.
dependencies:
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);
@override
void readValues() {
super.readValues();
this.id = readValue<int>('id');
this.name = readValue<String>('name');
this.email = readValue<String>('email');
this.phoneNumber = readValue<String>('phone_number');
}
@override
void writeValues(bool exportOnlyChanged, bool ignoreNulls) {
writeValue('id', this.id);
writeValue('name', this.name);
writeValue('email', this.email);
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()
..name = 'Obi-Wan Kenobi'
..email = '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
logger.info('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
@override
dispose() {
// dispose your class and call `super.dispose()` to notify listeners
super.dispose();
}
}
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'));
test.dispose();
/// output: Object disposed