flutter_helper_kit
A production-ready Flutter utility kit — extensions, widgets, animations, responsive sizing, and utils in one package with zero external dependencies (Flutter SDK only).
Consolidates helpers previously spread across custom_helper folders (Paydrop, WhereToNow, etc.) into a single maintainable package.
Platforms: Android · iOS · Web · macOS · Windows · Linux
Installation
dependencies:
flutter_helper_kit: ^1.0.6
flutter pub add flutter_helper_kit
import 'package:flutter_helper_kit/flutter_helper_kit.dart';
Modular imports (smaller compile surface)
import 'package:flutter_helper_kit/flutter_helper_kit_extensions.dart';
import 'package:flutter_helper_kit/flutter_helper_kit_widgets.dart';
import 'package:flutter_helper_kit/flutter_helper_kit_animation.dart';
import 'package:flutter_helper_kit/flutter_helper_kit_responsive.dart';
import 'package:flutter_helper_kit/flutter_helper_kit_utils.dart';
Package structure
Every feature maps to a lib/ path. Use this table to find the right file.
| Module | Source path | Key APIs |
|---|---|---|
| Extensions | lib/extensions/ |
String, Color, DateTime, List, Map, Widget, Context, Alignment, Type conversion |
| Widgets | lib/widgets/ |
AppButton, SliderButton, ReadMore, FlutterTag, Sharp corners, Pagination, etc. |
| Animation | lib/animation/ |
75+ animateWidget*, list animations, AnimatedGestureDetector |
| App Responsive | lib/app_responsive/ |
ScreenUtilInit, .w, .h, .sp, .r, RPadding, RSizedBox |
| Reactive | lib/reactive/ |
RxDateTime, RxnDateTime (ValueNotifier-based) |
| Utils | lib/utils/ |
timeAgoCalculated, RandomImage, SystemUiUtils, MapCustomInfoWindow |
| Formatters | lib/text_field/ |
NoLeadingSpaceFormatter, NoSpaceFormatter |
| Custom Painter | lib/custom_painter/ |
GoogleLogoWidget |
Full single import via flutter_helper_kit.dart.
Example app
Runnable demos for every module — each screen shows source file + API names.
cd example
flutter run
See example/README.md for catalog structure and how to add new demos.
Quick start
Responsive sizing (app_responsive/)
ScreenUtilInit(
designSize: const Size(360, 690),
builder: (_, child) => MaterialApp(home: child),
child: Builder(
builder: (context) => Container(
width: 200.w,
height: 80.h,
child: Text('Hello', style: TextStyle(fontSize: 16.sp)),
),
),
);
| API | File |
|---|---|
.w, .h, .sp, .r, .sw, .sh |
app_responsive/size_extension.dart |
ScreenUtilInit |
app_responsive/screenutil_init.dart |
RPadding, RSizedBox |
app_responsive/r_padding.dart, r_sized_box.dart |
Widget animations (animation/)
Text('Hello')
.animateWidgetElasticEntry()
.animateWidgetGlassReveal();
// List item stagger
ListTile(title: Text('Item'))
.animateListEntry(index: 0);
// Tap feedback
AnimatedGestureDetector(
effectPreset: TapEffect.bounce,
onTap: () {},
child: Icon(Icons.favorite),
);
| API | File |
|---|---|
animateWidget* (75+ methods) |
animation/widget_animation_extensions.dart |
animateList* |
animation/list_item_animations.dart |
AnimatedGestureDetector |
animation/animated_gesture_detector.dart |
animateSheetReveal |
animation/animations_bottom_sheet.dart |
Extensions
'edit_item'.toSnakeCase(); // string_case.dart
'user@mail.com'.isValidateEmail(); // validation.dart
1.50.toStringAsSmartRounded(); // smart_round_to_string.dart
Colors.blue.withColorOpacity(0.5); // color_extension.dart
DateTime.now().timeAgo(); // date_extension.dart
'42'.toInt(); // type_conversion.dart (on Object?)
context.showSnackBar(title: Text('Hi')); // build_context_extension.dart
Widgets
// Slider with shimmer label
SliderButton(
width: 300,
label: Text('Slide to confirm'),
action: () async => true,
);
// Password strength meter
PasswordStrengthIndicator(textController: controller);
// Enhanced read-more with regex annotations
ReadMoreTextEnhanced(longText, trimLines: 3, annotations: [...]);
// iOS-style sheets (pass BuildContext)
AppCupertinoActionSheet.showActionSheet(
context: context,
actions: [ActionSheetItem(value: 'a', label: 'Option A')],
);
// Animated digit counter
UniversalDigitCounter(value: 12345, type: DigitAnimationType.simple);
// Ticket shape clipper
TicketClipper(
clipper: PointedEdgeClipper(),
child: Container(color: Colors.orange),
);
// Infinite scroll list
ListViewPagination(
itemCount: items.length,
hasNext: hasMore,
nextData: fetchMore,
itemBuilder: (_, i) => ListTile(title: Text(items[i])),
);
| Widget | File |
|---|---|
AppButton |
widgets/app_button.dart |
SliderButton |
widgets/slider_button.dart |
PasswordStrengthIndicator |
widgets/password_strength_indicator/ |
ReadMoreText / ReadMoreTextEnhanced |
widgets/read_more_text.dart, read_more_enhanced.dart |
FlutterTag |
widgets/flutter_tag/ |
SharpBorderRadius, SharpClipRect |
widgets/sharp_corners/ |
ListViewPagination |
widgets/list_view_pagination.dart |
CenterTextDivider, CustomBanner |
widgets/center_text_divider.dart, custom_banner.dart |
AvatarGlow, OutlineGlow |
widgets/avatar_glow/ |
TicketClipper |
widgets/ticket_clippers/ |
UniversalDigitCounter |
widgets/rolling_digit/ |
Reactive datetime (reactive/)
final rx = RxDateTime.now();
rx.addDuration(const Duration(hours: 1));
print(rx.format('yyyy-MM-dd'));
print(rx.timeAgo());
No GetX required — built on ValueNotifier<DateTime>.
Utils
timeAgoCalculated(DateTime.now().subtract(Duration(minutes: 5)));
RandomImage.picsumImage(300, 200);
RandomPicsumImage.image(width: 400, height: 300);
SystemUiUtils.setStatusBarColor(Colors.deepPurple);
| Util | File |
|---|---|
timeAgoCalculated |
utils/ago_time.dart |
RandomImage |
utils/random_image.dart |
RandomPicsumImage |
utils/random_picsum_image.dart |
SystemUiUtils |
utils/system_ui_utils.dart |
MapCustomInfoWindow |
utils/map_custom_info_window.dart |
showDialogWithCloseIcon |
utils/close_icon_show_dialog.dart |
Validator |
utils/password_validator.dart |
Numeral |
utils/numberal_utils.dart |
Map info window (callback adapter)
No google_maps_flutter dependency in this package. Use CallbackMapInfoWindowAdapter:
final adapter = CallbackMapInfoWindowAdapter(
onGetScreenCoordinate: (latLng) async {
final coord = await googleMapController.getScreenCoordinate(
LatLng(latLng.latitude, latLng.longitude),
);
return MapScreenCoordinate(coord.x, coord.y);
},
);
controller.mapAdapter = adapter;
Text field formatters
TextField(
inputFormatters: [
NoLeadingSpaceFormatter(),
NoSpaceFormatter(),
],
);
Extensions reference
String — extensions/string/
string_extension.dart—isEmptyOrNull,capitalize,reversed, parsing helpersstring_case.dart—toSnakeCase,toCamelCase,toPascalCase,toKebabCase,toTitleCasevalidation.dart—isValidateEmail,validatePhone,extractPhoneNumber, URL/password checks
Color — extensions/color/color_extension.dart
toHex,createMaterialColor,lighten,darken,withColorOpacity,isDark,isLight
DateTime — extensions/date/
date_extension.dart—timeAgo,isToday,isYesterday, timezone helpersdate_format.dart—format(pattern:),formatTime()
List / Map / Set / Iterable — extensions/list/, map/, set/
firstOrNull,lastWhereOrNull,separatorEvery,getOrDefault,validate
Number — extensions/number/
integer_extension.dart,double_extension.dart,number_extension.dartsmart_round_to_string.dart—toStringAsSmartRounded()height(),width(),circularBorderRadiusspacing helpers
Widget / Context — extensions/widget/, context/
paddingAll,withSize,visible,expanded,centeredwidth,height,showSnackBar,theme, platform checks
Other
alignment/alignment_extensions.dart—isTop,isBottom,isLeft,isRighttype_conversion.dart—toInt,toDouble,toBool,toStronObject?bool/bool_extensions.dart—validate,toggle,toIntduration/duration_extensions.dart—.delayfunction/scope_functions_extension.dart—let,also,run,takeIfrandom/random_extension.dart— random helpers onmath.Random
Widgets reference
UI & feedback
| Widget | File | Description |
|---|---|---|
FlutterToast |
flutter_toast.dart |
Toast messages |
CustomIndicator |
custom_indicator.dart |
Loading overlay |
UnFocusable |
hide_keyboard.dart |
Dismiss keyboard on outside tap |
DoublePressBackWidget |
double_press_back_widget.dart |
Press back twice to exit |
TapSafeGesture |
tap_safe_gesture.dart |
Debounced async tap |
TextShimmer, ProfileShimmer, … |
simmer.dart |
Shimmer placeholders |
Layout & display
| Widget | File |
|---|---|
Space, SliverSpace |
space/space.dart, sliver_space.dart |
SeparatedColumn |
separated_column.dart |
FlutterListView |
flutter_list_view.dart |
DashDivider |
dash_divider.dart |
DottedBorderWidget |
dotted_border_widget.dart |
GradientText |
gradient_text.dart |
Marquee |
marquee_widget.dart |
TextAvatar, TextIcon |
text_avatar.dart, text_icon_widget.dart |
WidgetHelper |
widget_helper.dart |
Forms & input
| Widget | File |
|---|---|
RoundedCheckBox |
rounded_checkbox_widget.dart |
RatingBarWidget |
rating_bar_widget.dart |
TimerBuilder |
timer_builder.dart |
Typedefs
Callback types in utils/type_def.dart:
FutureVoidCallback, StringCallback, IntArgVoidCallback, DoubleCallback, and more.
Migration from custom_helper
| Before | After |
|---|---|
import '.../custom_helper.dart' |
import 'package:flutter_helper_kit/flutter_helper_kit.dart' |
Get.context in Cupertino dialogs |
Pass context: parameter |
Rx<DateTime> (GetX) |
RxDateTime / RxnDateTime |
Google Maps LatLng in info window |
MapLatLng + MapInfoWindowAdapter |
Screenshots
Flutter Toast
Tap Safe Gesture
Avatar Glow
Outline Avatar Glow
Avatar Glow MultiColor
Outline Avatar Glow MultiColor
App Button
Marquee
RatingBar
Read More Text
Rounded Check Box
Text Icon
showDialogWithCloseIcon
Sharp Borders
Flutter Tag
Contributing
- Issues & features: GitHub Issues
- New widget/API: add under
lib/, export influtter_helper_kit.dart, register demo inexample/lib/catalog/example_catalog.dart - Contact: sachin4kmt@gmail.com
If this package helps your project, consider giving it a star on GitHub.
Libraries
- animation/animation
- app_responsive/app_responsive
- app_responsive/core/responsive_scope
- app_responsive/core/scale_calculator
- constants/constants
- core/flutter_animate/flutter_animate
- core/flutter_animate/src/adapters/adapter
- core/flutter_animate/src/adapters/adapters
- core/flutter_animate/src/adapters/change_notifier_adapter
- core/flutter_animate/src/adapters/scroll_adapter
- core/flutter_animate/src/adapters/value_adapter
- core/flutter_animate/src/adapters/value_notifier_adapter
- core/flutter_animate/src/animate
- core/flutter_animate/src/animate_list
- core/flutter_animate/src/effect_list
- core/flutter_animate/src/effects/align_effect
- core/flutter_animate/src/effects/blur_effect
- core/flutter_animate/src/effects/box_shadow_effect
- core/flutter_animate/src/effects/callback_effect
- core/flutter_animate/src/effects/color_effect
- core/flutter_animate/src/effects/crossfade_effect
- core/flutter_animate/src/effects/custom_effect
- core/flutter_animate/src/effects/effect
- core/flutter_animate/src/effects/effects
- core/flutter_animate/src/effects/elevation_effect
- core/flutter_animate/src/effects/fade_effect
- core/flutter_animate/src/effects/flip_effect
- core/flutter_animate/src/effects/follow_path_effect
- core/flutter_animate/src/effects/listen_effect
- core/flutter_animate/src/effects/move_effect
- core/flutter_animate/src/effects/rotate_effect
- core/flutter_animate/src/effects/saturate_effect
- core/flutter_animate/src/effects/scale_effect
- core/flutter_animate/src/effects/shader_effect
- core/flutter_animate/src/effects/shake_effect
- core/flutter_animate/src/effects/shimmer_effect
- core/flutter_animate/src/effects/slide_effect
- core/flutter_animate/src/effects/swap_effect
- core/flutter_animate/src/effects/then_effect
- core/flutter_animate/src/effects/tint_effect
- core/flutter_animate/src/effects/toggle_effect
- core/flutter_animate/src/effects/visibility_effect
- core/flutter_animate/src/extensions/animation_controller_loop_extensions
- core/flutter_animate/src/extensions/extensions
- core/flutter_animate/src/extensions/num_duration_extensions
- core/flutter_animate/src/extensions/offset_copy_with_extensions
- core/flutter_animate/src/flutter_animate
- core/flutter_animate/src/warn
- core/flutter_shaders/flutter_shaders
- core/flutter_shaders/src/animated_sampler
- core/shimmer_widget
- custom_painter/google_logo_painter
- extensions/alignment/alignment
- Alignment extensions — axis checks, transforms, and directional helpers.
- extensions/alignment/alignment_directional_extensions
- extensions/alignment/alignment_extensions
- extensions/alignment/alignment_geometry_extensions
- extensions/alignment/core/alignment_axis
- extensions/bool/bool_extensions
- Utility extensions for working with nullable and non-nullable boolean values.
- extensions/color/color_extension
- extensions/context/build_context_extension
- extensions/date/date_extension
- extensions/date/date_format
- extensions/duration/duration_extensions
- extensions/function/listenable_extension
- extensions/function/scope_functions_extension
- extensions/list/iterable_extension
- extensions/list/list_extension
- extensions/list/list_null_extension
- extensions/list/list_num
- extensions/map/map
- Map extensions — nullable helpers, key transforms, and typed getters.
- extensions/map/map_extension
- extensions/number/double_extension
- extensions/number/integer_extension
- extensions/number/number_extension
- extensions/number/smart_round_to_string
- extensions/random/random_extension
- extensions/set/set_extension
- extensions/string/string_case
- extensions/string/string_extension
- extensions/string/string_mask
- extensions/string/validation
- extensions/type_conversion
- extensions/widget/border
- extensions/widget/column_extension
- extensions/widget/padding
- extensions/widget/row_extension
- extensions/widget/widget_extension
- extensions/widget/widget_list_extension
- flutter_helper_kit
- A comprehensive utility kit containing high-performance extensions, production-ready pagination widgets, geometric squircle paths, and advanced formatters.
- flutter_helper_kit_animation
- Animation-only entry point for flutter_helper_kit.
- flutter_helper_kit_extensions
- Extensions-only entry point for flutter_helper_kit.
- flutter_helper_kit_responsive
- Responsive layout entry point for flutter_helper_kit.
- flutter_helper_kit_utils
- Utils, formatters, reactive helpers, and typedefs for flutter_helper_kit.
- flutter_helper_kit_widgets
- Widgets-only entry point for flutter_helper_kit.
- reactive/rx_datetime
- text_field/no_leading_space_formatter
- text_field/no_space_formatter
- utils/ago_time
- utils/close_icon_show_dialog
- utils/common_functions
- utils/console/printf_console
- Advanced debug console helpers with ANSI styling, log levels, and HTTP logs.
- utils/decorations
- utils/flutter_helper_utils
- utils/map_custom_info_window
- utils/map_info_window_callback_adapter
- utils/numberal_utils
- utils/password_validator
- utils/pattern
- utils/random_image
- utils/random_picsum_image
- utils/system_chrome_utils
- utils/system_ui_utils
- utils/type_def
- widgets/app_cupertino_action_sheet/app_cupertino_action_sheet
- widgets/app_cupertino_action_sheet/app_cupertino_dialog
- widgets/avatar_glow/avatar_glow
- widgets/avatar_glow/avatar_glow_multi_color
- widgets/avatar_glow/outline_glow
- widgets/avatar_glow/outline_glow_multi_color
- widgets/center_text_divider
- widgets/custom_indicator
- widgets/dash_divider
- widgets/dotted_border_widget
- widgets/double_press_back_widget
- widgets/dropdown_sheet/generic_dropdown_sheet
- widgets/flutter_list_view
- widgets/flutter_tag/flutter_tag
- widgets/flutter_tag/src/animation/flip_transition
- widgets/flutter_tag/src/flutter_tag_animation
- widgets/flutter_tag/src/flutter_tag_animation_type
- widgets/flutter_tag/src/flutter_tag_border_gradient
- widgets/flutter_tag/src/flutter_tag_gradient
- widgets/flutter_tag/src/flutter_tag_gradient_type
- widgets/flutter_tag/src/flutter_tag_position
- widgets/flutter_tag/src/flutter_tag_positioned
- widgets/flutter_tag/src/flutter_tag_shape
- widgets/flutter_tag/src/flutter_tag_style
- widgets/flutter_tag/src/flutter_tag_widget
- widgets/flutter_tag/src/painters/flutter_cloud_tag_shape_painter
- widgets/flutter_tag/src/painters/flutter_diamond_tag_shape_painter
- widgets/flutter_tag/src/painters/flutter_hexagon_tag_shape_painter
- widgets/flutter_tag/src/painters/flutter_pentagon_tag_shape_painter
- widgets/flutter_tag/src/painters/flutter_star_tag_shape_painter
- widgets/flutter_tag/src/utils/flutter_calculation_utils
- widgets/flutter_tag/src/utils/flutter_drawing_utils
- widgets/flutter_tag/src/utils/flutter_gradient_utils
- widgets/flutter_toast
- widgets/gradient_text
- widgets/hide_keyboard
- widgets/list_view_pagination
- widgets/marquee_widget
- widgets/password_strength_indicator/password_rules_enum
- widgets/password_strength_indicator/password_strength_enum
- widgets/password_strength_indicator/password_strength_indicator
- widgets/rating_bar_widget
- widgets/read_more_enhanced
- widgets/read_more_text
- widgets/rolling_digit/digit_count_animation
- widgets/rolling_digit/rolling_digit
- widgets/rounded_checkbox_widget
- widgets/separated_column
- widgets/sharp_corners/path_sharp_corners
- widgets/simmer
- widgets/space/sliver_space
- widgets/space/space
- widgets/tap_safe_gesture
- widgets/text_avatar
- widgets/text_icon_widget
- widgets/ticket_clippers/edge_enum
- widgets/ticket_clippers/pointed_edge
- widgets/ticket_clippers/rounded_edge
- widgets/ticket_clippers/shadow_radius
- widgets/ticket_clippers/ticket_clipper
- widgets/ticket_clippers/ticket_clippers
- widgets/ticket_clippers/ticket_edge
- widgets/ticket_clippers/ticket_painter
- widgets/timer_builder
- widgets/widget_helper