パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v2.0.5

fluro

Fluro は、ワイルドカード、名前付きパラメータ、明確なルート定義などの柔軟なルーティングオプションを追加する、null安全なFlutterルーティングライブラリです。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
2.3万
いいね数
891
Pub ポイント
150

パッケージをインストール

flutter pub add fluro

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Fluroは、柔軟なルート構成を備えたnull安全なFlutterルーティングライブラリで、ナビゲーションを簡素化することを目的としています。ワイルドカード、名前付きパラメータ、明示的なルート定義をサポートしており、複数のプラットフォーム間で複雑なナビゲーションフローを簡単に管理できます。動的ルーティングパターンを必要とするアプリに最適で、コードの読みやすさと保守性を向上させます。軽量な設計とAndroid、iOS、Web、macOS、Windows、Linuxとの互換性により、現代のFlutterアプリケーションにとって汎用的な選択肢です。

用途

  • 動的ルートを備えた複雑なナビゲーション
  • パラメータ化されたURLルーティング
  • クロスプラットフォームアプリナビゲーション
  • モジュラーアプリケーションアーキテクチャ
  • ディープリンクのサポート
  • ルートロジックの明確な分離

主な機能

  • ワイルドカードルートマッチング
  • 名前付きパラメータのサポート
  • 宣言的ルート定義
  • ヌルセーフ API
  • 軽量でパフォーマンスに優れる
  • Platform-agnostic

適している対象

  • 高度なルーティングが必要な開発者
  • ディープリンク要件を備えたアプリ
  • 大規模なFlutterプロジェクト
  • クリーンなコード構造を重視するチーム
  • 複数のプラットフォームをターゲットにするプロジェクト

注意事項

  • 手動でのルート登録が必要です
  • 限定された組み込みナビゲーション状態管理
  • 基本的なナビゲーターよりも学習曲線が急峻
  • 積極的にメンテナンスされていない(最終更新 2021)
  • コミュニティのサポートは主にGitHubの問題を通じて

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

English | Português



The brightest, hippest, coolest router for Flutter.

Version Build Status

Features

  • Simple route navigation
  • Function handlers (map to a function instead of a route)
  • Wildcard parameter matching
  • Querystring parameter parsing
  • Common transitions built-in
  • Simple custom transition creation
  • Follows stable Flutter channel
  • Null-safety

Example Project

There is a pretty sweet example project in the example folder. Check it out. Otherwise, keep reading to get up and running.

Getting started

First, you should define a new FluroRouter object by initializing it as such:

final router = FluroRouter();

It may be convenient for you to store the router globally/statically so that you can access the router in other areas in your application.

After instantiating the router, you will need to define your routes and your route handlers:

var usersHandler = Handler(handlerFunc: (BuildContext context, Map<String, dynamic> params) {
  return UsersScreen(params["id"][0]);
});

void defineRoutes(FluroRouter router) {
  router.define("/users/:id", handler: usersHandler);

  // it is also possible to define the route transition to use
  // router.define("users/:id", handler: usersHandler, transitionType: TransitionType.inFromLeft);
}

In the above example, the router will intercept a route such as /users/1234 and route the application to the UsersScreen passing the value 1234 as a parameter to that screen.

Navigating

You can use FluroRouter with the MaterialApp.onGenerateRoute parameter via FluroRouter.generator. To do so, pass the function reference to the onGenerate parameter like: onGenerateRoute: router.generator.

You can then use Navigator.push and the flutter routing mechanism will match the routes for you.

You can also manually push to a route yourself. To do so:

router.navigateTo(context, "/users/1234", transition: TransitionType.fadeIn);

Class arguments

Don't want to use strings for params? No worries.

After pushing a route with a custom RouteSettings you can use the BuildContext.settings extension to extract the settings. Typically this would be done in Handler.handlerFunc so you can pass RouteSettings.arguments to your screen widgets.

/// Push a route with custom RouteSettings if you don't want to use path params
FluroRouter.appRouter.navigateTo(
  context,
  'home',
  routeSettings: RouteSettings(
    arguments: MyArgumentsDataClass('foo!'),
  ),
);

/// Extract the arguments using [BuildContext.settings.arguments] or [BuildContext.arguments] for short
var homeHandler = Handler(
  handlerFunc: (context, params) {
    final args = context.settings.arguments as MyArgumentsDataClass;

    return HomeComponent(args);
  },
);

カテゴリー

ソースリポジトリ

このパッケージを使用しているプロジェクト