fluro 1.5.0

  • README.md
  • Example
  • Installing
  • Versions
  • 98

The brightest, hippest, coolest router for Flutter.

Version Build Status Coverage

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

Version compatability #

See CHANGELOG for all breaking (and non-breaking) changes.

Getting started #

You should ensure that you add the router as a dependency in your flutter project.

 fluro: "^1.5.0"

You can also reference the git repo directly if you want:

   git: git://github.com/theyakka/fluro.git

You should then run flutter packages upgrade or update your packages in IntelliJ.

Example Project #

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

Setting up #

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

final router = Router();

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(Router 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.

You can use the Router with the MaterialApp.onGenerateRoute parameter via the Router.generator function. 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);

Fluro is a Yakka original.

1.5.0 #

  • Native transitions will now use the Cupertino page route on iOS and Material page route on android. This will enable swipe gestures on iOS.
  • Added cupertino specific transition types.
  • You should not be using Cupertino types on non-iOS platforms. It's up to you, but it's bad design.

1.4.0 #

  • Added the ability to define a transition at the point of route definition. Route transitions are optional and any transition defined a "push" will override the route definition.

1.3.7 #

  • Add toString for custom RouteNotFoundException type

1.3.6 #

  • Small fix to error return type when no route match was made

1.3.5 #

  • add pop convenience
  • add clearStack flag so that you can clear the history when pushing a route

1.3.4 #

  • Change lower dart version to cater to older flutter versions

1.3.3 #

  • Fix analyzer issues
  • Remove deprecations in example code
  • Fix pubspec analysis issue

1.3.2 #

  • Dart 2 package (pubspec) compliance changes ONLY
  • Note: No functional changes

1.3.1 #

  • Fixes an issue with the route generator (result cannot be Null)

1.3.0 #

  • BREAKING: Parameters now return an array of results even if they have a single value.
  • Support for parameter arrays. e.g: /some/route?color=red&color=green&color=blue.
  • Results can now be passed via Navigator.pop via use of a Future.
  • A few bug fixes

1.1.0 #

BREAKING: In order to support function handlers you will need to change all of your route handler definitions to use the new Handler class. The RouteHandler definition has now been removed.

Swapping out the handlers should be as simple as changing:

RouteHandler usersHandler = (Map<String, String> params) {}


var usersHandler = new Handler(handlerFunc: (BuildContext context, Map<String, dynamic> params) {});


 * fluro
 * Created by Yakka
 * https://theyakka.com
 * Copyright (c) 2019 Yakka, LLC. All rights reserved.
 * See LICENSE for distribution and usage details.
import 'components/app/app_component.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(new AppComponent());

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  fluro: ^1.5.0

2. Install it

You can install packages from the command line:

with Flutter:

$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:fluro/fluro.dart';
Version Uploaded Documentation Archive
1.5.0 Jun 19, 2019 Go to the documentation of fluro 1.5.0 Download fluro 1.5.0 archive
1.4.0 Dec 21, 2018 Go to the documentation of fluro 1.4.0 Download fluro 1.4.0 archive
1.3.7 Oct 25, 2018 Go to the documentation of fluro 1.3.7 Download fluro 1.3.7 archive
1.3.6 Oct 25, 2018 Go to the documentation of fluro 1.3.6 Download fluro 1.3.6 archive
1.3.5 Oct 8, 2018 Go to the documentation of fluro 1.3.5 Download fluro 1.3.5 archive
1.3.4 Jul 31, 2018 Go to the documentation of fluro 1.3.4 Download fluro 1.3.4 archive
1.3.3 Jul 28, 2018 Go to the documentation of fluro 1.3.3 Download fluro 1.3.3 archive
1.3.2 Jul 27, 2018 Go to the documentation of fluro 1.3.2 Download fluro 1.3.2 archive
1.3.1 Mar 23, 2018 Go to the documentation of fluro 1.3.1 Download fluro 1.3.1 archive
1.3.0 Mar 13, 2018 Go to the documentation of fluro 1.3.0 Download fluro 1.3.0 archive

All 14 versions...

Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
Learn more about scoring.

We analyzed this package on Jun 19, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.3.2
  • pana: 0.12.18
  • Flutter: 1.5.4-hotfix.2


Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Maintenance issues and suggestions

Support latest dependencies. (-5 points)

The version constraint in pubspec.yaml does not support the latest published versions for 1 dependency.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11
meta 1.1.6 1.1.7
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
test ^1.6.0