Getting Started
Firework Android SDK v6 is a library that provides a set of programming interfaces that enable developers to integrate video feeds from Firework - a shoppable video and Livestream platform - into an Android app.
Firework Android SDK v6 is compatible with the following:
- Android min SDK 21.
- Kotlin/Java code base.
- Gradle build system.
To integrate Firework Android SDK v6 into your application, you have to register your application with the Firework platform and get a unique client ID. To get the client ID:
- Provide your application's package name to the business team/engineering team you are coordinating with.
- You will receive via email the client ID via and then follow the setup steps below under Firework IDs to include both in your app.
The client ID is used to authenticate your application with the server. Authentication will fail if you use the wrong client ID.
The library packages are accessible through MavenCentral repositories. You can check for the latest stable released version using the MavenCentral tag on top of this doc.
Add this to your
build.gradle
or build.gradle.kts
repositories:Gradle
Kotlin
repositories {
...
mavenCentral()
}
repositories {
...
mavenCentral()
}
Add these dependencies based on your requirements:
- Firework Sdk: The main dependency of Firework Android SDK v6 is required for the library initialization and video feed view features.
- Single Host Livestream: If you are planning to use a single host Livestream from an external source.
- Multi-Host Livestream: If you are planning to use Livestream with multiple hosts.
- Image Loader: The SDK requires an image loader that can be one of the predefined Glide or Picasso or your custom implementation of the
ImageLoader
interface using your own solution.
Gradle
Kotlin
def fireworkSdkVersion = "latest_firework_sdk_version"
implementation 'com.firework:sdk:$fireworkSdkVersion'
// Only for single host (Optional)
implementation 'com.firework.external.livestream:singleHostPlayer:$fireworkSdkVersion'
// Only for multi host (Optional)
implementation 'com.firework.external.livestream:multiHostPlayer:$fireworkSdkVersion'
// Glide (Optional)
implementation 'com.firework.external.imageloading:glide:$fireworkSdkVersion'
// Picasso (Optional)
implementation 'com.firework.external.imageloading:picasso:$fireworkSdkVersion'
val fireworkSdkVersion = "latest_firework_sdk_version"
implementation("com.firework:sdk:$fireworkSdkVersion")
// Only for single host (Optional)
implementation("com.firework.external.livestream:singleHostPlayer:$fireworkSdkVersion")
// Only for multi host (Optional)
implementation("com.firework.external.livestream:multiHostPlayer:$fireworkSdkVersion")
// Glide (optional)
implementation("com.firework.external.imageloading:glide:$fireworkSdkVersion")
// Picasso (optional)
implementation("com.firework.external.imageloading:picasso:$fireworkSdkVersion")
Call this code in your custom application class
onCreate
method to initialize the Firework SDK:Kotlin
Java
import com.firework.sdk.FireworkSdk
import com.firework.sdk.FireworkSdkConfig
import com.firework.sdk.FireworkInitError
import com.firework.imageloading.glide.GlideImageLoaderFactory
class ExampleApp : Application() {
override fun onCreate() {
super.onCreate()
// build Firework Android SDK configuration
val config = FireworkSdkConfig.Builder(this)
.checksumRequired(false)
.clientId(FW_CLIENT_ID) // Client OAUTH Id
.userId("example app user ID") // User Id in your eco-system
.imageLoader(GlideImageLoaderFactory.createInstance()) // glide, picasso, or your ImageLoader implementation
.enableCache(true) // Enable or disable video players cache, enabled by default
.maxCacheSizeBytes(MAX_CACHE_SIZE_BYTES) // Max cache size used by video players, 25MB by default
.muteOnLaunch(true) // Mute videos on lauch
.addLivestreamPlayerInitializer(LivestreamPlayerInitializer()) // For single-host livestream use
.addLivestreamPlayerInitializer(MultihostLivestreamPlayerInitializer()) // For multi-host livestream use
.build()
// initialize Firework Android SDK v2
FireworkSdk.init(
fireworkSdkConfig = config,
onSuccess = {
// Initialization was successful
},
onError = { error ->
when (error) {
is FireworkInitError.InitializationError -> {
// Handle initialization error
}
}
},
)
}
}
import android.app.Application;
import com.firework.imageloading.glide.GlideImageLoaderFactory;
import com.firework.sdk.FireworkSdk;
import com.firework.sdk.FireworkSdkConfig;
import kotlin.Unit;
public class ExampleApp extends Application{
@Override
public void onCreate() {
super.onCreate();
// build Firework Android SDK configuration
FireworkSdkConfig config = new FireworkSdkConfig
.Builder(this)
.checksumRequired(false)
.clientId(FW_CLIENT_ID) // Client OAUTH Id
.userId("example app user ID") // User Id in your eco-system
.imageLoader(GlideImageLoaderFactory.INSTANCE.createInstance()) // glide, picasso, or your ImageLoader implementation
.enableCache(true) // Enable or disable video players cache, enabled by default
.maxCacheSizeBytes(MAX_CACHE_SIZE_BYTES) // Max cache size used by video players, 25MB by default
.muteOnLaunch(true) // Mute videos on lauch
.addLivestreamPlayerInitializer(LivestreamPlayerInitializer()) // For single-host livestream use
.addLivestreamPlayerInitializer(MultihostLivestreamPlayerInitializer()) // For multi-host livestream use
.build();
FireworkSdk.init(
config,
() -> {
// Initialization was successful
return Unit.INSTANCE;
},
fireworkInitError -> {
// Handle initialization error
return Unit.INSTANCE;
}
);
}
}
Last modified 1mo ago