Skills flutter-dev
📦

flutter-dev

Safe

Build cross-platform Flutter applications

Building high-quality cross-platform apps requires mastering many Flutter patterns and state management approaches. This skill provides structured guidance on widget patterns, Riverpod and Bloc state management, GoRouter navigation, performance optimization, and platform-specific implementations.

Supports: Claude Codex Code(CC)
🥉 76 Bronze
1

Download the skill ZIP

2

Upload in Claude

Go to Settings → Capabilities → Skills → Upload skill

3

Toggle on and start using

Test it

Using "flutter-dev". Show me how to set up GoRouter with authentication guards

Expected outcome:

  • Configure GoRouter with a redirect function that checks auth state
  • Define route paths for login, home, and protected screens
  • Implement a redirect that sends unauthenticated users to the login page
  • Preserve navigation state during authentication redirects

Using "flutter-dev". How do I test a Bloc-based Flutter widget?

Expected outcome:

  • Write widget tests using pumpWidget with a ProviderScope wrapper
  • Use Mocktail to mock repository dependencies
  • Trigger user interactions with find and tap methods
  • Verify expected UI state changes with expect assertions

Security Audit

Safe
v1 • 4/16/2026

This skill consists entirely of markdown documentation files (SKILL.md and 12 reference files) containing Dart/Flutter code examples and development best practices. The static analyzer flagged 583 patterns, but all are false positives caused by misinterpreting markdown code fence backticks as shell commands and treating documentation content as executable code. No actual scripts, network calls, filesystem operations, or external commands are present. The skill is safe to publish.

13
Files scanned
4,734
Lines analyzed
0
findings
1
Total audits
No security issues found
Audited by: claude

Quality Score

45
Architecture
100
Maintainability
87
Content
50
Community
100
Security
91
Spec Compliance

What You Can Build

Mobile app startup architecture

Set up a new Flutter project with feature-based structure, GoRouter navigation, and Riverpod state management from the start.

State management migration

Migrate an existing Flutter application from setState to Riverpod or Bloc for better state organization and testability.

Performance optimization audit

Identify and fix performance bottlenecks using DevTools profiling, const optimization, and RepaintBoundary patterns.

Try These Prompts

Get started with Flutter project setup
Help me set up a new Flutter project with a feature-based folder structure. Include GoRouter for navigation and Riverpod for state management. Show the main entry point and a basic feature folder.
Implement Riverpod state management
Show me how to implement a user authentication flow using Riverpod. Include a StateNotifierProvider for auth state, a login form with validation, and navigation to a home screen on success.
Optimize Flutter widget performance
Review this Flutter widget tree and identify performance issues. Suggest where to use const constructors, RepaintBoundary, and ListView.builder. Explain the impact of each optimization.
Build a complete REST API client with Dio
Create a Dio HTTP client setup with authentication interceptors, error handling, and retry logic. Include a repository pattern for API calls and show how to integrate it with Riverpod providers.

Best Practices

  • Use const constructors on all static widgets to prevent unnecessary rebuilds and reduce memory usage
  • Choose Riverpod for simple state management and dependency injection, and Bloc for complex event-driven state flows
  • Profile with Flutter DevTools in profile mode before optimizing to identify actual performance bottlenecks

Avoid

  • Avoid using setState for shared state that multiple widgets depend on. Use a state management solution instead
  • Do not place API calls or heavy computation inside build methods. Use providers or isolates for async work
  • Never skip const constructors on static widgets. Missing const prevents Flutter from skipping unchanged widget subtrees

Frequently Asked Questions

Should I use Riverpod or Bloc for my Flutter project?
Riverpod works well for simple state management and dependency injection with less boilerplate. Bloc is better for complex applications with event-driven state changes, undo functionality, or when you need explicit state transition logging. Many projects use both together.
How do I improve Flutter app performance?
Start by profiling with Flutter DevTools in profile mode. Use const constructors on static widgets, add RepaintBoundary around complex animations, use ListView.builder for long lists, and offload heavy computation to isolates with the compute function.
What is the recommended project structure for Flutter apps?
Use a feature-based structure where each feature has its own folder containing presentation, domain, and data layers. Shared utilities, themes, and routing go in a common folder. This scales better than layer-based structure for larger applications.
How do I handle navigation and deep linking in Flutter?
Use GoRouter for declarative routing with typed routes. Configure deep linking through the router configuration and platform-specific settings. Use redirect functions for authentication guards and state preservation across route changes.
How do I test Flutter applications effectively?
Write widget tests for UI components using flutter_test. Write unit tests for business logic and repositories. Write integration tests for complete user flows. Use Mocktail for dependency mocking and bloc_test for testing Bloc state transitions.
How do I handle different screen sizes in Flutter?
Use LayoutBuilder with breakpoints for responsive layouts. Set breakpoints at 650 pixels for tablet and 1100 pixels for desktop. Use flexible widgets like Expanded and Flexible, and test on multiple screen sizes during development.