โ† Back to list
Who-Visions

flutter-vibe

by Who-Visions

๐ŸŒ™ AI-powered creative intelligence system for worldbuilding, content generation & web research | Powered by Gemini 3 & Vertex AI | FastAPI server with smart routing, memory systems & Notion integration

โญ 1๐Ÿด 0๐Ÿ“… Jan 24, 2026

SKILL.md


name: flutter_vibe description: Generate premium, production-ready Flutter apps with Vibe-Coded standards (Riverpod, GoRouter, Material 3) backed by deep Flutter internals knowledge.

Flutter Vibe Skill

This skill provides a "Vibe-Coded" foundation for building premium Flutter applications. It enforces modern best practices, including Riverpod for state management, GoRouter for navigation, and a deep-space aesthetic by default.

[!NOTE] This skill is backed by deep knowledge from the Flutter Engine source and official internal docs, enabling precise guidance on performance, platform integration, and rendering.


1. Vibe Engine (The Aesthetic)

The "Vibe Engine" is a philosophy: high-contrast, deep-space palettes with neon accents and fluid animations.

Color Palette (Deep Space)

TokenValueUsage
vibePrimary#6C63FFElectric Violet - buttons, accents
vibeSecondary#00E5FFCyan Neon - highlights, links
vibeSurface#121212Deep Matte - cards, dialogs
vibeBackground#050505Void Black - scaffolds
vibeError#FF5252Neon Red - errors
vibeSuccess#00E676Neon Green - confirmations

Typography

  • Headings: Outfit or Space Grotesk (Bold, letter-spacing: -0.5)
  • Body: Inter or Roboto (Clean, readable)

Animations

const vibeCurve = Curves.fastOutSlowIn;
const vibeQuickDuration = Duration(milliseconds: 200);
const vibeStandardDuration = Duration(milliseconds: 300);

2. Architecture (Feature-First)

lib/
โ”œโ”€โ”€ core/
โ”‚   โ”œโ”€โ”€ constants/       # VibeColors, VibeDimens
โ”‚   โ”œโ”€โ”€ theme/           # VibeTheme (Material 3)
โ”‚   โ”œโ”€โ”€ router/          # GoRouter configuration
โ”‚   โ””โ”€โ”€ utils/           # Helpers
โ”œโ”€โ”€ features/
โ”‚   โ””โ”€โ”€ [feature]/
โ”‚       โ”œโ”€โ”€ data/        # Repositories & DTOs
โ”‚       โ”œโ”€โ”€ domain/      # Entities (freezed)
โ”‚       โ””โ”€โ”€ presentation/
โ”‚           โ”œโ”€โ”€ providers/   # Riverpod Notifiers
โ”‚           โ””โ”€โ”€ screens/     # Screens & Widgets
โ”œโ”€โ”€ shared/              # VibeButton, VibeCard, etc.
โ””โ”€โ”€ main.dart            # ProviderScope + VibeApp

3. Actions

scaffold_app

Generate complete app structure with theme, router, and home screen.

generate_widget

Generate premium widgets with animations and theme integration.

generate_feature

Generate full feature slice: domain โ†’ data โ†’ presentation.

generate_screen

Generate a screen with state management (HooksConsumerWidget).

explain_code

Mentor-style analysis with Vibe standards verification.

review_code

Compliance score (0-100) with specific fixes.


4. Core Templates

Main Entry Point

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'core/router/app_router.dart';
import 'core/theme/vibe_theme.dart';

void main() {
  runApp(const ProviderScope(child: VibeApp()));
}

class VibeApp extends ConsumerWidget {
  const VibeApp({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    return MaterialApp.router(
      title: 'Vibe App',
      theme: VibeTheme.dark(),
      routerConfig: ref.watch(routerProvider),
      debugShowCheckedModeBanner: false,
    );
  }
}

Riverpod Notifier Pattern

import 'package:flutter_riverpod/flutter_riverpod.dart';

@freezed
class FeatureState with _$FeatureState {
  const factory FeatureState({
    @Default(false) bool isLoading,
    String? error,
  }) = _FeatureState;
}

final featureProvider = NotifierProvider<FeatureNotifier, FeatureState>(
  FeatureNotifier.new,
);

class FeatureNotifier extends Notifier<FeatureState> {
  @override
  FeatureState build() => const FeatureState();

  Future<void> load() async {
    state = state.copyWith(isLoading: true);
    // ... fetch data ...
    state = state.copyWith(isLoading: false);
  }
}

5. Flutter Engine Internals

[!TIP] Understanding engine internals helps write performant code.

Life of a Frame

  1. RequestFrame โ†’ Frame scheduled via PlatformDispatcher.scheduleFrame
  2. VSync โ†’ Wait for OS vsync signal
  3. BeginFrame โ†’ Framework builds widget tree โ†’ Scene
  4. Rasterization โ†’ LayerTree converted to pixels on Raster thread
  5. Present โ†’ Surface submitted to GPU via Metal/Vulkan/OpenGL

Key Insight: The warm-up frame (scheduleWarmUpFrame) pre-builds layouts before the first vsync, reducing first-frame jank.

Compilation Modes

ModeDescriptionUse Case
DebugAll assertions, debugger aids, script snapshotDevelopment
ProfileRelease + tracing/overlay enabledPerformance testing
ReleaseStripped, optimized AOT, no debug infoProduction

Graphics Backends (Platform-specific)

