Skip to main content

📦 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).

PlatformPackagePublished onVersion
🤖 Androidorg.bigbluebutton.bbb:meeting-sdk-fused-releaseSDK Maven repository (static, on GitHub)0.1.0 (0.1.1 also available)
🍎 iOSSwift package, library product BBBMeetingSDKGitHub, Release v0.1.00.1.0
💙 Flutterbbb_meeting_sdkpub.dev0.1.0
⚛️ React Native@bbb-mobile/bigbluebutton-mobile-sdknpm0.1.0
Pin exact versions

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​

Coordinatesorg.bigbluebutton.bbb:meeting-sdk-fused-release:0.1.0
Repository URLhttps://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
Sizeabout 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​

VersionNotes
0.1.0First 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.1Android 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 URLhttps://github.com/ahmad-bbbb/bigbluebutton-mobile-sdk
Versionexact 0.1.0 (git tags 0.1.0 and v0.1.0)
Library productBBBMeetingSDK
Binaries11 *.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.

FrameworkRole
BBBMeetingSDKthe SDK: public Swift API, meeting UI, JavaScript bundle, sounds, fonts
React, ReactNativeDependencies, hermesvmReact Native 0.86 runtime, prebuilt by Meta
ExpoModulesCore, ExpoModulesJSI, ExpoModulesWorklets, ExpoFileSystem, ExpoFont, ExpoBrownfieldExpo module runtime, prebuilt by Expo
LiveKitWebRTCWebRTC (LiveKit build)
CocoaPods

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​

Packagebbb_meeting_sdk 0.1.0
RequiresFlutter 3.44 or later, Dart 3.12 or later
Wrapsthe 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 sets minSdk, the 64-bit ABIs and the pickFirsts, 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 install runs the plugin's fetch_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.

PackageContent
@bbb-mobile/bigbluebutton-mobile-sdkthe meeting client: <BigBlueButtonMeeting/>, configureBigBlueButtonMeeting(), TypeScript types and the patch-package patches
@bbb-mobile/pipExpo module: picture-in-picture (Android PiP parameters and events, iOS capability checks and multitasking camera)
@bbb-mobile/downloadsExpo module: saves downloaded files into Android's Download folder without a picker
@bbb-mobile/sdk-hostExpo 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​

SDKBigBlueButton serverReact NativeExpo SDKLiveKit (RN / WebRTC fork / iOS WebRTC)Minimum OSBuild toolchainFlutter
0.1.04.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.15Android 7.0 (API 24), iOS 16.4AGP 8.13, Kotlin 2.1.20, Java 17, Xcode 26.x3.47.6 (AGP 9.1, Kotlin 2.4, Gradle 9.3)

Release notes: the CHANGELOG and the v0.1.0 release.