You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -13,11 +13,11 @@ The Toolbar, located at the top of the app builder, provides easy access to nume
13
13
14
14

15
15
16
-
## Project info
16
+
## Project Info
17
17
18
18
Hovering over this section reveals the essential information about your project. Here, you can easily check the project name, branch name, environment name and the current version of FlutterFlow that you're using, along with its release date. Additionally, it shows the Flutter version that your project is currently running on.
19
19
20
-
## Help
20
+
## Help Menu
21
21
22
22
From here, you will get access to essential resource links that will come in handy while building your apps.
23
23
@@ -31,7 +31,7 @@ From here, you will get access to essential resource links that will come in han
31
31
8.**Current Status/Known Issues**: We want to keep you informed about the current status of FlutterFlow and provide updates regarding any known issues. We aim to ensure transparency and keep you in the loop about the platform's performance and potential issues.
32
32
9.**Show/Hide Chat**: You can use this option to show or hide the chat button at the bottom right of the app builder.
33
33
34
-
## Keyboard shortcuts
34
+
## Keyboard Shortcuts
35
35
36
36
With keyboard shortcuts, you can perform common actions related to widgets and run your project in Test or Run mode with just a few keystrokes, saving you time and effort. Select this option to see all the shortcuts.
37
37
@@ -43,168 +43,12 @@ The Command Palette makes it easy to find and use things in the App Builder. Ope
FlutterFlow AI Tools is a powerful set of features designed to speed up app development by leveraging artificial intelligence. These tools allow you to quickly generate app elements such as pages, components, and even entire page layouts with relevant widgets automatically populated.
48
-
49
-
### New Page Creation
50
-
Instantly create pages in your app from a prompt. To create a page, open the **AI Tools** menu from the Toolbar. Next, select **New Page Creation** and enter a description for your page.
51
-
52
-
<div style={{
53
-
position: 'relative',
54
-
paddingBottom: 'calc(50.67989417989418% + 41px)', // Keeps the aspect ratio and additional padding
Aside from pages, you can also create [Components](/resources/ui/components) directly from a prompt. To create a component, open the **AI Tools** menu from the Toolbar. Next, select **New Component Creation** and enter a description for your UI component.
80
-
81
-
<div style={{
82
-
position: 'relative',
83
-
paddingBottom: 'calc(50.67989417989418% + 41px)', // Keeps the aspect ratio and additional padding
Sketch to Component allows you to add a sketch of your [Component](/resources/ui/components). This sketch can include outlines of widgets or layouts to incorporate, and it can also include annotations that tell the AI tool more about the design you have in mind.
109
-
110
-
To create a Component from a sketch, open the **AI Tools** menu from the Toolbar. Next, select **Sketch to Component** and draw directly in the input or upload an image file of your sketch.
111
-
112
-
<div style={{
113
-
position: 'relative',
114
-
paddingBottom: 'calc(56.67989417989418% + 41px)', // Keeps the aspect ratio and additional padding
We allow you to visualize and design your app for various mobile, tablet, and desktop devices. The [canvas](../ff-ui/canvas.md) size is defined as width (in pixels) x height (in pixels). This size is determined according to the device selected. To set a custom canvas size, click on the Canvas Size and enter the width and height (in pixels) you want.
176
-
177
-
<div style={{
178
-
position: 'relative',
179
-
paddingBottom: 'calc(56.67989417989418% + 41px)', // Keeps the aspect ratio and additional padding
Understand the crucial concepts of project history, such as saving and versioning [here](../../testing-deployment-publishing/branching-collaboration/saving-versioning.md).
206
-
207
-
## Project comments
46
+
## AI Generation History
47
+
48
+
The **AI Generation History** panel lets you track the status of your AI-generated items. It provides a list of all previously generated pages and components, and you can easily preview them from here.
49
+
50
+
51
+
## Project Comments
208
52
209
53
This helps you leave your thoughts, opinions, questions, or feedback on a specific widget with your project team or a client. While adding a comment, you can tag users, and they will be able to respond, creating a thread of conversation.
210
54
@@ -214,7 +58,7 @@ To tag users, select the @ symbol and choose the project team member(s).
214
58
215
59
:::
216
60
217
-
## Optimizations & Enhancements
61
+
## Project Suggestions
218
62
219
63
We scan and suggest enhancements to elevate your app's design and speed. Imagine having a personal consultant for design and performance dedicated to improving the user experience of your app.
220
64
@@ -230,7 +74,7 @@ You can control what kind of suggestions you would like to receive by clicking o
230
74
231
75

232
76
233
-
## Project issues
77
+
## Project Issues
234
78
235
79
If there are any issues or warnings present in your current project that might result in a build failure or app crash, they will be displayed in this section. You can click this option to view a short description of each issue and navigate to the place where you can fix the issue by clicking on the respective issue.
236
80
@@ -242,11 +86,12 @@ If there are any issues or warnings present in your current project that might r
[Branching](../../testing-deployment-publishing/branching-collaboration/branching.md) enables you to create a separate copy of your existing project, allowing you to develop new features without affecting the current functionality.
90
+
## Version Control
91
+
**Version Control** is a system that tracks changes to your project's files over time, allowing you to revert to previous states if needed. In FlutterFlow, you can utilize [Branching](../../testing-deployment-publishing/branching-collaboration/branching.md) to create a separate copy of your project to build or test features without affecting the main version.
248
92
249
-
## Developer menu
93
+
94
+
## Developer Menu
250
95
The Developer Menu provides developers with access to tools such as code viewing, GitHub integration, and source code download capabilities.
251
96
252
97
1.**View Code**: This option lets you display the *Dart* code for all the pages of your FlutterFlow project. You can also take a look at the dependencies being used by the app here.
@@ -267,9 +112,7 @@ _Connect GitHub Repo_, _Download Code_, and _Download APK_ features requires a [
267
112
268
113
7.**Refactor Project**: This option opens your FlutterFlow project in a YAML-based file editor, allowing you to perform bulk edits more efficiently. You can search, edit, and replace values across multiple files—useful for renaming keys, updating data types, or migrating resources to a Library. Check out the [**Refactor Project**](../../resources/projects/refactor-project.md) documentation for more details.
269
114
270
-
271
-
272
-
## Share project
115
+
## Share Project
273
116
274
117
You can make a project public so that others can view and clone your project. Before you share your project, make sure to remove any sensitive information.
275
118
@@ -280,10 +123,10 @@ You can make a project public so that others can view and clone your project. Be
280
123
281
124
:::
282
125
283
-
## Preview
126
+
## Preview App
284
127
285
128
You can use this option to run your app in [Preview mode](../../testing-deployment-publishing/running-your-app/run-your-app.md#preview-mode).
286
129
287
-
## Testing
130
+
## Test Mode
288
131
289
132
This menu allows you to run your app in [Test](../../testing-deployment-publishing/running-your-app/run-your-app.md#test-mode) or [Run](../../testing-deployment-publishing/running-your-app/run-your-app.md#run-mode) mode.
Copy file name to clipboardExpand all lines: docs/misc/customer-support-policy.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,7 +46,7 @@ Lastly, you can connect with a [FlutterFlow Expert](https://experts.flutterflow.
46
46
47
47
We regularly release feature updates and bug releases. To make sure you are on the most recent version of FlutterFlow select Ctrl/Cmd + R.
48
48
49
-
If you think you've found a bug, please submit an [in-app bug report](../intro/ff-ui/toolbar.md#help) or let us know via chat (Standard and Pro users only). Please make sure to include:
49
+
If you think you've found a bug, please submit an [in-app bug report](../intro/ff-ui/toolbar.md#help-menu) or let us know via chat (Standard and Pro users only). Please make sure to include:
Copy file name to clipboardExpand all lines: docs/resources/control-flow/functions/utility-functions.md
+92Lines changed: 92 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -100,6 +100,10 @@ To add inline function, open the Set from Variable dialog wherever it's possible
100
100
101
101
For example, we may want to quickly calculate the discount amount of a product where the discount is 18% of the MRP of the product. The expression would be `cost - (cost * discount)`.
102
102
103
+
:::tip
104
+
Looking for more power and flexibility? Use the new [**Custom Code Expression**](#custom-code-expression). It’s a more advanced version of Inline Functions that lets you access FlutterFlow generated resources without passing them as arguments. You also get real-time autocomplete and inline error checking for faster, more accurate logic.
105
+
:::
106
+
103
107
**Precedence of operations**
104
108
105
109
Inline Function for math operations follow typical precedence (e.g., multiplication/division before addition/subtraction), but parentheses can change the order.
@@ -162,6 +166,79 @@ Here are some common expressions you can use for your business logic:
162
166
|`int.parse(s)`| Convert the **String** into an **integer.**|`int.parse(stringValue)`|`int`|
163
167
164
168
169
+
## Custom Code Expression
170
+
171
+
**Custom Code Expression** lets you write short Dart code directly in widget property fields and action flows in FlutterFlow. It’s a more powerful version of [**Inline Function**](#inline-function-code-expressions), allowing you to directly access FlutterFlow generated classes, global variables, widget properties, parameters, and more without needing to manually pass them as inputs.
172
+
173
+
Custom Code Expressions also support real-time autocomplete, making it easy to discover available fields as you type. For example, when you type `FFAppState().`, it will suggest all available app state variables along with their types.
174
+
175
+
In addition, inline validation provides immediate feedback as you write, helping you catch syntax errors or invalid property references.
176
+
177
+
:::info
178
+
To use Custom Code Expression, you must have an active [**FlutterFlow paid plan**](https://www.flutterflow.io/pricing).
179
+
:::
180
+
181
+
:::tip
182
+
- To explore what you can access within a Custom code expression, refer to the [**Common Examples**](../../../ff-concepts/adding-customization/common-examples.md) page.
183
+
- Press `^ + Space` (or `Ctrl + Space`) while typing to see suggestions for what you can access in your Custom code expression.
184
+
- You can access values inside custom structs. For example, you can use `FFAppState().localDeviceInfo.osVersion` if that field exists in your app state.
185
+
- To use Custom code expressions better, it's helpful to understand how FlutterFlow builds your project behind the scenes. You can check the [**State Management**](../../../generated-code/state-mgmt-gen-code.md) page and other **Generated Code** sections to learn how everything is set up.
186
+
187
+
:::
188
+
189
+
Here are a couple of examples showing how to access App State and Page State within a Custom code expression:
190
+
191
+
-**App State Access:** For example, to check if dark mode is enabled using an App State variable:
This accesses the global`enableDarkMode` boolean stored in`FFAppState`, and returns a string based on its value.
198
+
199
+
-**Page and Component State Access:** For example, to access a page or component state variable like `searchText`, you start with`_model.` and then select the variable from the autocomplete suggestions.
200
+
201
+
```jsx
202
+
_model.searchText.isEmpty ? '' : 'Searching for "${_model.searchText}"'
203
+
```
204
+
205
+
This expression checks if the `searchText`variable (defined as a page state) is empty, and returns an appropriate message. The`_model` object refers to the current page’s generated state model.
206
+
207
+
Here's an example of adding a Custom Code Expression:
208
+
209
+
<div style={{
210
+
position: 'relative',
211
+
paddingBottom: 'calc(56.67989417989418%+41px)', // Keeps the aspect ratio and additional padding
To use a Custom Code Expression when triggering actions in FlutterFlow (i.e., inside an Action Flow), you can use the **Execute Custom Code** action. This allows you to run a Dart expression when something happens, such as tapping a button or after a page loads.
The Execute Custom Code action can be really helpful in scenarios where the home page is removed early from the navigation stack and standard navigation using the local context may fail. To prevent this, you can [use the global navigator context](../../../ff-concepts/navigation-routing/deep-dynamic-linking.md#using-global-context-to-navigate) inside a code expression.
165
242
166
243
## Custom Functions
167
244
@@ -170,3 +247,18 @@ You can also use custom functions to handle slightly more complex calculations o
170
247
:::info
171
248
Learn more about [**Custom Functions**](../../../ff-concepts/adding-customization/custom-functions.md).
172
249
:::
250
+
251
+
## FAQS
252
+
<details>
253
+
<summary>
254
+
How is a Custom Code Expression different from an Inline Function?
255
+
</summary>
256
+
<p>
257
+
Custom Code Expression is a more advanced and flexible version of Inline Function.
258
+
259
+
With Inline Functions, you had to manually pass values as arguments. In contrast, Custom Code Expressions let you directly reference FlutterFlow generated resources (such as `FFAppState()`, `_model`, context, and more) without needing to pass them in.
260
+
261
+
You can write any valid Dart expression in a Custom code expression, even multi-line logic using anonymous functions. Plus, Custom Code Expressions support real-time autocomplete and inline error validation, making it much easier to discover available variables and avoid mistakes.
0 commit comments