패키지, 저장소 및 앱 카테고리 검색

GitHub 저장소omar-hanafy/flutter_helper_utils

flutter_helper_utils

Flutter Helper Utils는 Dart와 Flutter의 핵심 기능을 보강하는 데 목적이 있는 포괄적인 패키지입니다. 풍부한 확장과 보조 메서드를 통해 이 패키지는 Flutter 프로젝트에서 생산성을 높이고 코딩을 간단하게 만듭니다.

flutter_helper_utils 프로젝트 이미지
스타
18
포크
2
최근 푸시(UTC)
2026. 7. 25.
프로젝트 상태
활성

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

Flutter Helper Utils

flutter_helper_utils is a curated Flutter utility package focused on a few high-value areas:

  • adaptive UI and breakpoint helpers
  • color parsing, transformation, and accessibility utilities
  • typed list and sliver list widgets
  • focused BuildContext and UI extensions
  • dart_helper_utils re-exported for the Dart-only helpers that still fit the package surface
Flutter Helper Utils Logo

Version 9 intentionally makes the package smaller and more deliberate.

Documentation

Full documentation: https://omar-hanafy.github.io/flutter_helper_utils/

The site is built from site/ in this repository, so it ships with the package rather than trailing behind it.

AI coding-assistant support

This repository ships a package-specific agent plugin for Claude Code and OpenAI Codex (this is tooling for coding agents, not a runtime feature of the Flutter package). It teaches the agent the exact flutter_helper_utils APIs - breakpoint/adaptive-UI semantics, TypedListView contracts, color parsing and WCAG helpers, navigation and theme member names, the v8-to-v9 breaking migration, and version-aware upgrades.

Install in Claude Code:

/plugin marketplace add omar-hanafy/flutter_helper_utils
/plugin install flutter-helper-utils@flutter-helper-utils-tools

Install in OpenAI Codex (CLI; the IDE extension does not support plugins - use its $skill-installer there instead):

codex plugin marketplace add omar-hanafy/flutter_helper_utils
codex plugin add flutter-helper-utils@flutter-helper-utils-tools

Start a new agent session after installing so the skills load. Then try prompts like "make this screen adaptive with flutter_helper_utils breakpoints" or "migrate this app from flutter_helper_utils 8.x to 9.x", or invoke a skill explicitly in Claude Code, e.g. /flutter-helper-utils:use-flutter-helper-utils.

The plugin is installed from this Git repository (not from the pub.dev archive), contains markdown skills only - no hooks, no MCP servers, no telemetry - and its version tracks the package version. Details, the full capability list, updating, and uninstalling are in tooling/ai/flutter-helper-utils/README.md.

Install

dependencies:
  flutter_helper_utils: ^9.2.0

Imports

Most users should import the package once:

import 'package:flutter_helper_utils/flutter_helper_utils.dart';

If you only want the shortcut-heavy surface, use the opt-in sugar import:

import 'package:flutter_helper_utils/sugar.dart';

Notifiers

Notifier utilities were extracted from this package in v9.

If you need the old notifier-style workflows, use better_value_notifier

Highlights

Adaptive UI
runApp(
  const PlatformTypeProvider(
    child: MyApp(),
  ),
);

@override
Widget build(BuildContext context) {
  final breakpoint = context.watchBreakpoint;

  if (breakpoint.isMobile) {
    return const MobileLayout();
  }
  if (breakpoint.isTablet) {
    return const TabletLayout();
  }
  return const DesktopLayout();
}
PlatformEnv
final report = PlatformEnv.report();
final os = PlatformEnv.operatingSystem;
final locale = PlatformEnv.localeName;
final processors = PlatformEnv.numberOfProcessors;
Color Toolkit
final brand = tryToColor('#F97316') ?? Colors.orange;
final accent = tryToColor('rgb(14 165 233)') ?? Colors.blue;

final hex = brand.toHex(includeAlpha: true);
final readableText = brand.contrastColor();
final passesAA = brand.meetsWCAG(
  readableText,
  level: WCAGLevel.aa,
  context: WCAGContext.normalText,
);

Color parsing supports:

  • hex strings
  • rgb(...) and rgba(...)
  • hsl(...) and hsla(...)
  • hwb(...)
  • CSS named colors
Typed Lists
TypedListView<Product>(
  items: products,
  itemBuilder: (context, index, product) {
    return ProductTile(product: product);
  },
  spacing: 12,
  header: const Text('Products'),
);
CustomScrollView(
  slivers: [
    const SliverAppBar(title: Text('Products')),
    products.buildSliverList(
      itemBuilder: (context, index, product) {
        return ProductTile(product: product);
      },
      spacing: 12,
    ),
  ],
);
BuildContext and UI Helpers

Use context.popPage() for guarded back navigation and context.forcePopPage() when the current route should be removed directly.

context.pushPage(const DetailsPage());
await context.popPage();
context.showSnackBar(const SnackBar(content: Text('Saved')));
context.unfocus();

final theme = context.themeData;
final width = context.widthPx;
final height = context.heightPx;
Opt-in Sugar
final padding = 16.edgeInsetsAll;
final hSpace = 12.heightBox();
final radius = 24.allCircular;
final rawColor = 0xFFF97316.color;

0xFFF97316.color lives in sugar.dart, not in the main color toolkit.

Widgets

Included widgets and widget systems:

  • PlatformTypeProvider
  • PlatformInfoLayoutBuilder
  • BreakpointLayoutBuilder
  • TypedListView
  • TypedSliverList
  • GradientWidget
  • MultiTapDetector
  • ThemeWithoutEffects

Migration

Version 9 includes several breaking changes:

  • notifier utilities moved to better_value_notifier
  • deprecated Color.add* aliases removed
  • GradientWidget.gradientAlignment removed
  • explicit navigation naming finalized
  • focus helper naming finalized

For the full v9 migration guide, read migration_guides.md.

Example

The example app in example/ was rebuilt for v9 and acts as the current visual reference for the package surface.

License

MIT

Omar Khaled GitHub avatar
GitHub 작성자

Omar Khaled ↗

Mobile App Developer

언어DartC++CMakeRubyTypeScriptHTMLSwiftCKotlinObjective-C

분류

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 5 개

프로젝트에 맞는 저장소를 선택하려면?

사용 목적에 따라 검색하고 개발 활동을 비교한 뒤 원본 저장소에서 요구 사항을 확인하세요.

  1. 이름, 작성자 또는 설명으로 검색하고 기술 주제로 범위를 좁힙니다.
  2. 스타, 포크, 최근 푸시를 함께 비교하세요. 스타는 관심의 지표이며 품질을 보장하지 않습니다.
  3. 사용하기 전에 GitHub에서 README, 라이선스, Issues를 확인하세요.

출처 및 관리

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