fleasy

Last updated:

0 purchases

fleasy Image
fleasy Images
Add to Cart

Description:

fleasy

Fleasy helps create Flutter apps easier by providing useful and easy to use extensions, helper classes and widgets.
The goal is that by using this package you have to write less (repeating) and more clean and readable code.
Overview #

Extensions on String and String?
Extensions on BuildContext (Adaptive helpers)
Extensions on BuildContext (Theme helpers)
Extensions on BuildContext (Navigation helpers)
Extensions on BuildContext (Flashbars)
Extensions on List?
Extensions on List
Extensions on DateTime
Date helper class
Insets helper class
Flutter Widgets
Analysis Options

Features #
All features with links to their page in the documentation:


Extensions on String and String?: #
Note: All getters also do a null check if used on String?.


isNotBlank
Whether the string contains characters except of whitespace characters.

isBlank
Whether the string is either empty or solely made of whitespace characters.

toNullIfBlank()
Returns null if the string isBlank or it's text if it isNotBlank.

isEmail
Whether the string is a valid email.

isUrl
Whether the string is a valid url.

isEasyPassword
Whether the string is a valid easy password.

isMediumPassword
Whether the string is a valid medium password.

isStrongPassword
Whether the string is a valid strong password.

addHttps()
Adds https:// to the link if it does not contain https:// or http:// already. This is helpful to make a link openable when using the url_launcher package for example.



Extensions on BuildContext (Adaptive helpers): #


screenSize
The MediaQueryData.size from the nearest MediaQuery ancestor.

screenWidth
The horizontal extent of the screen size.

screenHeight
The vertical extent of the screen size.

screenOrientation
The MediaQueryData.orientation from the nearest MediaQuery ancestor.

screenIsLandscape
Whether the device is in landscape mode.

screenIsPortrait
Whether the device is in portrait mode.

formFactor()
Returns the correct FormFactor based on the ScreenWidthBreakpoints.

byFormFactor
Returns either onMobile, onTablet or onDesktop depending on the current formFactor.
Example:
int columns = context.byFormFactor<int>(onMobile: 1, onTablet: 2, onDesktop: 4);
copied to clipboard




Extensions on BuildContext (Theme helpers): #


theme
The data from the closest Theme instance that encloses the given context.

isDarkTheme
Whether the theme brightness is dark.

isLightTheme
Whether the theme brightness is light.



Extensions on BuildContext (Navigation helpers): #


pushPage(...)
Push the given page onto the navigator.

pushRoute(...)
Push the given route onto the navigator.

popPage(...)
Pop the top-most route off the navigator and dismiss the keyboard.

canPopPage()
Whether the navigator can be popped.

dismissKeyboard()
Dismisses the keyboard.



Extensions on BuildContext (Flashbars): #
The extensions use the awesome flash package:


showSuccessFlashbar(...)
Shows a success flashbar/toast with a customizable text.

showInfoFlashbar(...)
Shows an info flashbar/toast with a customizable text.

showErrorFlashbar(...)
Shows an error flashbar/toast with a customizable text (optional).

showNoConnectionFlashbar()
Shows a no connection flashbar/toast with a customizable text (optional).



Extensions on List?: #


isNotBlank
Whether the list is not empty nor null.

isBlank
Whether the list is empty or null.



Extensions on List: #


find(...)
Returns either the first element of the list which satisfies the provided test or null if there is none.



Extensions on DateTime: #


copyWith(...)
Returns a copy with the overridden (given) attributes.

format(...)
Returns a String which represents the date formatted by the given pattern.

isToday
Whether the date is today.

isYesterday
Whether the date is yesterday.

isTomorrow
Whether the date is tomorrow.

isFutureDay
Whether the date is a day in the future.

isSameDay(...)
Whether the date is on the same day (regardless of the time) as the given date.

timeIsZero
Whether the time of the date is zero/empty.

copyWithEmptyTime()
Returns a copy with time set to zero/empty.



Date helper class: #


today()
DateTime.now() without time (time set to zero).

tomorrow()
The DateTime of tomorrow (without time (time set to zero)).

yesterday()
The DateTime of yesterday (without time (time set to zero)).



Insets helper class: #
A single source of truth for styling values like padding, spacing, corner shape, font sizes, and so on.
These constants can then be used in place of hard-coded numeric values.


xxs
An extra extra small inset of 2.0.

xs
An extra small inset of 4.0.

s
A small inset of 6.0.

m
A medium inset of 8.0.

l
A large inset of 10.0.

xl
An extra large inset of 12.0.

xxl
An extra extra large inset of 16.0.



Flutter Widgets: #


Gap
A wrapper around SizedBox for making consistent gaps. Example: Instead of SizedBox(width: 4.0) you can just write Gap.w4().

EasyFutureBuilder
A wrapper around FutureBuilder which makes it easy to display the various states of fetching data from the given Future. See example.

EasyStreamBuilder
A wrapper around StreamBuilder which makes it easy to display the various states of streaming data from the given Stream. See example.



Analysis options: #
You can use the same analysis options which this package uses by simply including them in your analysis_options.yaml file:
include: package:fleasy/analysis_options.yaml
copied to clipboard
They are based on:

package:flutter_lints (therefore also package:lints)
my favorite lint rules which are not present in package:flutter_lints

For more details, have a look at the analysis_options.yaml file here.


Note: #
This package is still in early stages. If you notice any bugs not present in issues, please file a new issue. If you are willing to fix or enhance things yourself, you are very welcome to make a pull request.
Also: Feedback and suggestions are very welcome. Just open an issue.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.