Skip to content

Commit 59a3115

Browse files
authored
Merge branch 'main' into feature/merge-v2
2 parents 05fd5ce + 4fb23c0 commit 59a3115

File tree

5 files changed

+76
-46
lines changed

5 files changed

+76
-46
lines changed

docs/ff-concepts/design-system/design-system.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,47 @@ If you prefer watching a video tutorial, here is the guide for you:
196196
</div>
197197
<p></p>
198198

199+
## Use Library as Design System
200+
201+
You can also import a design system from the [Library](../../resources/projects/libraries.md) added to your project. A library can serve as a central repository for your design assets, components, and styles—effectively becoming a Design Library for your application(s).
202+
203+
:::tip[possible use cases]
204+
205+
- **Enterprise Applications:** Large organizations can develop a centralized design system as a library to ensure all internal applications maintain a cohesive look and feel, enhancing brand identity and user experience.
206+
- **Startup MVPs:** Startups can expedite the development of Minimum Viable Products (MVPs) by leveraging a pre-built design library like [**shadcn**](https://marketplace.flutterflow.io/item/cNlm0zWW1Nfq11cFXBmp), allowing them to focus on functionality and user validation.
207+
- **Cross-Platform Consistency:** Teams aiming to deploy apps across multiple platforms (iOS, Android, Web) can use a popular design system library to ensure uniformity in design, reducing the effort required for platform-specific adjustments.
208+
209+
:::
210+
211+
To add a design system from a library, first, ensure that you [add a library dependency to your project](../../resources/projects/libraries.md#importing-a-library). Then, navigate to **Theme Settings > Design System** and click on **No Design System Selected**. From the dropdown menu, **Select a library** you want to use.
212+
213+
214+
<div style={{
215+
position: 'relative',
216+
paddingBottom: 'calc(56.67989417989418% + 41px)', // Keeps the aspect ratio and additional padding
217+
height: 0,
218+
width: '100%'}}>
219+
<iframe
220+
src="https://demo.arcade.software/G3PekDcZNsWYrKoz3xnE?embed&show_copy_link=true"
221+
title=""
222+
style={{
223+
position: 'absolute',
224+
top: 0,
225+
left: 0,
226+
width: '100%',
227+
height: '100%',
228+
colorScheme: 'light'
229+
}}
230+
frameborder="0"
231+
loading="lazy"
232+
webkitAllowFullScreen
233+
mozAllowFullScreen
234+
allowFullScreen
235+
allow="clipboard-write">
236+
</iframe>
237+
</div>
238+
<p></p>
239+
199240
---
200241

201242
## Loading Indicator
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
---
22
slug: /resources/forms
3-
title: Overview
3+
title: Forms Overview
44
tags: [Forms]
55
keywords: [FlutterFlow, forms, input fields, user interface, mobile app development, data collection, user interaction]
66
description: Learn how to work with Forms in FlutterFlow app.
77
sidebar_position: 0
88
---
99

1010

11-
# Overview
11+
# Forms Overview
1212
Forms are a fundamental part of many applications, serving as the primary method for users to input and submit data. Whether you're building a simple contact form or a complex multi-step survey, FlutterFlow provides a comprehensive set of tools to create, validate, and manage forms effectively.
1313

1414
:::tip
1515
In this section, you'll learn how to add form widgets such as [**TextField**](form-widgets/text-field.md), [**Dropdown**](form-widgets/dropdown.md), [**RadioButton**](form-widgets/radiobutton.md), [**Checkbox Widgets**](form-widgets/checkbox.md) and add [**Validations**](form-validation.md) and [**set**](form-actions/set-form-field.md)/[**reset**](form-actions/reset-form-field.md) actions on these widgets.
16-
:::
16+
:::

docs/resources/projects/libraries.md

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ To publish a FlutterFlow project as a library, start by creating a FlutterFlow p
8585
When a project is converted into a library, the following features are disabled to ensure compatibility and functionality limitations:
8686

8787
- App settings
88-
- Firebase
8988
- Supabase
9089
- Development environments
9190
- Authentication
@@ -98,8 +97,6 @@ When a project is converted into a library, the following features are disabled
9897
- Google Analytics
9998
- OneSignal
10099
- Mux
101-
- Cloud functions
102-
- Firestore Collections
103100

104101
## Importing a Library
105102

@@ -318,6 +315,24 @@ To set library values, navigate to **Settings and Integrations > Project Setup >
318315
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#use-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.
319316
:::
320317

318+
## Libraries with Firebase
319+
You can create collections and enable various Firebase features in library projects without connecting a separate Firebase project.
320+
321+
In library projects, you won’t see an option to link to a Firebase project. Instead, the project that imports the library handles the actual Firebase connection.
322+
323+
Any indexes or security rules defined in the library are recognized by the importing project and deployed accordingly.
324+
325+
:::warning[Limitations]
326+
Libraries work with Firebase but have **some limitations**. The **Firebase Auth** and **Firebase Storage** are not directly supported in library projects at this time. If you need these features in your library’s functionality, you can include an action that accomplishes this task as a [**callback**](../../resources/ui/components/callbacks.md).
327+
:::
328+
329+
If your team has multiple projects that share a common Firebase feature, turning it into a library is a great idea. This ensures the same logic is used and connects to the same Firestore project across all apps.
330+
331+
Here are some examples of library projects you can build with Firebase:
332+
333+
- **Basic Analytics or Tracking**: A library that logs events to Firestore; useful for aggregating usage data at an application level.
334+
- **Configuration or Settings**: A library that serves app-wide configurations (like feature flags, UI themes, or layout choices) is handled in Firebase Remote Config.
335+
321336
## FAQs
322337

323338
<details>
@@ -328,16 +343,16 @@ Team code and API libraries will be migrated to library Projects. These projects
328343
</details>
329344

330345
<details>
331-
<summary>Will libraries work with Marketplace?</summary>
346+
<summary>Do libraries work with Marketplace?</summary>
332347
<p>
333-
We plan to allow users to import a marketplace project as a library, making it easier to integrate marketplace resources into your projects.
348+
Yes, you can add and import a Marketplace project as a library.
334349
</p>
335350
</details>
336351

337352
<details>
338-
<summary>How do libraries work with themes?</summary>
353+
<summary>How do libraries work with themes (design systems)?</summary>
339354
<p>
340-
The parent project's design system takes precedence over the imported library's design system. For example, if a library uses the standard FlutterFlow color scheme, the values defined in the parent project will override those in the library. However, if the library project has a custom color that the parent project does not have, it will be used as-is in the parent project.
355+
By default, the design system of the parent project takes precedence over the imported library's design system. If you want to use a library's design system, you must [**select or set the library in the Design System**](../../ff-concepts/design-system/design-system.md#use-library-as-design-system) page.
341356
</p>
342357
</details>
343358

docs/resources/projects/settings/general-settings.md

Lines changed: 6 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ This section allows you to customize a wide range of settings that are crucial f
1616

1717
### Change Project, Package, and Display Name
1818

19-
If you didn't decide on the app or package name when creating a new project, you might have entered a random name. From here, you can change the name anytime.
19+
Modify the app or package name of your project from this settings. You can also define different package names based on the development environment selected.
2020

2121
You can set a different name for the *App Store* and *Play Store* using the **Display Name**.
2222

@@ -28,8 +28,9 @@ After changing the package name, errors may appear on the toolbar due to invalid
2828

2929
You can specify your app's **Entry Page** and **Logged In** **Page** from this section.
3030

31-
- **Entry Page**: This is the home page for your app. If authentication is enabled, users who are not logged in will see this page, which is typically set to a login/signup or onboarding page.
32-
- **Logged In Page** (*available only if auth is enabled*): This page is displayed on the app start if a user is already logged in. Users are automatically navigated to the page you specify here on a successful sign-in attempt.
31+
- **Entry Page**: This serves as the home page for your app. When authentication is disabled, all users are directed to this page by default. If authentication is enabled, this page becomes the login, signup, or onboarding page for users who are not authenticated.
32+
- **Logged In Page** (*available only if auth is enabled*): This page is displayed when the app starts for authenticated users. If a user successfully signs in, they are automatically redirected to the page specified here. If the user is already authenticated, this page bypasses the Entry Page.
33+
3334

3435
To set the page, simply choose the page that you want to use from the dropdown menu.
3536

@@ -74,35 +75,8 @@ If you want the improved folder organization for your project, **Enable Updated
7475

7576
### Routing & Deep Linking
7677

77-
From here, you can configure the global settings for navigation and deep link in your app [here](../../../ff-concepts/navigation-routing/deep-dynamic-linking.md).
78-
78+
Configure the global settings for navigation and deep link in your app. To learn, how to set up deeplinks, check out the **[Deep & Dynamic Linking](../../../ff-concepts/navigation-routing/deep-dynamic-linking.md)** guide.
7979

80-
If you prefer watching a video tutorial, here is the guide for you:
81-
<div style={{
82-
position: 'relative',
83-
paddingBottom: 'calc(56.67989417989418% + 41px)', // Keeps the aspect ratio and additional padding
84-
height: 0,
85-
width: '100%'}}>
86-
<iframe
87-
src="https://www.youtube.com/embed/H_3yQsa8wT8"
88-
title=""
89-
style={{
90-
position: 'absolute',
91-
top: 0,
92-
left: 0,
93-
width: '100%',
94-
height: '100%',
95-
colorScheme: 'light'
96-
}}
97-
frameborder="0"
98-
loading="lazy"
99-
webkitAllowFullScreen
100-
mozAllowFullScreen
101-
allowFullScreen
102-
allow="clipboard-write">
103-
</iframe>
104-
</div>
105-
<p></p>
10680

10781
## App Assets
10882

@@ -185,4 +159,4 @@ See the following resources for more information on Android adaptive icons.
185159
- [Implementing Adaptive Icons](https://medium.com/google-developers/implementing-adaptive-icons-1e4d1795470e)
186160

187161
## Nav Bar & App Bar
188-
See how to configure the [Nav Bar](../../ui/pages/page-elements.md#enable-nav-bar-in-settings) and the [App Bar](../../ui/pages/page-elements.md#appbar).
162+
See how to configure the [Nav Bar](../../ui/pages/page-elements.md#enable-nav-bar-in-settings) and the [App Bar](../../ui/pages/page-elements.md#appbar).

docs/resources/ui/widgets/composing-widgets/list-grid.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ Axis sets the orientation of the ListView. You can select either "Vertical" or
4747

4848
![listview-reverse.png](../built-in-widgets/imgs/listview-reverse.png)
4949

50-
#### Make List Reorderable
50+
### Reorderable List
5151
Whether to allow reordering of items in the list. On Web or Desktop this will
5252
add drag handles, but on mobile
5353
the reorder is triggerred by long pressing an item.
@@ -64,7 +64,7 @@ action trigger to make any necessary changes yourself.
6464

6565
Here's a quick tutorial to set up your Reorderable ListView:
6666

67-
##### Using App State variable
67+
#### Using App State variable
6868

6969
1. First, create an app state variable with a few items of type String and display them on the
7070
ListView widget.
@@ -116,7 +116,7 @@ return list;
116116
com/embed/bb961c71d11a4e7d8869170727d1423d?sid=a356162d-76df-45bb-930c-bebf8358ce6c" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
117117

118118

119-
##### Reordering Items in a Firebase Query
119+
#### Reordering Items in a Firebase Query
120120

121121
If you want to reorder the list items retrieved via Firebase query collection, the steps are almost similar except for the following changes.
122122

@@ -540,4 +540,4 @@ Follow the steps below to add this action to any widget.
540540
allow="clipboard-write">
541541
</iframe>
542542
</div>
543-
<p></p>
543+
<p></p>

0 commit comments

Comments
 (0)