- Build a single screen (e.g. paywall)
- Build a sequence of connected screens (e.g. onboarding)
- Track user actions like button clicks with your product analytics
- Edit screens’ content remotely
1) Create a single screen
You can quickly create a beautiful paywall and other types of in-app screens with the Qonversion no-code screen builder. Follow this guide to learn the details of building the in-app screen similar to the examples below.
2. Create a sequence of screens
You can build a set of no-code screens using the guide above and link them into a sequence.Simply connect your no-code screens using Navigate to the screen action in the screen builder. Here is a short tutorial describing the sequence creation process:
3. Present a no-code screen
To present a no-code screen:- Copy the screen’s ID from the Qonversion dashboard

- Pass the ID to the following SDK method:
Flutter
React Native
Unity
Cordova
- Call this method in any part of your app and enjoy remotely manageable no-code screens!
4) Customize screen presentation
You can configure with what animation a no-code screen should be presented. It works differently for native SDKs (iOS and Android) and for cross-platform SDKs. Let’s have a look at them in turn. Below are the minimal required SDK versions supporting this feature:| Platform | Minimal version |
|---|---|
| iOS | 3.1.0 |
| Android | 4.1.0 |
| React Native | 4.1.0 |
| Flutter | 5.1.0 |
| Unity | 4.1.0 |
ScreenCustomizationDelegate, which will be called each time before showing a no-code screen.
🚧 We use a weak reference to the provided delegate to protect against memory leaks, so ensure that your delegate will remain alive as long as you need it (keep the reference to it somewhere in your code).
setScreenPresentationConfig method and provide a presentation configuration along with an identifier of a screen (optional) to which it should be applied. You can omit screen ID, and the provided configuration will be used for all no-code screens.
Flutter
React Native
Unity
Cordova
🚧 Call order matters
Note that the setScreenPresentationConfig call order matters. So if you call it for the concrete screen first and then for all the screens (without providing screen ID), the first call will be overridden.
The ScreenPresentationConfig class consists of the following fields:
| Field | Type | Description |
|---|---|---|
presentationStyle | ScreenPresentationStyle
(default - Push for Android,
fullScreen for iOS) | Describes how screens will be displayed. |
animated | boolean (default - true) | iOS only. A flag that enables/disables screen presentation animation.
For Android consider using ScreenPresentationStyle.NoAnimation |
ScreenPresentationStyle is an enumeration of the following variants:
| Variant | iOS description | Android description |
|---|---|---|
| Popover | UIModalPresentationPopover analog. Example. | Not available for Android |
| Push | Not a modal representation. Pushes a controller to a current navigation stack.NavigationController on the top of the stack is required.Example. | Default screen transaction animation on Android.Example. |
| FullScreen | UIModalPresentationFullScreen analog. Example. | A screen moves from bottom to top. Example. |
| NoAnimation | Not available for iOS. For iOS consider providing animated flat to QScreenPresentationConfig | A screen appears/disappears without any animation. Example. |
🚧 Cross-platform attention Please pay attention that thePushscreen presentation style for iOS requires the navigation controller in the current stack of your application views. To use thePushpresentation style, you must ensure your top-level view stack hasUINavigationController. Otherwise, the no-code screen will not be presented.