gredu_common library

ex is a helper library that provides readable methods with which you can write cleaner looking code.

Classes

AbstractRandomProvider
A generator of double values.
AStack
CoreRandomProvider
A generator of random values using a supplied math.Random.
DefaultRandomProvider
A generator of pseudo-random double values using the default math.Random.
DeviceInfo
created : Aditya Pratama originalFilename : device_info_util date : 11 Jun 2021 —————————————————————————————————————————————————————————————————————————————
ExLog
Flushbar<T>
A highly customizable widget so you can notify your user when you fell like he needs a beautiful explanation.
FlushbarRoute<T>
Grouping<T, K>
Serves as an step between grouping and folding operations.
HeightBox
SizedBox widget with specific height
HStack
A widget that displays its children in a horizontal array.
KeyVal
created : Aditya Pratama originalFilename : _key_val date : 20 Jun 2021 ————————————————————————————————————————————————————————————————————————————— general object Key Value. use example:
MaterialResponsiveUiData
A class that can be queried for breakpoints based on the guidelines in https://material.io/guidelines/layout/responsive-ui.html .
MobileDeviceInfo
Combines MobileDeviceType and MobileDeviceSize.
On<T>
Pair<T, V>
PKCardPageSkeleton
PKCardPageSkeleton can be used to provide a Card Page loading card with PKSkeleton cool animation.
PKCardProfileSkeleton
PKCardProfileSkeleton can be used to provide a profile loading card with PKSkeleton cool animation.
RenderVxAppBarTitleBar
SquareBox
SizedBox widget with equal width & height
VelocityTwoIconColumn
Can be used for two widgets and one icon together vertically .
VelocityXTextSpan
VStack
A widget that displays its children in a vertical array.
VxAdaptiveNavigation
VxAdaptiveNavigation is a wigdet which can be used for navigation throughout the app. On Small screen it use NavigationBar and on Large screen it use NavigationRail.
VxAnimatedBox
VxAnimatedBox is similar to AnimatedContainer with the advantages of VxBox
VxAnimatedHeightView<T extends Widget>
VxAppBar
The VxAppBar displays the toolbar widgets, leading, title, and actions, above the bottom (if any). The bottom is usually used for a TabBar.
VxAppBarTitleBar
VxArc
VxArcClipper
VxBadge
VxBadge widget for using common badges as number or dot.
VxBevel
VxBlock
A widget that displays its children in a one-dimensional array.
VxBox
A convenience widget that combines common painting, positioning, and sizing widgets.
VxBuilder<T>
A stream builder like widget that accepts mutations and rebuilds after their execution.
VxCapsule
VxCard
A material design card: a panel with slightly rounded corners and an elevation shadow.
VxCircle
VxClipShadow
VxClipShadowPainter
VxConditional
Runs a WidgetBuilder's result if the condition is true.
VxConditionalSwitch
Renders widgets based on switch case conditions Example:
VxConsumer<T>
A stream builder like widget that accepts mutations and rebuilds after their execution.
VxContinuousRectangle
VxDash
VelocityX widget to show Dashes with gaps if needed. It can be vertical or horizontal.
VxDecimalList
VxDecimalList is inspired from html where you can have a numeric index with an item (string) Use VxDecimalList to have a list of strings with index.
VxDevice
VxDevice widget can be used for making responsive apps based on if it's mobile or web. In case, if you want more options based on window size, use VxResponsive. You can specify two widgets depends on the screen size mobile and web. They must not be null.
VxDiagonal
VxDiagonalClipper
A widget that clips its child diagonally. Diagonal clipping starts from the position in the axis ends up clipHeight distance from the opposite position
VxDiscList
VxDiscList is inspired from html where you can have a circular disk with an item (string) Use VxDiscList to have a list of strings with circular disk of boxes with a defined color.
VxDivider
VxEllipse
VxEnsureVisibleWhenFocused
Helper class that ensures a Widget is visible when it has the focus For example, for a TextFormField when the keyboard is displayed
VxGlassmorphic
VxHalfClipper
VxHoverToggle
VxHoverToggle widget can help you for Desktop/Web apps to toggle between two widgets on hover.
VxInformationParser
VxInlineBlock
VxInnerShadow
VxInterceptor
Implementation of this class can be used to act before or after a mutation execution.
VxJson
VxJson can be used to show json in tree view of widgets
VxLayout
VxLayout is a type of LayoutBuilder with some additional power
VxMarquee
VxMarqueeState
VxMutation<T extends VxStore?>
An implementation of this class holds the logic for updating the VxStore.
VxNavConfig
allow you to interact with the List of pages
VxNavigator
VxNeumorph
VxNeumorph class to accept list of shadows and a Gradient
VxNotifier
Helper widget that executes the provided callbacks with context on execution of the mutations. Useful to show SnackBar or navigate to a different route after a mutation.
VxObserver
An observer of changes in navigation.
VxPasswordPainter
VxPinView
VxPinView to give a widget where OTP or Pin screen can be created easily
VxPinViewState
VxPlatform<A extends Widget, I extends Widget, W extends Widget, D extends Widget>
Sample
VxPopupMenu
VxPopupMenu can help you in creating custom popup menus using overlay entry.
VxPopupMenuController
VxPopupMenuController gives you access to hide the menu or toggle it using showMenu, hideMenu & toggleMenu.
VxRandomBox
A Container Widget that takes up a given width and height and paints itself with a random color.
VxRating
VxRating widget to show ratings to the user and the user can change it too. Fully customizable
VxRelayingNavigatorObserver
Passes on navigation events to a list of NavigatorObserver objects.
VxResponsive
VelocityResponsive widget can be used for making responsive apps based on different window sizes. You can specify multiple widgets depends on the screen size like xsmall, small, medium,large, and xlarge. The fallback must not be null. It will be replaced if you don't specity any above widget.
VxRichText
Creates a AutoSizeText widget with a TextSpan.
VxRoutePage
VxScrollHorizontal
Widget to directly access SingleChildScrollView horizontally.
VxScrollVertical
Widget to directly access SingleChildScrollView vertically.
VxSelectableTextBuilder
A run of selectable text with a single style.
VxShifter
Use it to pin and shift widget useful for making complex ui Eg Container( height: 200, width: 200, decoration: BoxDecoration(shape: BoxShape.circle, color: Color(0xffE0D8F9) ), ).shift(100, alignment: Alignment.bottomRight) ,
VxShimmer
VxShimmer widget can be used to provide shimmer effect to any widget.
VxSizeConfig
VxSkeleton
To show skeleton with any widget.
VxSkeletonState
VxState
The coordinating widget that keeps track of mutations and the notify the same to the listening widgets.
VxStateSwitcher
VxStepper
VxStepper widget to have a input enabled counter with 2 buttons, one for addition and one for subtraction with good level of customization.
VxStepperState
VxStore
App's store should extend this class. An instance of this class is given to VxState while initialization only once.
VxSwiper
Use this widget VxSwiper to give your list a swipeable effect with full customization.
VxSwitcher
VxSwitcher can be used for Desktop and mobile platforms to change the state using AnimatedSwitcher in case of using mobile.
VxTable
A widget that uses the table layout algorithm for its children.
VxTextBuilder
Flutter widget that automatically resizes text to fit perfectly within its bounds.
VxTextDropDown
A material design button for selecting from a list of items.
VxTextField
An easy to use implementation of TextField with ready to use props.
VxTicket
VxTimeline
To show a timeline view with filled dot, header and description. Great for showing something like a history
VxTimelineModel
VxTimerButton
Read button
VxTimerButtonState
VxToggleRotate
VxToggleRotate to rotate and animate any widget
VxTriangle
VxTwo
Can be used for two texts together vertically or horizontally.
VxTwoColumn
Can be used for two widgets together vertically.
VxTwoRow
Can be used for two widgets together horizontally.
VxUniversal
VxUniversal is an universal super widget which can be used to do almost everything.
VxZeroCard
VxZeroCard can be used to provide a single loading card with PKSkeleton cool animation.
VxZeroList
VxZeroList can be used to provide a list of loading cards with PKSkeleton cool animation.
VxZoom
VxZoom widget allows a widget to pinch and zoom on top of current context by inserting a OverlayEntry.
WidthBox
SizedBox widget with specific width
ZStack
A widget that positions its children relative to the edges of its box.

