— No reviews yet
0 installs
14 views
0.0% view→install
Install
$ agentstack add skill-aloisdeniel-skills-dev-flutter-patterns ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Are you the author of Dev Flutter Patterns? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claimAbout
Flutter Development Patterns
This skill provides common Flutter development patterns to be used when developping Flutter apps with Riverpod.
Use const widgets instances whenever possible
return const Padding(
padding: EdgeInsets.all(8.0),
child: Icon(Icons.star),
);
Provide unique keys to widget instances in lists
ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
final item = items[index];
return Tile(
key: ValueKey(item.id), // Unique key based on item ID
data: item,
);
},
);
Always prefix provider declarations with $
final $example = Provider((ref) {
return Example();
});
For providers which needs initialization, create two providers: $load and $name
final $loadExample = FutureProvider((ref) async {
// Async initialization logic
});
final $example = Provider((ref) {
final asyncValue = ref.watch($loadExample);
return switch (asyncValue) {
AsyncData(value) => value,
_ => throw Exception('Example is not initialized'),
}
Use AsyncValue for asynchronous loading states
class ExampleNotifier extends AsyncNotifier {
@override
Future build() async {
// Initial loading state
return fetchData();
}
Future refresh() async {
// Set loading state
state = const AsyncValue.loading();
try {
final data = await fetchData();
// Set data state
state = AsyncValue.data(data);
} catch (e, st) {
// Set error state
state = AsyncValue.error(e, st);
}
}
}
NEVER put hardcoded strings in the UI, create a ConsumerWidget and watch $l10n instead
class Example extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final l10n = ref.watch($l10n);
return Text(l10n.exampleHelloWorld);
}
}
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: aloisdeniel
- Source: aloisdeniel/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.