Skip to content

Commit 0fef8d0

Browse files
authored
Merge branch 'main' into feature/refactor-project
2 parents 914bf9f + f05cb25 commit 0fef8d0

File tree

34 files changed

+796
-234
lines changed

34 files changed

+796
-234
lines changed

docs/ff-concepts/adding-customization/configuration-files.md

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,11 @@ FlutterFlow provides two main ways to modify native XML files: [**Add Individual
4141

4242
For Android, modifications are typically made in the `AndroidManifest.xml` file, where you can add the following tags:
4343

44-
- **Activity Tags**: This injects code inside the `<activity> ... </activity>` block. You’d use this to declare an additional activity in an Android application. An activity represents a single screen with a user interface (UI). This tag can control the behavior, orientation, and themes, and determines how the activity interacts with other apps or system events.
45-
- **Application Tags**: This injects code inside the `<application> ... </application>` block. You’d use this to configure `<meta-data>` entries, application-wide settings, declare app components like services, broadcast receivers, and content providers, and specify intent filters.
44+
- **Activity Tags:** Inserts XML code inside the `MainActivity` block. This is typically used to add child XML elements within the MainActivity, such as `<intent-filter>` or `<meta-data>` to control aspects such as deep linking, theme application, or launch mode.
45+
- **Application Tags**: Used to inject properties or attributes directly on the `<application>` tag itself. For example, you can use this to set values such as `android:icon`, `android:label`, `android:allowBackup`.
46+
- **App Component Tags**: Inserts complete XML components inside the `<application>...</application>` block. Use this to add additional activities, services, broadcast receivers, or content providers that your app depends on.
4647

47-
To add a snippet to your `AndroidManifest.xml`, navigate to **Custom Code** from the left navigation menu, select **Configuration Files**, then choose `AndroidManifest.xml`. Click the **plus** (+) button next to either the *Activity* or *Application* tag—depending on where you'd like to insert the snippet. Provide a name (this will be included as a comment in the file) and paste your snippet code.
48+
To add a snippet to your `AndroidManifest.xml`, navigate to **Custom Code** from the left navigation menu, select **Configuration Files**, then choose `AndroidManifest.xml`. Click the **plus (+)** button next to the tag where you want to insert the snippet. Provide a name (this will be included as a comment in the file) and paste your snippet code.
4849

4950
<div style={{
5051
position: 'relative',
@@ -166,7 +167,7 @@ Here’s exactly how you do it:
166167
height: 0,
167168
width: '100%'}}>
168169
<iframe
169-
src="https://demo.arcade.software/srZqoYaaoVR1mCE3t8AL?embed&show_copy_link=true"
170+
src="https://demo.arcade.software/wHFUlfRHxQlbzmjR0Bfs?embed&show_copy_link=true"
170171
title=""
171172
style={{
172173
position: 'absolute',
@@ -756,9 +757,15 @@ There's a known limitation where editing the `main.dart` file with Supabase enab
756757

757758
<details>
758759
<summary>
759-
How can I create a Library that needs to edit Info.plist / Entitlements.plist / AndroidManifest.xml
760+
Can I modify the Configuration Files in a Library project?
760761
</summary>
761762
<p>
762-
Right now, changes to the configuration files made in a Library project are not ported over to the projects that import them. This means if you create a Library that needs specific permissions added to these files, the consumers of your Library will need to edit the files in the project that imports the Library. We are hoping to have automatic import of changes to the configuration files available in the next few releases.
763+
Yes, you can. When a Library Project is imported, any configuration file snippets, such as those for `AndroidManifest.xml`, `Info.plist`, or `Entitlements.plist` are automatically merged into the importing project's configuration files.
764+
765+
Additionally, your Library Project can pass values (like API keys) into those snippets using [**Library Values**](../../resources/projects/libraries.md#library-values), making it easy to customize.
766+
767+
![config-values-in-library](imgs/config-values-in-library.avif)
768+
769+
This makes Libraries incredibly powerful and enables easy integration of tools like **PostHog** (analytics), **Sentry** (crash reporting), **CleverTap**, **flutter_local_notifications**, **flutter_nfc_kit**, and many more directly from the Marketplace.
763770
</p>
764771
</details>

docs/ff-concepts/adding-customization/custom-code.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ While FlutterFlow provides a wide range of pre-built components and functionalit
1414
times when you need to extend your app with custom logic or UI components that are not available out of the box.
1515
This is where writing custom code comes into play.
1616

17-
There are a few different ways to make custom code accessible in FlutterFLow:
17+
There are a few different ways to make custom code accessible in FlutterFlow:
1818

1919
* **[Custom Functions](custom-functions.md):** Custom Dart functions that can be used to set Widget or Action properties.
2020
* **[Custom Actions](custom-actions.md):** Custom Dart functions that can be triggered by [Action Triggers](https://docs.flutterflow.io/resources/functions/action-triggers/) or used as nodes in an [Action Flow](https://docs.flutterflow.io/resources/functions/action-flow-editor#action-flow-editor). These are usually `async` functions and are able to import [custom package dependencies](#adding-a-pubspec-dependency).
@@ -117,11 +117,10 @@ Compiling Custom Functions should be pretty fast, but sometimes, compiling Custo
117117
The code analyzer is available in all your custom code snippets and ensures the quality and
118118
correctness of your custom code. It automatically checks your Dart code for errors and warnings,
119119
providing real-time feedback as you write.
120-
![code-analyzer.png](imgs/code-analyzer.png)
121120

122-
When there is a compilation error, the code analyzer will stop running and display the errors caught
123-
by the compiler. Once fixed, save the code and rerun using the Compile Code button. The code analyzer
124-
should then be reconnected. You can also manually reconnect it if needed.
121+
![code-analyzer](imgs/code-analyzer.avif)
122+
123+
When there is a compilation error, the code analyzer will stop running and display the errors caught by the compiler. Once fixed, save the code and restart the code analyzer to resume real-time analysis and receive feedback on updated code.
125124

126125
### Automatic FlutterFlow Imports
127126

@@ -523,4 +522,4 @@ If any project errors related to packages arise, they will be displayed in both
523522
allow="clipboard-write">
524523
</iframe>
525524
</div>
526-
<p></p>
525+
<p></p>
Binary file not shown.
Binary file not shown.
Binary file not shown.

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ Make sure you have the proper rights or licenses to use the icons in your applic
731731

732732
**Steps to Generate and Add Custom Icons**
733733

734-
1. Head over to the [iconmoon](https://icomoon.io/app/#/select).
734+
1. Head over to the [IcoMoon](https://icomoon.io/app/#/select).
735735
2. Import your custom icon (.svg) or select from the free icons set.
736736
3. Select the **Generate Font** tab.
737737
4. Click on the Settings button (gear icon) beside the download text on the bottom right side.
@@ -836,7 +836,7 @@ If you prefer watching a video tutorial, here is the guide for you:
836836

837837
Creating a theme for widgets ensures that your app looks consistent and has a cohesive design. The Theme widgets can be reused, making it easy to update the styles of your app. If you decide to change any property of the widget, such as color scheme or fonts, you can update the theme widget instead of going through every widget individually. This can save a lot of time and effort, especially in larger projects.
838838

839-
For example, creating theme widgets for different types of buttons such as 'primary_button', 'secondary_button', and 'tertairy_button' with specific attributes like width, color, icon, border radius, and padding. Then, these widgets can be directly added to a page or applied to an existing widget.
839+
For example, creating theme widgets for different types of buttons such as 'primary_button', 'secondary_button', and 'tertiary_button' with specific attributes like width, color, icon, border radius, and padding. Then, these widgets can be directly added to a page or applied to an existing widget.
840840

841841
### Adding theme widgets
842842

@@ -1000,4 +1000,4 @@ If you prefer watching a video tutorial, here's the one for you:
10001000
<details>
10011001
<summary>How is the theme widget different from creating a template and component?</summary>
10021002
<p>The Theme Widget allows you to customize the visual appearance of a single widget, whereas templates consist of multiple widgets that create a unique UI layout with a specific purpose. On the other hand, components are fully-featured custom widgets that combine multiple widgets and actions to complete a task.</p>
1003-
</details>
1003+
</details>

docs/ff-concepts/localization-accessibility/accessibility.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,25 @@ The **Focus Traversal Group** defines a context or scope for focus traversal, an
144144

145145
:::
146146

147+
## Update Text Scaling Factor [Action]
148+
The **Update Text Scaling Factor** action in FlutterFlow allows you to dynamically adjust the text size across your app during runtime. This is particularly useful for improving accessibility by letting users control the size of the text without having to manually change system settings.
149+
150+
Imagine you have a "+" and "-" button on a page to help users adjust text size. When the user taps the "+" button, the text scaling factor increases by 1, making the text larger. Tapping the "-" button decreases the text scaling factor by 1, making the text smaller. Additionally, a Reset button can be provided to return the text scaling back to its default value.
151+
152+
:::info
153+
154+
This action works in conjunction with the [**Display Settings**](../../resources/projects/settings/general-settings.md#display-settings) configured at the project level, such as **Min Text Scaling Factor** and **Max Text Scaling Factor**.
155+
156+
:::
157+
158+
When configuring the Update Text Scaling Factor action, you can choose from three update types:
159+
160+
- **Set Value**: Directly assigns the text scaling factor to a specific value.
161+
- **Increment/Decrement**: Adjusts the current scaling factor by a specified amount. A positive value increases scaling, and a negative value decreases it.
162+
- **Reset**: Restores the text scaling factor to the project's default setting.
163+
164+
![text-scaling-action](imgs/text-scaling-action.avif)
165+
147166
## Keyboard Navigation
148167

149168
You can use the [On Shortcut Press](../../resources/ui/pages/page-lifecycle.md#on-shortcut-press-action-trigger) action trigger to bind keyboard shortcuts to specific actions. This makes it easier for users with disabilities to navigate your app, especially in web and desktop environments.
Binary file not shown.

0 commit comments

Comments
 (0)