Skip to main content

Background

Get set up with the Helium SDK for Flutter. Reach out over your Helium slack channel or email founders@tryhelium.com for any questions.

Installation

Run flutter pub add helium_flutter or manually add the helium_flutter package to your pubspec.yaml:
Then run:
The minimum version of Flutter supported by this SDK is 3.24.0.
Recommended - Make sure that Swift Package Manager support is enabled:
See this Flutter documentation for more details about Swift Package Manager.
You can still use Cocoapods for your dependencies if preferred. If you need to disable Swift Package Manager dependencies after having enabled it, refer to that same Flutter documentation.

iOS Settings

Helium requires iOS 15+. If your app already has a minimum of iOS 15 or higher, you’re all set. This can be specified in your ios/Podfile with:
If you still see errors related to minimum iOS version, consider updating to 15.0 or higher directly in the Xcode project.

Initialize Helium

In your app’s initialization code (typically in main.dart or your root widget), add the following to configure Helium and prepare your paywalls:
initialize
method
You can set a custom user ID and custom user traits with the initialize method or by calling:
After initialization, you can check the status of the paywalls download:
The download status will be one of the following:
  • notDownloadedYet: The download has not been initiated.
  • inProgress: The download has not been initiated.
  • downloadSuccess: The download was successful.
  • downloadFailure: The download failed.
You can also check if paywalls have been downloaded with await heliumFlutter.paywallsLoaded()

Helium Events

To handle various paywall-related events, implement HeliumCallbacks and pass it to initialize:
For example:

Handling Purchases

By default, Helium will handle purchase logic for you. If you want a custom implementation, you’ll want to implement HeliumPurchaseDelegate and pass that into initialize.

Basic Implementation

Here’s a basic implementation of HeliumPurchaseDelegate:

RevenueCat Implementation Example

Presenting Paywalls

There are two ways to show a Helium paywall in your Flutter app: You can present a paywall programmatically using the presentUpsell method:
Configure triggers in the dashboard. You can also pass in custom paywall traits and event handlers directly to presentUpsell:

Via Widget Integration

You can also use the HeliumFlutter.getUpsellWidget method to embed a paywall directly in your widget tree:
You will have to handle your own dismissal in this case. You can do so by listening for the paywallDismissed event in onPaywallEvent of your HeliumCallbacks implementation.

Hiding Paywalls

To programmatically hide a paywall that was shown with the presentUpsell method:

Fallbacks

The Flutter SDK currently has two fallback options - 1) Fallback bundle and 2) a fallback view. Fallback situations should be quite rare, but to be safe, it is recommended you implement a fallback bundle or custom fallback view.