📦 Packages & versions
The SDK is published on four channels, one per platform (on npm as a main package plus three native modules). 0.1.0 is published on every channel and is the version every guide uses. The Android Maven repository also has 0.1.1, an API-identical, 64-bit-only rebuild that its metadata marks as the latest release (see Published versions).
| Platform | Package | Published on | Version |
|---|---|---|---|
| 🤖 Android | org.bigbluebutton.bbb:meeting-sdk-fused-release | SDK Maven repository (static, on GitHub) | 0.1.0 (0.1.1 also available) |
| 🍎 iOS | Swift package, library product BBBMeetingSDK | GitHub, Release v0.1.0 | 0.1.0 |
| 💙 Flutter | bbb_meeting_sdk | pub.dev | 0.1.0 |
| ⚛️ React Native | @bbb-mobile/bigbluebutton-mobile-sdk | npm | 0.1.0 |
Use exact versions (0.1.0, not 0.1.+ or latest). The channels are released independently: a dynamic Gradle version would already pick up Android 0.1.1 today.
🤖 Android — Maven repository
| Coordinates | org.bigbluebutton.bbb:meeting-sdk-fused-release:0.1.0 |
| Repository URL | https://raw.githubusercontent.com/ahmad-bbbb/bigbluebutton-mobile-sdk-maven/main |
| Files | .aar, .pom and Gradle .module metadata, each with md5, sha1, sha256 and sha512 checksums |
| Size | about 88 MB (0.1.0); roughly 55 MB per ABI once installed |
The artifact is not on Maven Central. Add the repository to settings.gradle.kts; the content filter keeps Gradle from asking it for anything else:
// settings.gradle.kts
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven {
url = uri("https://raw.githubusercontent.com/ahmad-bbbb/bigbluebutton-mobile-sdk-maven/main")
content { includeGroup("org.bigbluebutton.bbb") }
}
}
}
Gradle downloads single files from the repository; there is no need to clone it. It is a fused AAR: the SDK's Kotlin API, the meeting client's Hermes bytecode bundle, LiveKit WebRTC and the Expo and React Native community modules are packed into one library. The React Native core itself (com.facebook.react:react-android 0.86.3, com.facebook.hermes:hermes-android, fbjni), AndroidX and Material are ordinary dependencies in its POM, which Gradle fetches from google() and mavenCentral(). Guava is not declared in the POM, so your app adds it (see the Android guide).
Published versions
| Version | Notes |
|---|---|
| 0.1.0 | First release, used by every guide and by the Flutter plugin. 64-bit ABIs (arm64-v8a, x86_64) plus about 10 MB of incomplete 32-bit libraries left by prebuilt dependencies; about 88 MB. |
| 0.1.1 | Android only. Same public API as 0.1.0, rebuilt from current sources. The incomplete 32-bit libraries are stripped, so the AAR is about 78 MB. |
🍎 iOS — Swift package
| Package URL | https://github.com/ahmad-bbbb/bigbluebutton-mobile-sdk |
| Version | exact 0.1.0 (git tags 0.1.0 and v0.1.0) |
| Library product | BBBMeetingSDK |
| Binaries | 11 *.xcframework.zip assets on GitHub Release v0.1.0, about 230 MB in total |
The repository-root Package.swift declares one binary target per framework and pins the SHA-256 checksum of every zip, so Swift Package Manager verifies each download. All frameworks are dynamic; Xcode embeds and signs them automatically.
| Framework | Role |
|---|---|
BBBMeetingSDK | the SDK: public Swift API, meeting UI, JavaScript bundle, sounds, fonts |
React, ReactNativeDependencies, hermesvm | React Native 0.86 runtime, prebuilt by Meta |
ExpoModulesCore, ExpoModulesJSI, ExpoModulesWorklets, ExpoFileSystem, ExpoFont, ExpoBrownfield | Expo module runtime, prebuilt by Expo |
LiveKitWebRTC | WebRTC (LiveKit build) |
There is no CocoaPods pod for native iOS apps yet. Vendoring the unzipped XCFrameworks in your own podspec works; the Flutter plugin's podspec does exactly that and can serve as a template.
💙 Flutter — pub.dev
| Package | bbb_meeting_sdk 0.1.0 |
| Requires | Flutter 3.44 or later, Dart 3.12 or later |
| Wraps | the Android AAR 0.1.0 and the iOS XCFrameworks 0.1.0 |
flutter pub add bbb_meeting_sdk
The plugin is a thin layer over the native SDKs, which your build downloads:
- Android — the plugin adds the SDK's Maven repository, pins
fbjni, ships the R8 keep rules and adds a rule meant to give debug builds the release native libraries (not exercised yet, so build release). Your app still setsminSdk, the 64-bit ABIs and thepickFirsts, and turns minification off: see the Flutter guide. - iOS — with Swift Package Manager (Flutter's default) the plugin depends on the SDK's Swift package. With CocoaPods, the first
pod installruns the plugin'sfetch_frameworks.sh, which downloads the same zips and checks their SHA-256.
⚛️ React Native — npm
Four packages, all at 0.1.0. Installing the main package brings the other three at the same version.
| Package | Content |
|---|---|
@bbb-mobile/bigbluebutton-mobile-sdk | the meeting client: <BigBlueButtonMeeting/>, configureBigBlueButtonMeeting(), TypeScript types and the patch-package patches |
@bbb-mobile/pip | Expo module: picture-in-picture (Android PiP parameters and events, iOS capability checks and multitasking camera) |
@bbb-mobile/downloads | Expo module: saves downloaded files into Android's Download folder without a picker |
@bbb-mobile/sdk-host | Expo module: the host bridge (joined, leave and error events, host commands), the Android meeting foreground service and the LiveKit setup |
npm install @bbb-mobile/bigbluebutton-mobile-sdk
The main package is a pre-resolved source tree: the client's packages plus the bigbluebutton-html5 files it uses, with every import rewritten to a relative path. Your app needs neither a custom Metro resolver nor a bigbluebutton-html5 checkout. It does need the Expo modules runtime in its native projects, two Babel plugins and the three shipped patches: see the React Native guide.
🧮 Version matrix
| SDK | BigBlueButton server | React Native | Expo SDK | LiveKit (RN / WebRTC fork / iOS WebRTC) | Minimum OS | Build toolchain | Flutter |
|---|---|---|---|---|---|---|---|
| 0.1.0 | 4.0.x (4.0.0 to 4.0.999) | 0.86.3 | ~57.0.22 (expo-brownfield 57.0.24) | ^3.0.0 / ^144.2.0 / 144.7559.15 | Android 7.0 (API 24), iOS 16.4 | AGP 8.13, Kotlin 2.1.20, Java 17, Xcode 26.x | 3.47.6 (AGP 9.1, Kotlin 2.4, Gradle 9.3) |
Release notes: the CHANGELOG and the v0.1.0 release.