accessibility
Use when working on accessibility, a11y, WCAG, ARIA, screen readers, keyboard nav, focus order, contrast, alt text, captions,…
Use when implementing feature flags, running A/B tests, setting parameter defaults, fetching/activating config, or enabling real-time config updates.
Claude Code
$ npx -y skills add evanca/flutter-ai-rules --skill firebase-remote-config --agent claude-code
Codex
$ npx skills add evanca/flutter-ai-rules --skill firebase-remote-config -a codex -y
Cursor
$ npx skills add evanca/flutter-ai-rules --skill firebase-remote-config -a cursor -y
Gemini CLI
$ npx skills add evanca/flutter-ai-rules --skill firebase-remote-config -a gemini-cli -y
GitHub Copilot
$ npx skills add evanca/flutter-ai-rules --skill firebase-remote-config -a github-copilot -y
OpenCode
$ npx skills add evanca/flutter-ai-rules --skill firebase-remote-config -a opencode -y
Windsurf
$ npx skills add evanca/flutter-ai-rules --skill firebase-remote-config -a windsurf -y
name: firebase-remote-config description: "Use when implementing feature flags, running A/B tests, setting parameter defaults, fetching/activating config, or enabling real-time config updates." license: MIT
This skill defines how to correctly use Firebase Remote Config in Flutter applications.
Use this skill when:
---
flutter pub add firebase_remote_config flutter pub add firebase_analytics # required for conditional targeting of app instances
import 'package:firebase_remote_config/firebase_remote_config.dart'; final remoteConfig = FirebaseRemoteConfig.instance;
**Configure settings:**
await remoteConfig.setConfigSettings(RemoteConfigSettings( fetchTimeout: const Duration(minutes: 1), minimumFetchInterval: const Duration(hours: 1), ));
---
**Set in-app defaults** (ensures the app behaves as intended before connecting to the backend):
await remoteConfig.setDefaults(const {
"feature_new_onboarding": false,
"max_retry_attempts": 3,
"welcome_message": "Hello, world!",
"promo_discount_pct": 0.0,
});**Read values with type-specific getters:**
final showNewOnboarding = remoteConfig.getBool("feature_new_onboarding");
final maxRetries = remoteConfig.getInt("max_retry_attempts");
final welcomeMsg = remoteConfig.getString("welcome_message");
final discount = remoteConfig.getDouble("promo_discount_pct");---
await remoteConfig.fetchAndActivate();
---
remoteConfig.onConfigUpdated.listen((event) async {
await remoteConfig.activate();
// event.updatedKeys contains the changed parameter names
if (event.updatedKeys.contains("feature_new_onboarding")) {
// Refresh UI based on the new value
}
});---
await remoteConfig.setConfigSettings(RemoteConfigSettings( fetchTimeout: const Duration(minutes: 1), minimumFetchInterval: const Duration(minutes: 5), ));
---
---
36 Flutter and Dart skills your coding agent loads by itself, sourced only from official documentation. A skill is a folder with a SKILL.md file.
Use when working on accessibility, a11y, WCAG, ARIA, screen readers, keyboard nav, focus order, contrast, alt text, captions,…
Use when creating a feature, designing folder structure, adding repositories/services/view models, wiring dependency injection,…
Use when creating a Cubit or Bloc, modeling state with sealed classes or status enums, wiring…
Use when asked to review a PR, MR, branch, or diff, audit changed files, or check code quality.
Use when writing switch statements, refactoring if-else chains, creating data classes, choosing records vs classes, destructuring…
Use when building AI agents in Dart, implementing Genkit flows or tools, integrating LLMs into Dart or Flutter applications, or…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.