Agent SkillsAgent Skills
abbas133

dart-flutter-expert

@abbas133/dart-flutter-expert
abbas133
0
0 forks
Updated 4/13/2026
View on GitHub

Expert Flutter/Dart guidance. Use when working with Flutter projects, implementing BLoC/Riverpod patterns, writing Dart code, optimizing performance, or following Clean Architecture. Provides architecture patterns, widget best practices, and testing strategies.

Installation

$npx agent-skills-cli install @abbas133/dart-flutter-expert
Claude Code
Cursor
Copilot
Codex
Antigravity

Details

Patheisaal-app/.claude/skills/dart-flutter-expert/SKILL.md
Branchmain
Scoped Name@abbas133/dart-flutter-expert

Usage

After installing, this skill will be available to your AI coding assistant.

Verify installation:

npx agent-skills-cli list

Skill Instructions


name: dart-flutter-expert description: Expert Flutter/Dart guidance. Use when working with Flutter projects, implementing BLoC/Riverpod patterns, writing Dart code, optimizing performance, or following Clean Architecture. Provides architecture patterns, widget best practices, and testing strategies.

Dart & Flutter Expert

Architecture (Clean Architecture)

lib/modules/feature/
├── data/           # DTOs, datasources, repository impl
├── domain/         # Entities, contracts, use cases
└── presentation/   # Pages, widgets, providers

State Management

ComplexityUse
SimplesetState, ValueNotifier
MediumProvider, Riverpod
ComplexBLoC, Riverpod with codegen

Widget Best Practices

// Always use const
const MyWidget({super.key});

// Extract widgets, not methods
class _UserAvatar extends StatelessWidget { ... }

// Use freezed for models
@freezed
class User with _$User {
  const factory User({required String id}) = _User;
}

// Selective rebuilds
BlocSelector<AuthBloc, AuthState, bool>(
  selector: (state) => state is AuthLoading,
  builder: (context, isLoading) => ...,
)

Performance

  1. Use const everywhere possible
  2. Use ListView.builder for lists
  3. Use CachedNetworkImage for images
  4. Avoid FutureBuilder with inline futures

Testing

// BLoC test
blocTest<AuthBloc, AuthState>(
  'emits [Loading, Success] on login',
  build: () => AuthBloc(useCase: mockUseCase),
  act: (bloc) => bloc.add(LoginRequested()),
  expect: () => [AuthLoading(), AuthSuccess(user)],
);

Commands

dart run build_runner build --delete-conflicting-outputs
flutter test --coverage
flutter analyze