Enums

DocumentType
created : Aditya Pratama originalFilename : string_extension date : 19 Jun 2021 —————————————————————————————————————————————————————————————————————————————
FlushbarDismissDirection
Indicates the direction in which it is possible to dismiss If vertical, dismiss up will be allowed if FlushbarPosition.TOP If vertical, dismiss down will be allowed if FlushbarPosition.BOTTOM
FlushbarPosition
Indicates if flushbar is going to start at the TOP or at the BOTTOM
FlushbarStatus
Indicates the animation status FlushbarStatus.SHOWING Flushbar has stopped and the user can see it FlushbarStatus.DISMISSED Flushbar has finished its mission and returned any pending values FlushbarStatus.IS_APPEARING Flushbar is moving towards FlushbarStatus.SHOWING FlushbarStatus.IS_HIDING Flushbar is moving towards [] FlushbarStatus.DISMISSED
FlushbarStyle
Indicates if flushbar will be attached to the edge of the screen or not
MobileDeviceSize
Symbolic sizes of mobile devices.
MobileDeviceType
Types of mobile devices.
VxArcType
VxBadgePosition
VxBadgeType
VxClickType
Provide click type either longClick or singleClick
VxCurve
VxCurve to provide different types of curves to the neumorphic design. concave is default.
VxDiagonalPosition
Defines the corners of the child widget
VxDividerType
VxDrawerType
VxEdge
VxHoverMode
VxPageState
VxPinBorderType
VxPreviewIndicatorAxis
VxSkeletonAnimationType
VxStatus
Status about the current state
VxTextFieldBorderType
VxToastPosition
Toast position
VxToastType
VxWindowSize
Symbolic window sizes of mobile devices.

