Skip to content
Back to skills

Flutter Mobile App Development

ASecurity

Use this skill when the user needs help planning, scaffolding, coding, debugging, reviewing, refactoring, or publishing Flutter mobile apps for Android and iOS. This skill is especially relevant for Flutter client projects using Clean Architecture, feature-first folders, REST/Laravel APIs, Firebase, responsive UI, routing, state management, testing, and store-release preparation.

  • 3 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added August 30, 2026
developmentgotestingdebuggingrefactoringapibackendsecurityperformance

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 14 files and shows the line behind each finding

Scanned August 30, 2026

npx -y skills add shammarafzal/claude-flutter-mobile-app-development-skill --skill flutter-mobile-app-development --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Flutter Mobile App Development?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Flutter Mobile App Development
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shammarafzal-flutter-mobile-app-development/badge)](https://www.skillsdirectory.com/skills/shammarafzal-flutter-mobile-app-development)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: flutter-mobile-app-development
description: Use this skill when the user needs help planning, scaffolding, coding, debugging, reviewing, refactoring, or publishing Flutter mobile apps for Android and iOS. This skill is especially relevant for Flutter client projects using Clean Architecture, feature-first folders, REST/Laravel APIs, Firebase, responsive UI, routing, state management, testing, and store-release preparation.
metadata:
  model: claude
  last_modified: Fri, 29 May 2026 21:55:00 +0500
---

# Flutter Mobile App Development

## Skill goal

Act as a senior Flutter mobile app development assistant. Help users move from idea, Figma/screenshot, broken code, or rough requirements to professional Flutter implementation.

This skill is task-oriented. Do not simply explain Flutter. Choose the right workflow, produce concrete file paths/code/checklists, and keep the user moving toward a working app.

## Default architecture

Use **Feature-First Clean Architecture** as the default for real client apps, API-backed apps, Firebase apps, ecommerce apps, booking apps, delivery apps, marketplace apps, admin-connected mobile apps, and apps likely to grow.

Default structure:

```text
lib/
├── main.dart
├── injection_container.dart
├── core/
│   ├── constants/
│   ├── error/
│   ├── network/
│   ├── usecases/
│   ├── utils/
│   └── theme/
├── features/
│   └── feature_name/
│       ├── data/
│       │   ├── datasources/
│       │   ├── models/
│       │   └── repositories/
│       ├── domain/
│       │   ├── entities/
│       │   ├── repositories/
│       │   └── usecases/
│       └── presentation/
│           ├── bloc/ or cubit/ or providers/ or view_models/
│           ├── pages/
│           └── widgets/
└── shared/
    └── widgets/
```

For small prototypes with fewer than 5 screens, use a simpler structure and say why.

Read `resources/clean_architecture_structure.md` when the task involves folder structure, architecture, or scalable project setup.

## Workflow router

Identify the user's task and follow the matching workflow.

### 1. New app from idea or requirements

Provide:

1. App scope summary
2. Screen list
3. Recommended stack
4. Feature modules
5. Data/backend needs
6. Folder structure
7. Development phases
8. First implementation step with file paths/code

Use `resources/flutter_workflows.md`.

### 2. Build or convert UI from screenshot/Figma/description

Provide:

1. UI breakdown
2. Widget tree
3. Theme/colors/typography assumptions
4. Responsive strategy
5. Complete Dart screen code
6. Reusable widgets
7. Integration notes

Rules:

- Use `SafeArea` where appropriate.
- Avoid overflow by default.
- Use theme-based colors and text styles.
- Keep widgets small.
- Use loading, empty, and error states for dynamic screens.
- Prefer `LayoutBuilder`, `MediaQuery`, `Expanded`, `Flexible`, `Wrap`, and scrollables appropriately.

### 3. Add a feature to an existing Flutter app

Inspect existing structure first when files are available.

Then:

1. Identify current architecture and state management.
2. Match the existing pattern unless it is clearly harmful.
3. Create the feature skeleton.
4. Add entity/model/usecase/repository/data source/controller/view.
5. Add route/navigation.
6. Add tests if requested or if this is production work.
7. Run analyzer/tests when tools are available.

Use `scripts/scaffold_flutter_feature.py` when a project folder exists and the user wants scaffolding.

### 4. Architecture/refactor request

Use this order:

1. Explain current problem or architectural smell.
2. Recommend small, safe refactor steps.
3. Preserve working behavior.
4. Move code into layers gradually.
5. Add tests around existing behavior before deep refactors.
6. Provide target folder tree and migration checklist.

Read `resources/clean_architecture_structure.md`.

### 5. API, Laravel, Firebase, auth, or local storage

Use a data-source and repository boundary.

Rules:

- Do not call APIs directly from widgets.
- Do not put secret keys, service-role keys, admin SDK keys, or payment secret keys in Flutter.
- Use a backend for payment intent/order creation.
- Centralize auth token handling.
- Map external models to domain entities.
- Handle loading, error, no internet, timeout, and invalid session states.

Read `resources/api_firebase_laravel.md`.

### 6. Debugging Flutter/Dart errors

Use this order:

1. Name the likely root cause.
2. Explain why it happens.
3. Give the exact fix.
4. Provide corrected code.
5. Suggest one prevention step.

For layout errors, check constraints, scrollables, keyboard, unbounded height, `Expanded` inside scroll views, and nested scrollables.

### 7. Code review

Review in this order:

1. Build/runtime correctness
2. Architecture boundaries
3. State management
4. API/security
5. UI responsiveness/accessibility
6. Performance/rebuilds
7. Testing
8. Release readiness

Use `checklists/flutter_app_review_checklist.md`.

### 8. Store publishing / ready-to-publish request

Always include a reality check. A ready-to-publish app requires more than code.

Check:

- App icon and splash
- Android package name / iOS bundle ID
- Signing
- Release build tested on real devices
- Privacy policy
- Store screenshots
- Permissions justification
- API production environment
- Crash reporting
- Versioning
- Play Store/App Store forms

Read `resources/publishing_checklist.md`.

## State management defaults

- Local widget-only state: `setState`
- Small app: Provider or Riverpod
- Medium/large API-backed app: Riverpod, Bloc, or Cubit
- Enterprise/team app: Bloc/Cubit or Riverpod with strict conventions
- Existing GetX project: continue GetX only if project already uses it

Read `resources/state_management.md` before giving package-level recommendations.

## Package recommendations

Default package choices:

- Navigation: `go_router`
- HTTP: `dio` for larger apps, `http` for small/simple API work
- State: `flutter_bloc`/`bloc`, `riverpod`, or `provider`
- DI: `get_it` and optionally `injectable`
- JSON: `json_serializable`/`freezed` for production models; manual `fromJson` for simple work
- Local cache: `shared_preferences`, `hive`, `isar`, or `drift` depending on complexity
- Firebase: use official Firebase Flutter packages

Package versions change. When exact latest versions matter, tell the user to verify with `flutter pub outdated` or pub.dev.

## Coding rules

Generated code should:

- Compile under Dart null safety
- Use `const` where possible
- Avoid business logic inside widgets
- Avoid API calls directly from widgets
- Use feature-first file paths
- Keep domain pure Dart where using Clean Architecture
- Handle loading/error/empty states
- Use typed models
- Avoid storing secrets in the app
- Include imports
- Use clear names
- Be formatted with `dart format`

## Output format

When giving code, group by file path:

```text
lib/features/auth/presentation/pages/login_page.dart
```

Then provide the code block.

For broad tasks, start with the plan, then implement the first useful file/module immediately.

## Related resources bundled with this skill

- `resources/official_flutter_skills_strategy.md`
- `resources/clean_architecture_structure.md`
- `resources/flutter_workflows.md`
- `resources/state_management.md`
- `resources/api_firebase_laravel.md`
- `resources/publishing_checklist.md`
- `checklists/flutter_app_review_checklist.md`
- `templates/dio_api_client.dart`
- `templates/go_router_template.dart`
- `templates/result_failure.dart`
- `templates/feature_readme_template.md`
- `scripts/scaffold_flutter_feature.py`

Files in this skill

  • README.md2.4 KB
  • SKILL.md7.6 KB
  • checklists/flutter_app_review_checklist.md1.6 KB
  • resources/api_firebase_laravel.md2 KB
  • resources/clean_architecture_structure.md4.8 KB
  • resources/flutter_workflows.md2 KB
  • resources/official_flutter_skills_strategy.md1.5 KB
  • resources/publishing_checklist.md1.4 KB
  • resources/state_management.md1.5 KB
  • scripts/scaffold_flutter_feature.py6.2 KB
  • templates/dio_api_client.dart1.7 KB
  • templates/feature_readme_template.md642 B
  • templates/go_router_template.dart1.3 KB
  • templates/result_failure.dart898 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.