Skip to content

Library Pages #339

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
May 28, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions docs/resources/projects/libraries.md
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,49 @@ You can easily upgrade to newer versions of the libraries as they become availab
![update-library](imgs/update-library.avif)


## Library Pages

You can add and manage entire pages within a library, making it easy to reuse those pages across multiple projects. These pages function like any regular page in your app; they support navigation, parameters, state management, and transitions.

Publishing pages with libraries offers a modular approach to development, making it ideal for large teams and complex, multi-feature apps. For example, instead of recreating common flows, like onboarding and payments flow, you can build them once in a library and use them wherever needed.

:::tip[Possible Use Cases]
- **Super Apps** like Gojek and Uber with distinct modules such as ride booking, shopping, and payments. Each module can be developed as a separate library and imported into a single main project.
- **Enterprise Apps** with isolated user journeys for different roles, such as admin and customer. Each role-based flow can be built as its own library and integrated into the core app as needed.
- **White-labeled Apps** that share common onboarding flows. The onboarding process can be built once as a library and reused across all branded versions of the app.
:::

The library author selects the pages to include in the library and publish it. When users import or update the library, they can override the default route names to avoid route name conflicts between the library and your project. Library pages then appear in the navigation actions just like any regular page.

The library author selects the pages to include and publishes the library. When users import or update the library, they can override the default route names to avoid conflicts between the library and your project. Once imported, the library pages appear in navigation actions just like any other page in the project.

<div style={{
position: 'relative',
paddingBottom: 'calc(56.67989417989418% + 41px)', // Keeps the aspect ratio and additional padding
height: 0,
width: '100%'}}>
<iframe
src="https://demo.arcade.software/fAgLrElyGNdf82NWGJte?embed&show_copy_link=true"
title=""
style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
colorScheme: 'light'
}}
frameborder="0"
loading="lazy"
webkitAllowFullScreen
mozAllowFullScreen
allowFullScreen
allow="clipboard-write">
</iframe>
</div>
<p></p>


Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we show how it can also be used with navigation bar?


## Library Values

Expand Down Expand Up @@ -290,6 +333,7 @@ To create library values, navigate to **Settings and Integrations > App Settings
</div>
<p></p>


#### Use Library Values
After setting Library Values, they function just like any other variable in FlutterFlow. You can bind them to components, actions, API calls, or any property that allows you to configure dynamic values across your library project. You can access Library Values via the ****Set from Variable**** menu.

Expand Down Expand Up @@ -333,6 +377,7 @@ To set library values, navigate to **Settings and Integrations > Project Setup >
For different [**development environments**](../../testing-deployment-publishing/development-environments/development-environments.md) (e.g., development vs. production), you can bind Library Values to [**environment values**](../../testing-deployment-publishing/development-environments/development-environments.md#environment-values). For instance, you could have two different Library Values for an API key, such as `DEV_OPENAI_API_KEY` and `PROD_OPENAI_API_KEY`, and bind them to the development and production environments to track API usage separately.
:::


## Libraries with Firebase
You can create collections and enable various Firebase features in library projects without connecting a separate Firebase project.

Expand Down