Skip to content

Commit f1cc2d2

Browse files
authored
Merge pull request #308 from FlutterFlow/pooja/library-mentions
Add mentions of new Libraries & Tools
2 parents 883cb95 + 842b534 commit f1cc2d2

File tree

5 files changed

+72
-77
lines changed

5 files changed

+72
-77
lines changed

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

Lines changed: 27 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,31 @@ keywords: [FlutterFlow, Custom Functions, Customizations, Flutter, Dart, Pub.dev
88
---
99

1010
# Custom Functions
11-
Custom Functions in FlutterFlow allow you to perform simple Dart calculations and logic. These functions are ideal for tasks that require immediate results, such as data transformations, mathematical calculations, or simple logic operations. **Custom Functions** enable you to encapsulate reusable logic, making your code more organized and maintainable.
11+
Custom Functions in FlutterFlow allow you to perform simple Dart calculations and logic. These functions are ideal for tasks that require immediate results, such as data transformations, mathematical calculations, or simple logic operations. **Custom Functions** enable you to encapsulate reusable logic, making your code more organized and maintainable. Let's see some common examples:
12+
13+
**To calculate discount given price and discount rate:**
14+
15+
```js
16+
double calculateDiscount(double price, double discountRate) {
17+
return price - (price * discountRate / 100);
18+
}
19+
```
20+
21+
**To capitalize a String input:**
22+
23+
```js
24+
String capitalize(String input) {
25+
return input.isNotEmpty ? '${input[0].toUpperCase()}${input.substring(1)}' : '';
26+
}
27+
```
28+
29+
**To convert Celsius to Fahrenheit**
30+
31+
```js
32+
double celsiusToFahrenheit(double celsius) {
33+
return (celsius * 9/5) + 32;
34+
}
35+
```
1236

1337
## Key Use Cases
1438

@@ -77,38 +101,5 @@ function code. Instead, you can pass the app state variable as a parameter and t
77101
</details>
78102

79103

80-
## Some common examples
81-
82-
<details>
83-
<summary>Calculating Discounts:</summary>
84-
85-
```
86-
double calculateDiscount(double price, double discountRate) {
87-
return price - (price * discountRate / 100);
88-
}
89-
```
90-
91-
</details>
92-
93-
94-
<details>
95-
<summary>String Capitalization:</summary>
96-
97-
```
98-
String capitalize(String input) {
99-
return input.isNotEmpty ? '${input[0].toUpperCase()}${input.substring(1)}' : '';
100-
}
101-
```
102-
</details>
103-
104-
<details>
105-
<summary>Temperature Conversion:</summary>
106-
107-
```
108-
double celsiusToFahrenheit(double celsius) {
109-
return (celsius * 9/5) + 32;
110-
}
111-
112-
```
113-
</details>
114-
104+
## Utility Functions Library
105+
Instead of building everything from scratch, explore our **[Utility Functions Library](https://marketplace.flutterflow.io/item/ZVBmWMGpXe6vqnASRHDA)** — packed with 50+ helpful functions for everyday tasks like formatting text, manipulating dates, validating input, and more. Easily plug them into your custom logic to save time and reduce errors.

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ FlutterFlow:
9999
</iframe>
100100
</div>
101101

102+
<p></p>
103+
102104
:::tip[Choosing a Pubspec Dependency]
103105
For a comprehensive guide on navigating external packages using pub.dev, evaluating packages, and making the best choices for your app, [**follow the guide**](custom-code.md#adding-a-pubspec-dependency).
104106
:::

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

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -645,12 +645,12 @@ You can add the responsive style by following the instructions below:
645645
</div>
646646
<p></p>
647647

648-
### Adding Custom Fonts
648+
### Custom Fonts
649649

650650
Adding Custom Fonts to your app makes it stand out from others. This section allows you to upload your own fonts. You can upload the custom font files of types `.ttf`, `.otf`, and `.woff.` Once the font is uploaded, you can use it directly from the widget or add it to the text style section to create a general theme.
651651

652652
:::info
653-
Before you upload the *Custom Fonts*, make sure you have permission to use the font in your application.
653+
Before you upload the Custom Fonts, make sure you have permission to use the font in your application.
654654
:::
655655

656656
To add the *Custom Fonts*:
@@ -718,15 +718,18 @@ If you prefer watching a video tutorial, here's the one for you:
718718
<p></p>
719719

720720

721-
### Adding Custom Icons
721+
### Custom Icons
722+
723+
Custom icons help reinforce your brand identity and add a unique touch to your app. Before uploading icons to FlutterFlow, you’ll first need to generate them using an icon font generator like [FlutterIcon](https://www.fluttericon.com/) or [IcoMoon](https://icomoon.io/).
724+
725+
We’ve also built our **[own SVG to Custom Icon Generator](https://icons.flutterflow.app)** to make the process even easier — feel free to use that instead.
722726

723-
Adding *Custom Icons* to your app helps you build the brand identity. Before you add the Custom Icons in FlutterFlow, you need to generate them from any icon generation site (like [fluttericon](https://www.fluttericon.com/) and [iconmoon](https://icomoon.io/)) and export them using appropriate settings.
724727

725728
:::info
726-
Make sure you have permission to use the icons in your application.
729+
Make sure you have the proper rights or licenses to use the icons in your application.
727730
:::
728731

729-
To add custom icons:
732+
**Steps to Generate and Add Custom Icons**
730733

731734
1. Head over to the [iconmoon](https://icomoon.io/app/#/select).
732735
2. Import your custom icon (.svg) or select from the free icons set.
@@ -769,8 +772,10 @@ To add custom icons:
769772
12. Now click on the **Upload Icon Info** button.
770773
13. Select and upload the `filename.dart` under the downloaded folder (besides the fonts folder).
771774
14. Click **Add Icons**.
772-
15. To use a custom icon, add the **Icon** widget, move to the properties panel, and scroll down to the **Icon** section.
773-
16. Click on the already selected icon, select the **Custom Icons** tab, and then select your icon.
775+
776+
#### Use the Custom Icon
777+
778+
To use a custom icon, add the **Icon** widget, move to the properties panel, and scroll down to the **Icon** section. Click on the already selected icon, select the **Custom Icons** tab, and then select your icon.
774779

775780
<div style={{
776781
position: 'relative',

docs/ff-integrations/database/supabase/database-actions.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,4 +256,7 @@ If you are using this trigger on a ListView, make sure to **disable** the **Infi
256256
allow="clipboard-write">
257257
</iframe>
258258
</div>
259-
<p></p>
259+
<p></p>
260+
261+
## Offline Support for Supabase Apps
262+
If you need offline capabilities in your Supabase-powered app, consider using the **[PowerSync Library](https://marketplace.flutterflow.io/item/dm1cuOwYzDv6yQL2QOFb)** built by the **[PowerSync](https://www.powersync.com/)** team. It's designed specifically to enable seamless offline-first experiences by syncing your Supabase data locally and keeping it up to date when the device reconnects.

docs/ff-integrations/payments/revenuecat.md

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -40,40 +40,32 @@ The [**underlying package for RevenueCat**](https://pub.dev/packages/purchases_f
4040
</div>
4141
<p></p>
4242

43-
Integrating the RevenueCat in your app comprises the following steps:
4443

45-
1. [Setup RevenueCat](#1-setup-revenuecat)
46-
2. [Enable RevenueCat in FlutterFlow](#2-enable-revenuecat-in-flutterflow)
47-
3. [Retrieving in-app purchases and subscription details](#3-retrieving-in-app-purchases-and-subscription-details)
48-
4. [Add RevenueCat actions](#4-add-revenuecat-actions)
49-
5. [Testing](#5-testing)
50-
6. [Launch](#6-launch)
51-
52-
## 1. Setup RevenueCat
44+
## Setup RevenueCat
5345

5446
To set up the RevenueCat, follow these steps carefully:
5547

5648
1. Sign up for a new RevenueCat account [here](https://app.revenuecat.com/).
5749
2. [Create a project](https://www.revenuecat.com/docs/getting-started/quickstart#%EF%B8%8F-create-a-project), [add your app](https://www.revenuecat.com/docs/getting-started/quickstart#%EF%B8%8F-add-an-app--platform), and ensure that you [add service credentials](https://www.revenuecat.com/docs/getting-started/quickstart#%EF%B8%8F-service-credentials) to help RevenueCat communicate with the app stores on your behalf.
5850
3. [Create subscriptions](https://www.revenuecat.com/docs/getting-started/quickstart#%EF%B8%8F-store-setup) in the respective stores.
59-
1. While creating subscriptions in Google Play Console, if you see a message saying '***Your app doesn't have any in-app products yet**'* like in this picture, follow the steps below:
51+
1. While creating subscriptions in Google Play Console, if you see a message saying '***Your app doesn't have any in-app products yet**'* like in this picture, follow the steps below:
6052
<p></p>
6153
![error-while-creating-sub-in-play-console.avif](imgs/error-while-creating-sub-in-play-console.avif)
62-
63-
1. Return to FlutterFlow and navigate to **Settings & Integrations >** **In App Purchases & Subscriptions >** **RevenueCat**.
64-
65-
2. Switch on the **Enable RevenueCat**. For now, just enter any random string as your API Key (eg. `testkey`). We’ll update this later.
66-
67-
3. Now, from the toolbar menu, click **Download APK**
68-
69-
4. In the Play Console, create a [Closed testing](https://play.google.com/console/about/closed-testing/) track and create a new release.
70-
71-
5. Upload your **App Bundle** or **APK**, enter the release name, and create the release.
72-
73-
6. Open the **Subscriptions** tab again. It should let you manage subscriptions now.
54+
55+
1. Return to FlutterFlow and navigate to **Settings & Integrations >** **In App Purchases & Subscriptions >** **RevenueCat**.
56+
57+
2. Switch on the **Enable RevenueCat**. For now, just enter any random string as your API Key (eg. `testkey`). We’ll update this later.
58+
59+
3. Now, from the toolbar menu, click **Download APK**
60+
61+
4. In the Play Console, create a [Closed testing](https://play.google.com/console/about/closed-testing/) track and create a new release.
62+
63+
5. Upload your **App Bundle** or **APK**, enter the release name, and create the release.
64+
65+
6. Open the **Subscriptions** tab again. It should let you manage subscriptions now.
7466
4. [Create Products and Entitlements in RevenueCat](https://www.revenuecat.com/docs/getting-started/quickstart#%EF%B8%8F-configure-products-and-entitlements-in-revenuecat).
7567

76-
## 2. Enable RevenueCat in FlutterFlow
68+
### Enable RevenueCat in FlutterFlow
7769

7870
To enable RevenueCat in FlutterFlow, follow the steps below:
7971

@@ -103,9 +95,9 @@ To enable RevenueCat in FlutterFlow, follow the steps below:
10395
</div>
10496
<p></p>
10597

106-
## 3. Retrieving in-app purchases and subscription details
98+
## Displaying Subscription Details in Your App
10799

108-
To display the in-app purchases and subscription details, such as price, description, etc., inside the UI elements, you need to retrieve this information from RevenueCat.
100+
To show in-app purchase and subscription information — such as pricing, product name, and description — within your app’s UI, you'll need to fetch these details from RevenueCat using the appropriate API or method.
109101

110102
Here is an example of retrieving monthly subscription details:
111103

@@ -135,7 +127,7 @@ Here is an example of retrieving monthly subscription details:
135127
</div>
136128
<p></p>
137129

138-
## 4. Add RevenueCat actions
130+
## RevenueCat Actions
139131

140132
To manage in-app purchases and subscriptions inside your FlutterFlow app, you have to use the RevenueCat Actions. Below are the types of RevenueCat actions:
141133

@@ -222,15 +214,12 @@ Using this action, you can allow users to re-activate the subscription they have
222214
</figure>
223215

224216

225-
## 5. Testing
226-
227-
You can test your subscriptions using sandbox environments, which simulate real store behavior without incurring costs. [This document](https://www.revenuecat.com/docs/test-and-launch/sandbox) provides detailed guidelines for testing purchases on [Android](https://www.revenuecat.com/docs/test-and-launch/sandbox/google-play-store) and [iOS devices](https://www.revenuecat.com/docs/test-and-launch/sandbox/apple-app-store).
217+
## Testing Subscriptions
228218

229-
## 6. Launch
219+
You can test your subscriptions using sandbox environments, which simulate real store behavior without incurring costs. Check out the full **[Sandbox Testing Guide](https://www.revenuecat.com/docs/test-and-launch/sandbox)** for more details.
230220

231-
Before launching your app to production make sure you go through the **Launch Checklist** of RevenueCat:
221+
Before going live, make sure to review **[RevenueCat’s Launch Checklist](https://docs.revenuecat.com/docs/launch-checklist)** to ensure everything is properly set up for production.
232222

233-
[In-App Purchase Launch Checklist – RevenueCatRevenueCat](https://docs.revenuecat.com/docs/launch-checklist)
234223

235224
## FAQs
236225

@@ -251,3 +240,8 @@ See more details [here](https://community.revenuecat.com/sdks-51/why-are-offerin
251240
</p>
252241
</details>
253242

243+
## Looking for other options?
244+
245+
If you're looking for other tools to manage in-app subscriptions, [**Adapty**](https://adapty.io/) is a solid alternative to RevenueCat — it offers advanced analytics, paywall A/B testing, and seamless integration with iOS and Android apps.
246+
You can explore the [**Adapty Library on our Marketplace**](https://marketplace.flutterflow.io/item/Mf1oFJcqngHzERZSPNA8) — it's actively maintained by the Adapty team and always kept up to date.
247+

0 commit comments

Comments
 (0)