Mixins

ExAlert
ExInputDialog
ExLoading
ExSnackbar
QueryString
Vx
Mixin Vx provides basic operations and utilities
VxBottomSheet
VxDialog
VxDrawer
VxEffects<ON>
Secondary mutation executed based on the result of the first. Similar to chaining actions in Redux. For example, an http request will have a success or a fail side effect after request is complete.
VxPreview
VxToast
VxWeb3

Extensions

Also on T
also can be used for performing actions that need the current value as an argument. It returns the current value.
Associate on Iterable<T>
AssociateString on String
CenterExtension on Widget
Center the widget
Chunked on Iterable<T>
ChunkedString on String
DateTimeTimeExtension on DateTime
DateToStringExtension on DateTime
DurationTimeExtension on Duration
ElseIf on T?
ExtensionListUnsafe on List?
ExtensionUint8List on Uint8List
FilterNotNull on Iterable<T?>
FirstOrNull on Iterable<T>
GetOrNull on Iterable<T>
GetOrPut on Map<K, V>
GroupingBy on Iterable<T>
GroupingByString on String
IntExtensionHelper on int
created : Aditya Pratama originalFilename : extension_int date : 22 Aug 2021 —————————————————————————————————————————————————————————————————————————————
IterableBasics2 on Iterable<T>
IterableOfDoubleSC on Iterable<double>
IterableOfIntSC on Iterable<int>
Let on T
let can be used to invoke one or more functions on results of call chains.
MapIndexed on Iterable<T>
MapNotNull on Iterable<T>
MiscExtensions on String?
NullableStringIsNotNullOrEmptyExtension on String?
NullableStringIsNullOrEmptyExtension on String?
NumIterableBasics on Iterable<E>
Utility extension methods for Iterables containing nums.
NumTimeExtension on T
OrElse on T?
RangeNum on T
ScrollExtension on Widget
Extension method to directly access SingleChildScrollView with any widget without wrapping or with dot operator.
SingleOrNull on Iterable<T>
StringToDateExtension on String
created : Aditya Pratama originalFilename : extension_date date : 22 Jun 2021 ————————————————————————————————————————————————————————————————————————————— scope : dateTime <-> string
StringToDateFormatterExtension on String
StringWidgetsExtension on String
TakeIf on T?
takeIf returns the current value if the given block is satisifed, will return null if not.
TakeUnless on T?
takeUnless returns the current value if the given block is not satisifed, will return null if it is.
TimeOfDayExtension on TimeOfDay
Unique on List<E>
created : Fadqurrosyidik originalFilename : extension_list date : 27 Sept 2021 ————————————————————————————————————————————————————————————————————————————— scope : List
VelocityXRichTextExtension on RichText
VelocityXTextSpanExtension on TextSpan
VxAnimatedContainerWidgetExtension on Widget
VxBadgeExtension on Widget
VxBoolExtension on bool
VxBreakpointUtils on BoxConstraints
VxCardExtension on Widget
VxCenterBuilderExtension on VxWidgetBuilder<Widget>
VxContainerWidgetExtension on Widget
VxContextExtensions on BuildContext
Extensions for general basic Context
VxDateTimeExtension on DateTime
Date Time Extension Methods
VxDropDownExtension on List<String>
VxDurationString on String
VxExtensionGlobalKey on GlobalKey<State<StatefulWidget>>
VxExtensionList on List<T>
VxExtensionMap on Map<K, V>
VxGestureExtensions on Widget
VxGlassWidgetExtension on Widget
VxHumanizedDuration on Duration
VxIcon on Icon
Extension method to directly access Icon.
VxIntExtension on int
Extension method for integers.
VxIterableBasics on Iterable<E>
Utility extension methods for the native Iterable class.
VxListStringExtension on List<String>
VxListWidgetExtension on List<Widget>
Extension Methods for List of widgets.
VxMarqueeExtension on String
VxNullableStringIsEmptyOrNullExtension on String?
VxNullableStringIsNotEmptyAndNotNullExtension on String?
VxNumExtension on num
Extension Methods & Widgets for the numbers
VxObjectExtensions on Widget
Extension Methods for Alignment of the objects.
VxOpacityExtension on Widget
Extension method for providing opacity on the top of widgets
VxPaddingExtensions on Widget
Extension to provide Padding to any widget.
VxRandomContainerWidgetExtension on Widget
Random Color box extension method
VxRoutesWidgetsExtension on Widget
VxScrollControllerExtension on ScrollController
Extensions for ScrollController
VxSelectableTextExtensions on SelectableText
VxShapesExtension on Widget
VxShiftWidgetExt on Widget
VxShimmerExtension on Widget
VxSizedBoxExtension on Widget
A box with a specified size.
VxSkeletonExtension on Widget
VxStringExtension on String
Extension Methods & Widgets for the strings
VxTableExtensions on List<TableRow>
VxTextExtensions on Text
VxThemeExtension on Widget
Extension method to directly access material Theme with any widget without wrapping or with dot operator.
VxToastExtension on BuildContext
VxToggleExtension on Widget
VxTransformExtension on Widget
Extension method to directly transform any widget without wrapping or with dot operator.
VxWeb3Extension on String
VxWidgetsExtension on Widget
VxZoomExtensions on Widget

