Go to file
Luke a0776a51ce updates to the example project 2018-03-23 08:53:23 -07:00
.vscode updates to the example project 2018-03-23 08:53:23 -07:00
example updates to the example project 2018-03-23 08:53:23 -07:00
lib fix return type for router.generator 2018-03-23 10:43:27 +01:00
scripts change permissions on setup script 2017-05-05 23:24:40 -07:00
test updates parameters to be of type Map<String, List<String>> 2018-02-02 15:38:46 -05:00
.gitignore rename. add example project 2017-05-13 21:28:28 -07:00
.travis.yml add code coverage to CI. add codecov badge 2017-05-06 00:05:45 -07:00
CHANGELOG.md bump version to 1.3.0 because of breaking change 2018-03-12 19:43:19 -07:00
LICENSE license updates 2017-05-13 22:01:02 -07:00
README.md Update README.md 2018-03-16 23:37:43 +08:00
pubspec.yaml add sdk requirements to pubspec 2018-03-12 19:49:05 -07:00

README.md



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.

dependencies:
 fluro: "^1.3.0"

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

dependencies:
 fluro:
   git: git://github.com/goposse/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 = new 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 = new Handler(handlerFunc: (BuildContext context, Map<String, dynamic> params) {
  return new UsersScreen(params["id"][0]);
});

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

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 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 Posse Production.