スキル一覧に戻る
HoangNguyen0403

flutter-navigator-v1-imperative

by HoangNguyen0403

flutter-navigator-v1-imperativeは、other分野における実用的なスキルです。複雑な課題への対応力を強化し、業務効率と成果の質を改善します。

111🍴 40📅 2026年1月23日
GitHubで見るManusで実行

SKILL.md


name: Flutter Navigator v1 (Imperative) description: Standard Flutter navigation using Navigator 1.0 (push/pop). metadata: labels: [navigation, navigator, flutter-core] triggers: files: ['**/app.dart'] keywords: [Navigator, push, pop, MaterialPageRoute, onGenerateRoute]

Navigator v1 Navigation

Priority: P0 (CRITICAL)

Standard imperative navigation system built into Flutter using Navigator and MaterialPageRoute.

Implementation Guidelines

  • Standard Push: Use Navigator.of(context).push(MaterialPageRoute(builder: (_) => Screen())).
  • Named Routes: Define routes map in MaterialApp or use onGenerateRoute for dynamic routing.
  • Passing Arguments:
    • For named routes: Use Navigator.pushNamed(context, '/path', arguments: data).
    • For onGenerateRoute: Extract arguments using settings.arguments.
  • Returning Data: final result = await Navigator.push(...) and Navigator.pop(context, data).
  • Replacing Screens: Use pushReplacement or pushAndRemoveUntil for auth/splash flows.

Code Example

// Basic Push
Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => const DetailScreen()),
);

// Named Routes Configuration
MaterialApp(
  initialRoute: '/',
  onGenerateRoute: (settings) {
    if (settings.name == '/details') {
      final args = settings.arguments as Map;
      return MaterialPageRoute(
        builder: (context) => DetailScreen(id: args['id']),
      );
    }
    return null;
  },
);

// Navigation with Arguments
Navigator.pushNamed(
  context,
  '/details',
  arguments: {'id': 123},
);

Anti-Patterns

  • Deep Nesting: Avoid anonymous routes for complex apps; use onGenerateRoute.
  • Manual String Paths: Always use constants for route names.
  • Context Leaks: Ensure BuildContext is valid when calling Navigator.of(context). Use ScaffoldMessenger or global keys if navigation is needed outside build.

Reference & Examples

For centralized onGenerateRoute implementation: See references/on-generate-route.md.

idiomatic-flutter | widgets

スコア

総合スコア

85/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

+5
最近の活動

3ヶ月以内に更新

+5
フォーク

10回以上フォークされている

+5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

レビュー

💬

レビュー機能は近日公開予定です