Constants

asciiEnd → const int
asciiStart → const int
FLUSHBAR_ROUTE_NAME → const String
lowerAlphaEnd → const int
lowerAlphaStart → const int
maxSupportedInteger → const int
minSupportedInteger → const int
numericEnd → const int
numericStart → const int
upperAlphaEnd → const int
upperAlphaStart → const int

Functions

asyncGuard<T>(Future<T> callback(), [T? defaultValue]) Future<T?>
Evaluates the function asynchonically wrapping the body with try/catch and returns default value if error was raised or return value is null Originally available at https://pub.dev/packages/guard
getView(dynamic child) Widget
guard<T>(T callback(), [T? defaultValue]) → T?
Evaluates the function wrapping the body with try/catch and returns default value if error was raised or return value is null Originally available at https://pub.dev/packages/guard
iff<T>(bool statement, T branch()) → T?
The iff method can be used as a normal if statement, or as an expression, i.e. it returns a value.
isIn<T>(Iterable<T> list) → _WhenCheck
Allows for checking if a when value is in a list.
isNotIn<T>(Iterable<T> list) → _WhenCheck
Allows for checking if a when value is not in a list.
isNotType<V>() → _WhenCheck
Allows for checking if a when value is not of a certain type.
isType<V>() → _WhenCheck
Allows for checking if a when value is of a certain type.
log(dynamic message) → void
logD(dynamic message) → void
logE(dynamic message) → void
logI(dynamic message) → void
logW(dynamic message) → void
myBoxDec(dynamic animation, {dynamic isCircle = false, dynamic isDark = false}) Decoration
myBoxDesc to reuse with PKSkeleton
print(dynamic message) → void
randomAlpha(int length, {AbstractRandomProvider provider = const DefaultRandomProvider()}) String
Generates a random string of length with only alpha characters.
randomAlphaNumeric(int length, {AbstractRandomProvider provider = const DefaultRandomProvider()}) String
Generates a random string of length with alpha-numeric characters.
randomBetween(int from, int to, {AbstractRandomProvider provider = const DefaultRandomProvider()}) int
Generates a random integer where from <= to inclusive where 0 <= from <= to <= 999999999999999
randomMerge(String a, String b) String
Merge a with b and shuffle.
randomNumeric(int length, {AbstractRandomProvider provider = const DefaultRandomProvider()}) String
Generates a random string of length with only numeric characters.
randomString(int length, {int from = asciiStart, int to = asciiEnd, AbstractRandomProvider provider = const DefaultRandomProvider()}) String
Generates a random string of length with characters between ascii from to to. Defaults to characters of ascii '!' to '~'.
range<T extends num>(T value, {T? to, T? until, T? downTo, T? step}) List<T>
Creates progression ranges of given type value.
repeat<T>(int iterations, T lambda(int index)) List<T>
The repeat method allows you to easily call a lambda a certain number of times.
showFlushbar<T>({required BuildContext context, required Flushbar flushbar}) FlushbarRoute
tryy<T>(T branch(), {List<On> catches = const []}) → T?
The tryy method can be used as a normal try-catch block, or as an expression, i.e. it returns a value.
when<T, V>(T value, Map<T, V Function()> branches) → V?
when defines a conditional expression with multiple branches.
withAnimation<T>({required TickerProvider vsync, required Tween<T> tween, required AnimationUpdateCallBack<T?> callBack, Duration duration = const Duration(seconds: 1), double initialValue = 0.0, Curve curve = Curves.linear, Animation? customAnimation}) AnimationController
To perform forward animation in a simpler way
withRepeatAnimation<T>({required TickerProvider vsync, required Tween<T> tween, required AnimationUpdateCallBack<T?> callBack, Duration duration = const Duration(seconds: 1), double initialValue = 0.0, Curve curve = Curves.linear, double? lowerBound, double? upperBound, bool isRepeatReversed = false, Duration? repeatPeriod, Animation? customAnimation}) AnimationController
To perform repeat animation in a simpler way

Typedefs

AggregateOperation<T, K, R> = R Function(K key, R? accumulator, T element, bool first)
A function that is invoked on each element.
AnimationUpdateCallBack<T> = dynamic Function(T animationVal, double controllerVal)
ChunkedTransform<T, R> = R Function(T chunk)
ContextCallback = void Function(BuildContext context, VxMutation<VxStore?> mutation, {VxStatus? status})
Function signature for the callback with context.
FlushbarStatusCallback = void Function(FlushbarStatus? status)
FnBuilderCallback = void Function()
OnRetry = void Function()
OnStateChanged = Widget Function(VxPageState state)
OnTap = void Function(Flushbar flushbar)
VxMutationBuilder = VxMutation<VxStore?> Function()
Function signature for mutations that has deferred execution. VxMutation.next accepts functions with this signature.
VxPageBuilder = Page Function(Uri uri, dynamic params)
VxStateWidgetBuilder<T> = Widget Function(BuildContext context, T store, VxStatus? status)
VxWidgetBuilder gives context and status back. Status are more useful when you use vx effects
VxToggleBuilder = Widget Function(Widget child)

Exceptions / Errors

ProviderError
ProviderError thrown when a Provider provides a value outside the expected [0, 1) range.