/flutter-retrofit-networking
Build type-safe HTTP networking with Dio and Retrofit including auth interceptors in Flutter. Use when integrating REST APIs with Dio or Retrofit.
$ npx -y skills add hoangnguyen0403/agent-skills-standard --skill flutter-retrofit-networking --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/flutter-retrofit-networking
Context preview
The summary Claude sees to decide when to auto-load this skill.
Build type-safe HTTP networking with Dio and Retrofit including auth interceptors in Flutter. Use when integrating REST APIs with Dio or Retrofit.
SKILL.md
flutter-retrofit-networking.SKILL.mdname: flutter-retrofit-networking
description: Build type-safe HTTP networking with Dio and Retrofit including auth interceptors in Flutter. Use when integrating REST APIs with Dio or Retrofit.
metadata:
triggers:
files:
- '**/data_sources/**'
- '**/api/**'
keywords:
- Retrofit
- Dio
- RestClient
- GET
- POST
- Interceptor
- refreshingRetrofit & Dio Networking
**Priority: P0 (CRITICAL)**
Structure
infrastructure/
├── data_sources/
│ ├── remote/ # Retrofit abstract classes
│ └── local/ # Cache/Storage
└── network/
├── dio_client.dart # Custom Dio setup
└── interceptors/ # Auth, Logging, CacheImplementation Workflow
1. **Define Retrofit clients** — Create abstract classes with `@RestApi()` and HTTP annotations (`@GET`, `@POST`). Methods return `Future<DTO>`. 2. **Create DTOs** — Use `@freezed` and `@JsonSerializable` for all request/response bodies. 3. **Map to domain** — Data sources must map DTOs to Domain Entities (e.g., `userDto.toDomain()`). 4. **Guard enums** — Always use `@JsonKey(unknownEnumValue: Status.unknown)` to prevent crashes from new backend values. 5. **Add auth interceptor** — Inject `Authorization: Bearer <token>` in `onRequest`. 6. **Handle token refresh** — On 401, lock Dio, call `refreshToken()`, update stored token, retry via `dio.fetch(err.requestOptions)`. 7. **Map failures** — Convert `DioException` to typed `Failure` objects (ServerFailure, NetworkFailure).
Retrofit Client & Safe Enum DTO Examples
See [implementation examples](references/implementation.md) for RestClient definitions and safe enum DTO patterns.
Anti-Patterns
- **No Manual JSON Parsing**: Use Retrofit's generated mappers instead of `jsonDecode`
- **No Global Dio Instances**: Inject `Dio` through DI
- **No Inline Try-Catch**: repository layer should handle all Retrofit exceptions
- **No Unguarded Enums**: Always include `unknownEnumValue` to prevent crashes on new backend values
Reference & Examples
For RestClient definitions and Auth Interceptor implementation: See [references/REFERENCE.md](references/REFERENCE.md).
Related Topics
feature-based-clean-architecture | error-handling
Read more
name: flutter-retrofit-networking
description: Build type-safe HTTP networking with Dio and Retrofit including auth interceptors in Flutter. Use when integrating REST APIs with Dio or Retrofit.
metadata:
triggers:
files:
- '**/data_sources/**'
- '**/api/**'
keywords:
- Retrofit
- Dio
- RestClient
- GET
- POST
- Interceptor
- refreshingRetrofit & Dio Networking
**Priority: P0 (CRITICAL)**
Structure
infrastructure/
├── data_sources/
│ ├── remote/ # Retrofit abstract classes
│ └── local/ # Cache/Storage
└── network/
├── dio_client.dart # Custom Dio setup
└── interceptors/ # Auth, Logging, CacheImplementation Workflow
1. **Define Retrofit clients** — Create abstract classes with `@RestApi()` and HTTP annotations (`@GET`, `@POST`). Methods return `Future<DTO>`. 2. **Create DTOs** — Use `@freezed` and `@JsonSerializable` for all request/response bodies. 3. **Map to domain** — Data sources must map DTOs to Domain Entities (e.g., `userDto.toDomain()`). 4. **Guard enums** — Always use `@JsonKey(unknownEnumValue: Status.unknown)` to prevent crashes from new backend values. 5. **Add auth interceptor** — Inject `Authorization: Bearer <token>` in `onRequest`. 6. **Handle token refresh** — On 401, lock Dio, call `refreshToken()`, update stored token, retry via `dio.fetch(err.requestOptions)`. 7. **Map failures** — Convert `DioException` to typed `Failure` objects (ServerFailure, NetworkFailure).
Retrofit Client & Safe Enum DTO Examples
See [implementation examples](references/implementation.md) for RestClient definitions and safe enum DTO patterns.
Anti-Patterns
- **No Manual JSON Parsing**: Use Retrofit's generated mappers instead of `jsonDecode`
- **No Global Dio Instances**: Inject `Dio` through DI
- **No Inline Try-Catch**: repository layer should handle all Retrofit exceptions
- **No Unguarded Enums**: Always include `unknownEnumValue` to prevent crashes on new backend values
Reference & Examples
For RestClient definitions and Auth Interceptor implementation: See [references/REFERENCE.md](references/REFERENCE.md).
Related Topics
feature-based-clean-architecture | error-handling
The portable SDLC standards layer for AI coding agents. Sync once, then work in your own runtime.
Repo: hoangnguyen0403/agent-skills-standard
Other skills on agent-skills-standard.
- /android-agp-upgrade
Upgrade an Android project to Android Gradle Plugin (AGP) 9. Use when migrating to AGP 9, updating Gradle build files, migrating to built-in Kotlin, or adopting the new AGP DSL.
Open skill - /android-architecture
Apply Clean Architecture layering, modularization, and Unidirectional Data Flow in Android projects. Use when setting up project structure, placing code in layers, configuring feature/core modules, or implementing UDF patterns; defer Compose state and ViewModel/StateFlow
Open skill - /android-background-work
Implement WorkManager and background processing correctly on Android. Use when creating Worker classes, scheduling tasks, choosing between WorkManager and Foreground Services, or setting up Hilt in workers; defer FCM and notification delivery to android-notifications.
Open skill - /android-compose-migration
Migrate an Android XML View to Jetpack Compose following a structured 10-step workflow. Use when converting XML layouts to Compose, setting up Compose in an existing View-based project, or incrementally adopting Compose.
Open skill - /android-compose
Build high-performance declarative UI with Jetpack Compose. Use when writing Composable functions, optimizing recomposition, hoisting state, or working with LazyColumn and side effects; defer deep-link and navigation routing to android-navigation.
Open skill - /android-concurrency
Write correct coroutine scopes, lifecycle collection, and dispatcher injection in Android production code. Use for suspend functions, coroutine scopes, and dispatcher mechanics; defer ViewModel StateFlow/LiveData architecture, Fragment lifecycle recipes,
Open skill

