Extensions topic

Extending Flutter's Capabilities

These extensions alone would be reason enough to use the Fluttery Framework. Thanks to Jonny Borges (author of GetX), under the MIT License, I've incorporated many of his tried and true extensions.

Contents
Context Double Duration Dynamic Number String Widget

Context

import 'package:fluttery_framework_example/src/view.dart';


Widget build(BuildContext context) {
  
  context.mediaQuerySize;

  context.height;

  context.width;

  context.heightTransformer();

  context.widthTransformer();

  context.ratio();

  context.theme;

  context.isDarkMode;

  context.iconColor;

  context.textTheme;

  context.mediaQueryPadding;

  context.mediaQuery;

  context.mediaQueryViewPadding;

  context.mediaQueryViewInsets;

  context.orientation;

  context.isLandscape;

  context.isPortrait;

  context.devicePixelRatio;

  context.textScaleFactor;

  context.mediaQueryShortestSide;

  context.showNavbar;

  context.isPhone;

  context.isSmallTablet;

  context.isLargeTablet;

  context.isTablet;

  context.responsiveValue<String>(
    mobile: 'mobile',
    tablet: 'tablet',
    desktop: 'desktop',
    watch: 'watch',
  );

Double

  1.21643.toPrecision(2);

Duration

  2.seconds.delay(() async {});

Dynamic

  ' '.isBlank;

Number

  123.isLowerThan(12);

  123.isGreaterThan(12);

  123.isEqual(12);

  2.delay(() {});

  100.milliseconds;

  2.seconds;

  3.minutes;

  0.3.hours;

  .5.days;

String

  '123'.isNum;

  '123'.isNumericOnly;

  '123'.isAlphabetOnly;

  '123'.isBool;

  '123'.isVectorFileName;

  '123'.isImageFileName;

  '123'.isAudioFileName;

  '123'.isVideoFileName;

  '123'.isTxtFileName;

  '123'.isDocumentFileName;

  '123'.isExcelFileName;

  '123'.isPPTFileName;

  '123'.isAPKFileName;

  '123'.isPDFFileName;

  '123'.isHTMLFileName;

  '123'.isURL;

  '123'.isEmail;

  '123'.isPhoneNumber;

  '123'.isDateTime;

  '123'.isMD5;

  '123'.isSHA1;

  '123'.isSHA256;

  '123'.isBinary;

  '123'.isIPv4;

  '123'.isIPv6;

  '123'.isHexadecimal;

  '123'.isPalindrom;

  '123'.isPassport;

  '123'.isCurrency;

  '123'.isCpf;

  '123'.isCnpj;

  '123'.isCaseInsensitiveContains('2');

  '123'.isCaseInsensitiveContainsAny('2');

  '123'.capitalize;

  '123'.capitalizeFirst;

  '123'.removeAllWhitespace;

  'camelCase'.camelCase;

  '123'.paramCase;

  '123'.numericOnly();

  '123'.createPath();

  '123'.capitalizeAllWordsFirstLetter();

Widget

  const widget = SizedBox();

  widget.paddingAll(2);

  widget.paddingSymmetric(horizontal: 2, vertical: 2);

  widget.paddingOnly(left: 1, top: 2, right: 3, bottom: 4);

  widget.paddingZero;

  widget.marginAll(2);

  widget.marginSymmetric();

  widget.marginOnly();

  widget.marginZero;

Extensions

ContextExtension on BuildContext Extensions
An extension on BuildContext
GetDurationUtils on Duration Extensions
Duration utilities.
GetDynamicUtils on dynamic Extensions
dartdoc:
GetNumUtils on num Extensions
dartdoc:
GoRouterExtension on BuildContext Extensions
Supply a reference to the GoRouter itself.
Precision on double Extensions
Provide the precision to the double object
StringUtils on String Extensions
dartdoc:
WidgetMarginX on Widget Extensions
Add margin property to widget
WidgetPaddingX on Widget Extensions
add Padding Property to widget
WidgetSliverBoxX on Widget Extensions
Allows you to insert widgets inside a CustomScrollView