  • iOS: Metal (default), Impeller
  • Android: Vulkan (default), OpenGL, Impeller
  • Desktop: OpenGL, Software, Vulkan (via MoltenVK on macOS)

6. Platform Views (Android)

Three approaches for embedding native Android Views:

ModeBest ForSDKThread
Virtual Display (VD)Simple views20+Raster
Hybrid Composition (HC)Full compatibility19+Platform
Texture Layer HC (TLHC)Performance + compatibility23+Raster
// Prefer TLHC (falls back to VD on older SDK)
PlatformViewsService.initAndroidView(
  id: viewId,
  viewType: 'my-view-type',
  layoutDirection: TextDirection.ltr,
);

// For SurfaceView content (maps, video), use HC
PlatformViewsService.initExpensiveAndroidView(...);

7. Flutter GPU (Impeller)

[!WARNING] Flutter GPU is experimental and requires Impeller + master channel.

Low-level graphics API for custom renderers in pure Dart + GLSL.

dependencies:
  flutter_gpu:
    sdk: flutter

Use Cases: Custom 3D renderers, game engines, specialized visualizations.


8. Platform Channels

MethodChannel (Dart โ†” Native)

// Dart
const channel = MethodChannel('com.vibe/native');
final result = await channel.invokeMethod<int>('getBattery');

// Android (Kotlin)
MethodChannel(flutterEngine.dartExecutor, "com.vibe/native")
  .setMethodCallHandler { call, result ->
    when (call.method) {
      "getBattery" -> result.success(getBatteryLevel())
    }
  }

Android Engine Warm Start

Pre-warm the Flutter engine to avoid cold boot delays:

// Application class
val engine = FlutterEngine(this).apply {
  dartExecutor.executeDartEntrypoint(DartEntrypoint.createDefault())
}
FlutterEngineCache.getInstance().put("main", engine)

// Activity launch
startActivity(FlutterActivity.withCachedEngine("main").build(this))

9. Rules of the Vibe

  1. No setState โ†’ Use Riverpod Notifiers or hooks
  2. Const Everything โ†’ Maximize widget reuse
  3. Animate Entrances โ†’ FadeTransition/SlideTransition on screens
  4. Dark by Default โ†’ Light mode is optional
  5. Blur & Glass โ†’ BackdropFilter for premium surfaces
  6. Clean Layers โ†’ No API calls in widgets; use repositories

10. Dependencies

dependencies:
  flutter_riverpod: ^2.6.0
  hooks_riverpod: ^2.6.0
  flutter_hooks: ^0.20.0
  go_router: ^15.0.0
  google_fonts: ^6.0.0
  freezed_annotation: ^2.4.0
  flutter_animate: ^4.5.0

dev_dependencies:
  freezed: ^2.5.0
  build_runner: ^2.4.0

11. Resources

Deep knowledge extracted from Flutter Engine docs and community best practices:

ResourceDescription
Widget FundamentalsComplete widget catalog: Material 3, Cupertino, layouts, animations, desktop UI
Layout TutorialStep-by-step guide to building Flutter layouts
Interactivity TutorialManaging state, gestures, and interactive widgets

12. State Management

State management is the discipline of managing the data that allows your app to function and react to user input.

Overview

  • Ephemeral State: Local state (e.g., setState, pageController). Use for single widgets.
  • App State: Shared state across many parts of the app (e.g., user authentication, shopping cart).

Built-in Approaches

  • setState: Good for ephemeral state. Rebuilds the widget subtree.
  • InheritedWidget / InheritedModel: Low-level method for passing data down the tree. Efficient but verbose.
  • ValueNotifier / InheritedNotifier: Simple reactive programming using listeners.

Vibe Standard: Riverpod

We strictly use Riverpod for application state in flutter_vibe projects.

  • Compile-safe: Catch errors at compile time, not runtime.
  • No BuildContext dependency: Read providers anywhere.
  • Testing: easy to mock and override.

Key Packages:

  • flutter_riverpod
  • hooks_riverpod
  • riverpod_annotation

Score

Total Score

65/100

Based on repository quality metrics

โœ“SKILL.md

SKILL.mdใƒ•ใ‚กใ‚คใƒซใŒๅซใพใ‚Œใฆใ„ใ‚‹

+20
โ—‹LICENSE

ใƒฉใ‚คใ‚ปใƒณใ‚นใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹

0/10
โœ“่ชฌๆ˜Žๆ–‡

100ๆ–‡ๅญ—ไปฅไธŠใฎ่ชฌๆ˜ŽใŒใ‚ใ‚‹

+10
โ—‹ไบบๆฐ—

GitHub Stars 100ไปฅไธŠ

0/15
โœ“ๆœ€่ฟ‘ใฎๆดปๅ‹•

1ใƒถๆœˆไปฅๅ†…ใซๆ›ดๆ–ฐ

+10
โ—‹ใƒ•ใ‚ฉใƒผใ‚ฏ

10ๅ›žไปฅไธŠใƒ•ใ‚ฉใƒผใ‚ฏใ•ใ‚Œใฆใ„ใ‚‹

0/5
โœ“Issue็ฎก็†

ใ‚ชใƒผใƒ—ใƒณIssueใŒ50ๆœชๆบ€

+5
โœ“่จ€่ชž

ใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐ่จ€่ชžใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹

+5
โœ“ใ‚ฟใ‚ฐ

1ใคไปฅไธŠใฎใ‚ฟใ‚ฐใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใ‚‹

+5

Reviews

๐Ÿ’ฌ

Reviews coming soon