Links

Getting Started

Latest version release notes

Prerequisites

  • Firework App Id
  • React Native 0.60 or greater.
  • iOS project
    • iOS 13 or greater.
    • Xcode 14 or greater.
    • Swift 5.7 or greater.
  • Android Project
    • JAVA_HOME 1.8 or greater
    • minSdkVersion 21 or greater
    • compileSdkVersion 31 or greater
    • targetSdkVersion = 31 or greater
    • kotlinVersion 1.6.10 or greater

Installation

Installing Firework React Native SDK requires the following step:
  1. 1.
    Install NPM package
  2. 2.
    Setup Native project

Install NPM Package

npm install react-native-firework-sdk
#or
yarn add react-native-firework-sdk

Setup Native Project

iOS

Run pod install in the root directory of the iOS project. And we also need to re-run pod install when upgrading the RN SDK version.

Android

  • build.gradle
buildscript {
repositories {
...
// This should be added
mavenCentral()
}
dependencies {
// We don’t require Gradle plugin version. Just an example.
classpath("com.android.tools.build:gradle:4.2.2")
...
}
}
allprojects {
repositories {
...
mavenCentral()
}
}
  • gradle-wrapper.properties
...
# We don’t require Gradle version. Just an example.
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
...
  • app/build.gradle
...
apply from: 'firework.gradle'
  • add android:windowSoftInputMode="adjustPan" to the file app/src/Androidmanifest.xml if there is a story block in your app and use the live stream
<application
android:name=".MainApplication"
...>
<activity
android:name=".MainActivity"
...
android:windowSoftInputMode="adjustPan">
</activity>
</application>
  • New file: app/firework.gradle
android {
packagingOptions {
exclude 'META-INF/*.kotlin_module'
}
}
dependencies {
implementation "com.firework:sdk:+"
// Uncomment the next line if you want to integrate the single-host live stream
// implementation "com.firework.external.livestream:singleHostPlayer:+"
// Uncomment the next line if you want to integrate the multi-host live stream
// implementation "com.firework.external.livestream:multiHostPlayer:+"
}
configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.firework' && details.requested.name == 'sdk') {
details.useVersion rootProject.ext.get("fwNativeVersion")
}
if (details.requested.group == 'com.firework.external.livestream' && details.requested.name == 'singleHostPlayer') {
details.useVersion rootProject.ext.get("fwNativeVersion")
}
if (details.requested.group == 'com.firework.external.livestream' && details.requested.name == 'multiHostPlayer') {
details.useVersion rootProject.ext.get("fwNativeVersion")
}
}
}

App Id Configuration

iOS

Include the app ID in your app Info.plist file using the key FireworkVideoAppID .
See the image below:

Android

Include the appid in your app AndroidManifest.xml file, like below:
<application
...
>
<activity .../>
...
// Include the app ID
<meta-data
android:name="Firework:Appid"
android:value="your firework appid" />
</application>

SDK Initialization

import FireworkSDK from 'react-native-firework-sdk';
/*
Optional: set listener for SDK init
*/
FireworkSDK.getInstance().onSDKInit = (event) => {
console.log('onSDKInit', event);
};
/*
It is recommended to call the init method when the application starts,
e.g. in the App.tsx.
The init method supports passing options parameters.
The options type is SDKInitOptions.
*/
FireworkSDK.getInstance().init();

Video Feed

If you want to integrate a video feed, please follow the instruction here.

Shopping

If you want to integrate video shopping, please follow the instruction here.

Sample Project

We provide a sample project on Github.