flutter/flutter-routing-and-navigation

Naviguer entre différentes vues ou créer des liens profonds vers des écrans ou routes dans une application Flutter.

Qu'est-ce que flutter-routing-and-navigation ?

Cette compétence spécialisée pour les agents IA (comme Claude Code, Cursor, Codex) facilite la gestion de la navigation et du routage dans les applications Flutter. Elle permet de se déplacer entre différents écrans ou routes, ainsi que de mettre en place des liens profonds (deep links) pour accéder directement à des parties spécifiques de l'application. Elle s'appuie sur les mécanismes natifs de Flutter (Navigator, onGenerateRoute) et est compatible avec des approches déclaratives (Router, GoRouter) ou impératives (Navigator.push). L'agent peut ainsi suggérer ou générer du code de navigation structuré, configurer des routes nommées, gérer les arguments de passage entre écrans, ou encore implémenter des deep links pour le référencement et le partage de contenus. Cette compétence est utile pour tout développeur souhaitant accélérer l'implémentation de la navigation dans une application Flutter, en s'appuyant sur l'IA pour éviter les erreurs courantes et respecter les bonnes pratiques.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flutter/skills/tree/main/skills/flutter-routing-and-navigation

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait flutter-routing-and-navigation ?

Naviguer entre différentes vues ou créer des liens profonds vers des écrans ou routes dans une application Flutter.

Description

Cette compétence permet à un agent IA de gérer la navigation et le routage dans une application Flutter. Elle couvre :

  • La navigation entre les écrans (routes) avec Navigator.push / Navigator.pop.
  • La configuration de routes nommées via onGenerateRoute ou routes dans MaterialApp.
  • La mise en place de liens profonds (deep links) pour accéder à des écrans spécifiques depuis des URLs.
  • L'utilisation de packages populaires comme go_router ou auto_route pour un routage déclaratif.

L'agent peut générer du code de navigation, recommander des structures de routage, ou corriger des erreurs de navigation courantes.

Utilisation

Exemple 1 : Navigation simple avec Navigator

// Aller vers un nouvel écran
Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => const SecondScreen()),
);

// Revenir à l'écran précédent
Navigator.pop(context);

Exemple 2 : Routes nommées

MaterialApp(
  initialRoute: '/',
  routes: {
    '/': (context) => const HomeScreen(),
    '/details': (context) => const DetailsScreen(),
  },
);

Exemple 3 : Deep links avec go_router

final router = GoRouter(
  initialLocation: '/',
  routes: [
    GoRoute(path: '/', builder: (context, state) => const HomePage()),
    GoRoute(
      path: '/details/:id',
      builder: (context, state) => DetailsPage(id: state.pathParameters['id']!),
    ),
  ],
);

MaterialApp.router(routerConfig: router);

Configuration des liens profonds

Pour activer les deep links sur Android, configurez le fichier AndroidManifest.xml :

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="https" android:host="www.example.com" />
</intent-filter>

Sur iOS, ajoutez une entrée dans le fichier Info.plist :

<key>FlutterDeepLinkingEnabled</key>
<true/>

Bonnes pratiques

  • Utilisez Navigator 2.0 (Router API) pour des cas complexes nécessitant une navigation déclarative ou des deep links.
  • Préférez go_router pour une solution déclarative simple et maintenable.
  • Évitez les Navigator.push sans gestion de route ; préférez des routes nommées ou des GoRoute.
  • Pour passer des arguments à un écran, utilisez les routeSettings ou les paramètres de route de go_router.

Références

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

flutter/flutter-accessibility

Configure your Flutter app to support assistive technologies like Screen Readers

flutter/flutter-accessibility-audit

Triggers an accessibility scan through the widget_inspector and automatically adds Semantics widgets or missing labels to the source code.

flutter/flutter-adding-home-screen-widgets

Adds home screen widgets to a Flutter app for Android and iOS. Use when providing glanceable app information or quick actions on the device home screen.

flutter/flutter-add-integration-test

Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests. Use when adding integration testing to a project, exploring UI components via MCP, or automating user flows with the integration_test package.

flutter/flutter-add-widget-preview

Adds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consistent design and interactive testing.

flutter/flutter-add-widget-test

Implement a component-level test using `WidgetTester` to verify UI rendering and user interactions (tapping, scrolling, entering text). Use when validating that a specific widget displays correct data and responds to events as expected.

flutter/flutter-animating-apps

Implements animated effects, transitions, and motion in a Flutter app. Use when adding visual feedback, shared element transitions, or physics-based animations.

flutter/flutter-animation

Add animated effects to your Flutter app

flutter/flutter-apply-architecture-best-practices

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-app-size

Measure and reduce the size of the Flutter app bundle, APK, or IPA

flutter/flutter-architecting-apps

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-architecture

Use the Flutter team's recommended app architecture

flutter/flutter-building-forms

Builds Flutter forms with validation and user input handling. Use when creating login screens, data entry forms, or any multi-field user input.

flutter/flutter-building-layouts

Builds Flutter layouts using the constraint system and layout widgets. Use when creating or refining the UI structure of a Flutter application.

flutter/flutter-building-plugins

Builds Flutter plugins that provide native interop for other apps to use. Use when creating reusable packages that bridge Flutter with platform-specific functionality.

flutter/flutter-build-responsive-layout

Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. Use when you need the UI to look good on both mobile and tablet/desktop form factors.

flutter/flutter-caching

Cache data in a Flutter app

flutter/flutter-caching-data

Implements caching strategies for Flutter apps to improve performance and offline support. Use when retaining app data locally to reduce network requests or speed up startup.

flutter/flutter-concurrency

Execute long-running tasks in a background thread in Flutter

flutter/flutter-databases

Work with databases in a Flutter app

Skills associés