smithery/ngxtm

Flutter GetX Navigation

Context-less navigation, named routes, and middleware using GetX.

Installation

$ npx skills add smithery/ngxtm --skill flutter-getx-navigation

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/ngxtm · top by installs.

npx skills add smithery/ngxtm

Browse all from smithery/ngxtm

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

More metadata
labels
["navigation","getx","routing","middleware"]
triggers
{"files":["**\/app_pages.dart","**\/app_routes.dart"],"keywords":["GetPage","Get.to","Get.off","Get.offAll","Get.toNamed","GetMiddleware"]}

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,260 B
  • docs SUMMARY.md 96 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

GetX Navigation

Priority: P0 (CRITICAL)

Decoupled navigation system allowing UI transitions without BuildContext.

Implementation Guidelines

  • Prefer Named Routes: Use Get.toNamed('/path') for better maintainability. Define routes in a centralized AppPages class.
  • No Context Navigation: Leverage Get.to(), Get.back(), etc., directly from controllers.
  • Navigation Methods:

- Get.to(): Navigate to next screen. - Get.off(): Navigate and replace current screen (e.g., Splash -> Home). - Get.offAll(): Clear stack and navigate (e.g., Logout -> Login). - Get.back(): Close current screen, dialog, or bottom sheet.

  • Bindings Everywhere: Always link routes with Bindings to manage controller lifecycles.
  • Middleware: Use GetMiddleware for route guards (Auth, Permissions) instead of logic inside views.

Code Example

// Route Definition
static final routes = [
  GetPage(
    name: _Paths.HOME,
    page: () => HomeView(),
    binding: HomeBinding(),
    middlewares: [AuthMiddleware()],
  ),
];

// Usage in Controller
void logout() {
  _authService.clear();
  Get.offAllNamed(Routes.LOGIN);
}

// Route Guard
class AuthMiddleware extends GetMiddleware {
  @override
  RouteSettings? redirect(String? route) {
    return isAuthenticated ? null : RouteSettings(name: Routes.LOGIN);
  }
}

Anti-Patterns

  • Mixing Context and GetX: Do not use Navigator.of(context) when GetX is the primary router.
  • Hardcoded Strings: Always use a Routes constant class for names.
  • Dialogs without GetX: Use Get.dialog() and Get.snackbar() for consistency.

Reference & Examples

For centralized route configuration and middleware guards: See [references/app-pages.md](references/app-pages.md) and [references/middleware-example.md](references/middleware-example.md).

Related Topics

getx-state-management | feature-based-clean-architecture