Fluda is a library which makes Flutter application development faster and easier. It makes your code clean and easy to read.

Note: Fluda is still under development. Feedback and Pull Requests are most welcome!




Extension Example Usage Original Equivalent
MediaQueryData get query context.query MediaQuery.of(context)
FocusScopeNode get focus context.focus FocusScope.of(context)
ThemeData get theme context.theme Theme.of(context)
NavigatorState get navigator context.navigator Navigator.of(context)


Extension Example Usage Original Equivalent
hideKeyboard() context.focus.hideKeyboard() if (!FocusScope.of(context).hasPrimaryFocus) FocusScope.of(context).unfocus()


Extension Example Usage Original Equivalent
ifTrue(yes, [no]) someBool.ifTrue(Text("Hello")) someBool ? Text("Hello") : SizedBox()
someBool.ifTrue(firstVariable, secondVariable) someBool ? firstVariable : secondVariable


Extension Example Usage Original Equivalent
bool get isEven 5.isEven (5 % 2 == 0)
bool get isOdd 5.isOdd (5 % 2 != 0)
bool get isPositive 5.isPositive (5 > 0)
bool get isNegative 5.isNegative (5 < 0)
Iterable<int> to(int end, {int step = 1}) 2.to(5) [2, 3, 4, 5]


Extension Example Usage Original Equivalent
bool get isEmptyOrNull "Hello".isEmptyOrNull "Hello" == null ⎮⎮ "Hello".isEmpty
bool get isNotEmptyOrNull "Hello".isNotEmptyOrNull "Hello" != null && "Hello".isNotEmpty
int toInt() "23".toInt() int.parse("23")
double toDouble() "23.3".toDouble() double.parse("23.3")
bool validate() "Simon Pham".validate(RegexUtils.name) RegExp(nameRegex).hasMatch("Simon Pham")
bool validateEmail() "email@email.com".validateEmail() RegExp(emailRegex).hasMatch("email@email.com")
Future launch() "https://some.url".launch() if (await url.canLaunch("https://some.url")) url.launch("https://some.url")
Future dial() "0987654321".dial() if (await url.canLaunch("tel:0987654321")) url.launch("tel:0987654321")
Future sendMail() "me@email.com".sendMail() if (await url.canLaunch("mailto:me@email.com")) url.launch("mailto:me@email.com")


Extension Example Usage Description
Future<void> goTo(int page) pageController.goTo(2) Animate PageView to page index 2 smoothly


Extension Example Usage Description
Future<void> goTo(double position) scrollController.goTo(233.99) Animate Scroll widget to position 233.99 smoothly


Extension Example Usage Description
void selectAll() textEditingController.selectAll() Select all text in the text field


Constant Value
FludaX.x0_5 4.0
FludaX.x 8.0
FludaX.x2 16.0
FludaX.x3 24.0
FludaX.x4 32.0
FludaX.x5 40.0
FludaX.x6 48.0
FludaX.x7 56.0
FludaX.x8 64.0
Constant (Duration) Value
FludaDuration.ms 100ms
FludaDuration.ms2 200ms
FludaDuration.ms3 300ms
FludaDuration.ms4 400ms
FludaDuration.ms5 500ms
FludaDuration.ms6 600ms
FludaDuration.ms7 700ms
FludaDuration.ms8 800ms


Please file Fluda specific issues, bugs, or feature requests in our issue tracker.

Plugin issues that are not specific to Fluda can be filed in the Flutter issue tracker.


If you wish to contribute a change to any of the existing plugins in this repo, please review our contribution guide, and send a pull request.