fluttils
fluttils is a package that helps you to write less code in your application by selecting some frequently used patterns and extracting them into new classes or functions, avoiding you having to creating those patterns by yourself or rewriting them every time you develop a new application.
Examples
- Using
BuildContext
extension methods:
void _(BuildContext context, Widget widget) {
// fluttils:
// flutter:
context.pop();
Navigator.of(context).pop();
context.push(widget);
Navigator.of(context).push(MaterialPageRoute((_) => widget));
context.push(widget, replace: true);
Navigator.of(context).pushReplacement(MaterialPageRoute((_) => widget));
context.screenSize;
MediaQuery.of(context).size;
}
- Using
Text
with a list of parameters:
import 'package:fluttils/fluttils.dart' as f;
void _(String label) {
// fluttils:
// flutter:
f.Text(label);
Text(label);
f.Text(label, [Colors.red]);
Text(label, style: TextStyle(color: Colors.red));
f.Text(label, [Colors.white, TextAlign.center, FontWeight.bold]);
Text(label, style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), textAlign: TextAlign.center);
}
- Using a simplified
Padding
widget:
import 'package:fluttils/fluttils.dart' as f;
void _(Widget widget) {
// fluttils:
// flutter:
f.Padding(all: 5, child: widget);
Padding(padding: EdgeInsets.all(5), child: widget);
f.Padding(height: 1, width: 3, child: widget);
Padding(padding: EdgeInsets.symmetric(vertical: 1, horizontal: 3), child: widget);
f.Padding(all: 4, left: 2, child: widget);
Padding(padding: EdgeInsets.only(left: 2, right: 4, top: 4, bottom: 4), child: widget);
f.Padding(all: 10, left: 15, height: 20, child: widget);
Padding(padding: EdgeInsets.only(left: 15, right: 10, top: 20, bottom: 20), child: widget);
}
- Using
MapStack
as a replacement toStack
in basic scenarios:
import 'package:fluttils/fluttils.dart' as f;
void _() {
// fluttils:
// flutter:
f.MapStack({Alignment.center: Text("a")});
Stack(children: [Align(alignment: Alignment.center, child: Text("a"))]);
f.MapStack({
Alignment.topLeft: Icon(Icons.right_arrow),
Alignment.bottomRight: Icon(Icons.add),
});
Stack(children: [
Align(alignment: Alignment.topLeft, child: Icon(Icons.right_arrow)),
Align(alignment: Alignment.bottomRight, child: Icon(Icons.add)),
]);
}
- Using an easier-to-configure
Visibility
widget:
import 'package:fluttils/fluttils.dart' as f;
void _(Widget widget) {
f.Visibility(visible: false, child: widget);
Visibility(visible: false, child: widget);
f.Visibility(visible: false, child: widget, level: f.VisibilityLevel.state());
Visibility(visible: false, child: widget, maintainState: true);
f.Visibility(visible: false, child: widget, level: f.VisibilityLevel.animation());
Visibility(visible: false, child: widget, maintainState: true, maintainAnimation: true);
f.Visibility(visible: false, child: widget, level: f.VisibilityLevel.size());
Visibility(visible: false, child: widget, maintainState: true, maintainAnimation: true, maintainSize: true);
f.Visibility(visible: false, child: widget, level: f.VisibilityLevel.size(maintainSemantics: true));
Visibility(visible: false, child: widget, maintainState: true, maintainAnimation: true, maintainSize: true, maintainSemantics: true);
}
See the docs for a list of all widgets, functions and extensions provided by the package.