flit_router 0.0.1 copy "flit_router: ^0.0.1" to clipboard
flit_router: ^0.0.1 copied to clipboard

A concise, cohesive, type-safe, web-aware router built on top of Flutter Navigator 2.0.

flit_router #

A concise, cohesive, type-safe, web-aware router built on top of Flutter Navigator 2.0, (hopefully) without losing the functionality and flexibility.

Example #

Example that implements this basic router example with package:flit_router.

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flit_router/flit_router.dart';

import 'routing.dart';

void main() {
  runApp(BooksApp());
}

class BooksApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _BooksAppState();
}

class _BooksAppState extends State<BooksApp> {
  @override
  Widget build(BuildContext context) {
    return FlitRootRouter(
      key: ValueKey('root'),
      routes: FlitRoutes(
        builder: () {
          return [
            FlitRoute(
              BooksPath.pattern,
              to: (_) => [BooksRouteController()],
            ),
            FlitRoute(
              BookPath.pattern,
              to: (match) => [
                BooksRouteController(),
                BookRouteController(
                    BookPath(id: match.matchedParameters[':id']!)),
              ],
            ),
            FlitRoute(
              '/',
              to: (_) => [BooksRouteController()],
            ),
          ];
        },
      ),
      appBuilder: (context, delegate, parser) {
        return MaterialApp.router(
          title: 'Books App',
          routerDelegate: delegate,
          routeInformationParser: parser,
        );
      },
    );
  }
}

The example.

TODO #

  • Add child router solution that can cooperate with ancestor routers.
  • Add hierarchal routing for more efficient route matching and aggregated validating.
  • Add validator (A.K.A. route guard) and some UI hook on validating.
  • Add trie pattern string builder.
  • Add some declarative "Link" widget for semantic linking that wraps a widget which calls imperative navigateTo API.
  • Add functionality for wrapping a navigator with a widget.
  • Add documentation and test code and examples.
    • example: dynamic adaptive (responsive) routing.
    • example: app with sign-in and auth validation required area.
    • example: Youtube clone for complex routing case.
    • example: Page transition animation (in particular, hero animation).
3
likes
30
pub points
0%
popularity

Publisher

verified publisherpolyflection.com

A concise, cohesive, type-safe, web-aware router built on top of Flutter Navigator 2.0.

Repository (GitHub)
View/report issues

License

BSD-3-Clause (LICENSE)

Dependencies

flutter, quiver, trie_router, tuple

More

Packages that depend on flit_router