Flutter SDK Developer Reference: How do I initialize the Genuin SDK and load a feed?
The Genuin SDK allows brands and developers to quickly embed short-form video experiences, communities, groups, and interactive feeds into their applications with minimal development effort.
Using the SDK helps teams:
- Launch community-driven experiences faster
- Reduce development and integration time
- Deliver native video feeds and embeds inside mobile apps
- Enable personalized and interactive user journeys
- Support community engagement, content discovery, and retention
- Integrate deep linking, SSO, notifications, and analytics-ready experiences
The Quick Start setup is designed to help developers get the SDK running with only a few initialization steps before expanding into advanced integrations.
Quick Start Overview
The Genuin Flutter SDK supports:
| Feature | Supported |
|---|---|
| Brand Feed | Yes |
| Communities & Groups | Yes |
| Carousel Embed | Yes |
| Full-Screen Feed Embed | Yes |
| SSO Login | Yes |
| Deep Linking | Yes |
| Push Notifications | Yes |
| Custom Loader Support | Yes |
Platform Requirements
| Platform | Minimum Version | Language | Orientation | Destination |
|---|---|---|---|---|
| Android | SDK 24 | Java / Kotlin | Portrait | Mobile |
| iOS | iOS 13.0 | Swift | Portrait | iPhone |
How do I integrate the Genuin SDK in Flutter?
Step 1: Add the SDK dependency
Install the Genuin SDK package in your Flutter project.
dependencies:
genuin_sdk: latest_versionThen run:
flutter pub getAndroid Quick Start
Step 2: Configure Android repositories
Navigate to:
android/build.gradleAdd JitPack inside repositories:
allprojects {
repositories {
google()
mavenCentral()
maven {
setUrl("https://jitpack.io")
}
}
}Step 3: Set minimum SDK version
Navigate to:
android/app/build.gradleUpdate:
android {
defaultConfig {
minSdk = 24
}
}Step 4: Initialize the SDK
Navigate to:
android/app/src/main/yourpackage/MainActivity.ktAdd:
import android.os.Bundle
import com.begenuin.genuin_sdk.GenuinSdkPlugin
import io.flutter.embedding.android.FlutterFragmentActivity
class MainActivity : FlutterFragmentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
GenuinSdkPlugin.initSDK(
this@MainActivity,
"YOUR_API_KEY"
)
}
}Use FlutterFragmentActivity instead of FlutterActivity.
Step 5: Load the Feed View
Inside your Flutter widget:
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Genuin SDK Example'),
),
body: GenuinFeedView(),
),
);
}At this stage, the SDK is successfully integrated and ready to display content feeds.
iOS Quick Start
Step 1: Configure iOS deployment target
Navigate to:
ios/PodfileUpdate:
platform :ios, '13.0'Step 2: Initialize the SDK
Navigate to:
ios/Runner/AppDelegate.swiftAdd:
import Flutter
import UIKit
import genuin_sdk
@main
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions:
[UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GenuinSdkPlugin.initialize(
apiKey: "YOUR_API_KEY",
loaderName: "YOUR_LOTTIE_LOADER_NAME"
)
GeneratedPluginRegistrant.register(with: self)
return super.application(
application,
didFinishLaunchingWithOptions: launchOptions
)
}
}Step 3: Load the Feed View
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Genuin SDK Example'),
),
body: GenuinFeedView(),
),
);
}How do I load carousel embeds?
Use the GenuinCarouselEmbedView.
SizedBox(
height: 400,
width: MediaQuery.of(context).size.width,
child: const GenuinCarouselEmbedView(
embedId: "YOUR_EMBED_ID",
uniqueId: "UNIQUE_ID",
ssoToken: "YOUR_SSO_TOKEN",
isShowProfileEnabled: false,
isDirectDeepLinkEnabled: false,
),
)How do I load a full-screen feed embed?
Use the GenuinFeedEmbedView.
SizedBox(
height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width,
child: const GenuinFeedEmbedView(
embedId: "YOUR_EMBED_ID",
uniqueId: "UNIQUE_ID",
ssoToken: "YOUR_SSO_TOKEN",
isShowProfileEnabled: false,
isDirectDeepLinkEnabled: false,
),
)Common Embed Parameters
| Parameter | Purpose |
|---|---|
| embedId | The embed experience to load |
| uniqueId | Helps differentiate multiple embeds |
| ssoToken | Enables automatic user login |
| interactionDeepLink | Redirects interactions to a custom deep link |
| isDirectDeepLinkEnabled | Opens content directly inside the white-labeled app |
| isShowProfileEnabled | Displays profile and account options |
How do I enable deep linking?
Android
Update:
android/app/src/main/AndroidManifest.xmlAdd:
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="YOUR_WHITE-LABELLED_DOMAIN"
android:scheme="https" />
</intent-filter>Then handle deep links in MainActivity.kt.
iOS
Handle deep links inside:
AppDelegate.swiftUsing:
GenuinSdkPlugin.handleDeepLink(
dlURL: userActivity.webpageURL,
controller: window?.rootViewController
)How do I enable push notifications?
The SDK supports Firebase Cloud Messaging (FCM).
Requirements
- Firebase project setup
- Firebase Messaging integration
- Token registration with Genuin SDK
Register the FCM token
final _genuinSdkPlugin = GenuinSdk();
String? token = await messaging.getToken();
if (token != null) {
await _genuinSdkPlugin.registerFCMToken(token);
}How do I enable SSO login?
To automatically authenticate users inside the SDK:
final _genuinSdkPlugin = GenuinSdk();
await _genuinSdkPlugin.ssoLogin(
"YOUR_SSO_TOKEN"
);How do I log users out from the SDK?
await _genuinSdkPlugin.ssoLogout();How can I customize the SDK loader?
The SDK uses a Lottie animation loader by default.
To override it:
Android
Place:
loader_mix.jsoninside:
android/app/src/main/res/rawiOS
Add your Lottie file into the app resources and reference it during SDK initialization:
loaderName: "YOUR_LOTTIE_LOADER_NAME"Best Practices
- Use SSO for seamless authentication
- Enable deep linking for smoother navigation
- Configure push notifications for engagement and retention
- Use unique IDs when rendering multiple embeds
- Implement white-labeled domains before enabling direct deep linking
- Use Material Components theme on Android for compatibility
Specs & Limitations
| Area | Details |
|---|---|
| Android Minimum SDK | 24 |
| iOS Minimum Version | 13.0 |
| Supported Orientation | Portrait only |
| Supported Platforms | Android & iPhone |
| Flutter Activity Requirement | Must use FlutterFragmentActivity |
| Push Notifications | Requires Firebase setup |
| Direct Deep Linking | Requires white-labeled domain |
| Loader Customization | Supports Lottie animations |
| Multiple Embeds | Requires uniqueId |
| Material Theme Dependency | Required for Android |
Example Use Cases
Brand Community App
Embed a vertical feed experience directly inside a branded mobile application.
Creator Communities
Launch interactive creator-led experiences with community discussions and engagement.
Commerce & Discovery Experiences
Use carousel embeds for product discovery, promotions, and storytelling.
Personalized Content Journeys
Combine SSO, interests, and deep linking to create seamless personalized experiences.