Flutter Extensions Pack
A comprehensive Dart extensions package designed to simplify and enhance Flutter development. This package introduces utilities for padding, spacing, border radius, date-time operations, string manipulation, and much more.
Features
- Spacing: Easily add horizontal and vertical space.
- Padding: Simplify the creation of
EdgeInsets
. - Border Radius: Quickly define border radius.
- Date-Time Utilities: Manipulate and format dates.
- String Manipulation: Reverse strings, capitalize text, and validate emails.
- Screen Utilities: Get screen dimensions.
- Map and List Extensions: Safely access elements, sort lists, and remove duplicates.
- Navigation Helpers: Simplify page navigation.
- Styling: Predefined text styles.
- Snackbars: Access Snackbars of each category (simple, success, error)
Installation
Add the following line to your pubspec.yaml
under dependencies
:
dependencies:
flutter_extensions_pack: ^1.0.0
Run flutter pub get
to fetch the package.
Usage
1. Spacing Extensions
Easily add spacing with spaceX
and spaceY
.
10.spaceX; // Horizontal space
20.spaceY; // Vertical space
2. Padding Extensions
Simplify creating paddings with extensions like padAll
, padX
, padY
, etc.
Container(
padding: 16.padAll, // Padding for all sides
child: Text('Hello, World!'),
);
Container(
padding: 8.padX, // Horizontal padding
child: Text('Flutter'),
);
3. Border Radius Extensions
Quickly define border radii for widgets.
Container(
decoration: BoxDecoration(
borderRadius: 10.circularRadius, // Circular radius
),
);
Container(
decoration: BoxDecoration(
borderRadius: 15.horizontalRadius, // Horizontal radius
),
);
4. Date-Time Utilities
Manipulate and format DateTime
objects with ease.
DateTime now = DateTime.now();
DateTime startOfDay = now.startOfDay;
DateTime endOfDay = now.endOfDay;
// Format date
String formatted = now.format("yyyy-MM-dd");
// Add business days
DateTime future = now.addBusinessDays(5);
5. String Manipulation
Perform common string operations effortlessly.
"flutter".toCapitalized; // "Flutter"
"hello world".toTitleCase; // "Hello World"
"example@gmail.com".validateEmail; // true
"Hello".reverse(); // "olleH"
6. Navigation Helpers
Simplify navigation between screens.
context.push(NextPage());
context.pushReplacement(AnotherPage());
context.pushAndRemoveUntil(HomePage());
7. Map and List Utilities
Safely access elements, sort, or remove duplicates.
Map<String, String> data = {"key": "value"};
String value = data.getOrDefault("key", "default");
List<int> numbers = [3, 1, 2, 2];
numbers.unique; // [3, 1, 2]
8. Screen Size Utilities
Get screen dimensions directly.
final screenWidth = context.kWidth;
final screenHeight = context.kHeight;
9. Styling Utilities
Use predefined text styles.
Text(
'Hello',
style: context.style24W700,
);
Example Project
Check out the example project to see these extensions in action.
Contribution
Contributions are welcome! If you have ideas for new extensions or improvements, feel free to open an issue or submit a pull request.
License
This package is licensed under the MIT License. See the LICENSE file for more information.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/