Orientação gerada a partir de informações públicas. Apenas para referência.
RouteFly é um pacote de gerenciamento de rotas baseado em pastas para Flutter, inspirado no Next.js, projetado para simplificar a navegação em aplicativos Flutter. Ele gera automaticamente rotas a partir de uma estrutura de pastas definida, reduzindo o código repetitivo e melhorando a organização do código. Desenvolvido pela comunidade Flutterando, suporta todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux. O RouteFly aumenta a produtividade dos desenvolvedores ao permitir roteamento intuitivo e escalável sem a necessidade de registro manual de rotas.
Casos de uso
Geração automática de rota a partir da estrutura de pasta
Simplificando a navegação em grandes aplicativos Flutter
Habilitar a separação limpa da lógica de rota
Suporte a projetos Flutter multiplataforma
Simplificando a gestão de rotas em ambientes de equipe
Principais recursos
definição de rota baseada em pasta
Geração automática de rotas
Boilerplate mínimo
Suporte multiplataforma
Integração com o ecossistema Flutterando
Indicado para
Desenvolvedores usando estruturas de projeto baseadas em pastas
Equipes procurando soluções escaláveis de roteamento
Projetos com o objetivo de reduzir a configuração manual de rotas
Desenvolvedores Flutter familiarizados com as convenções do Next.js
Aplicativos direcionados a múltiplas plataformas
Considerações
Requer o cumprimento de convenções específicas de nomeação de pastas
Pode ser necessário configurar parâmetros de rota complexos
Mais adequado para projetos com layouts de diretório estruturados
Personalização limitada em comparação com configurações manuais de rota
Dependente dos mantenedores do Flutterando para atualizações
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
Routefly
Routefly is a folder-based route manager inspired by NextJS and created by the Flutterando community. It allows you to automatically create routes in your Flutter app by simply organizing your code files within specific directories. When a file is added to the "pages" directory, it's automatically available as a route. Just add the appropriate folder structure inside the "lib/app" folder.
Example:
Sponsors
Installation and Initialization
To get started with Routefly, follow these steps:
Add the Routefly package to your Flutter project:
flutter pub add routefly
You will need to add the @Main() annotation to the main Widget (usually the one containing MaterialApp or CupertinoApp). After adding the necessary imports and parts, the code will be ready to generate the routes.
It is also necessary to use Navigator 2.0, accessed through the MaterialApp.router or CupertinoApp.router constructor, adding the custom routerConfig from Routefly:
Run this command every time you create a new folder with a page to generate the routes again. You can also use the --watch flag to automatically generate routes when adding a new page to a folder.
Route Groups
In the app directory, nested folders are normally mapped to URL paths. However, you can mark a folder as a Route Group to prevent the folder from being included in the route's URL path.
This allows you to organize your route segments and project files into logical groups without affecting the URL path structure.
A route group can be created by wrapping a folder's name in parenthesis: (folderName)
Routefly.navigate('path'): Replaces the entire route stack with the requested path. Routefly.pushNavigate('path'): Adds a new route on top of the existing stack. Routefly.push('path'): Adds a route to the route stack. Routefly.pop(): Removes the top route from the route stack. Routefly.replace('path'): Replaces the last route in the stack with the requested path.
You can use RELATIVE PATH also;
It is also possible to access routes using Record routePaths which replaces the strings
which represent the path by an object notation.
Dynamic Routes allow you to create routes from dynamic data. You can use dynamic segments enclosed in brackets, such as [id] or [slugs]. For example:
Create a page using a dynamic segment: lib/app/users/[id]/user_page.dart. This generates the route path /users/[id].
Use navigation commands to replace the dynamic segment, like Routefly.push('/users/2').
Access the dynamic parameter (id) on the page using Routefly.query['id'].
You can also access segment parameters using Routefly.query.params, e.g., Routefly.query.params['search'] for /product?search=Text.
Custom Transition
To create custom route transitions, define a routeBuilder function in your page file. This allows you to use custom transitions based on PageRouteBuilder. For example:
To create a layout, create the folder it will belong to and add a *_layout.dart file. The child folders must be inside the layout's parent folder.
In the Layout Widget, add RouterOutlet() wherever you prefer nested routes to appear.
ex:
RouterOutlet(),
Tip
If the error occurs:
EXCEPTION CAUGHT BY RENDERING LIBRARY
The following assertion was thrown during performResize().
This error usually occurs in lists, columns and rows when an element does not have a defined size. To fix it, you can use, for example, Expanded, Center or SizedBox. In this example, I chose to use Expanded.
When creating a route with name 404, it will be triggered when a page is not found.
Routefly gives the possibility to modify the default route for unfound pages.