🧩 Mobile SDK — Overview
The BigBlueButton mobile SDK opens a BigBlueButton meeting inside your own mobile app. It is the native BigBlueButton 4.0 mobile client, packaged so that other apps can embed it, and it is developed and maintained by BiggerBlueButton.
Your app passes a join URL, the meeting opens full-screen, and when the user leaves, your app gets the leave reason back. Native Android, iOS and Flutter apps need no React Native, Expo or JavaScript of their own: the meeting client's JavaScript bundle ships inside the SDK, and the React Native runtime comes with it (inside the XCFrameworks on iOS, as Maven dependencies of the AAR on Android).
⚙️ How it works
The contract is the same on every platform:
- Your app passes a join URL:
https://<server>/html5client/join?sessionToken=…, or anyhttpsURL whose path ends in/join. - The SDK opens the meeting full-screen: audio, cameras, screen sharing, chat, whiteboard, polls, breakout rooms and picture-in-picture.
- When the user leaves, or the meeting ends, control returns to your app with a leave reason (
left,ended,error,unsupported; the Android, iOS and Flutter SDKs also reportcancelled) and an optional detail.
┌──────────┐ join URL ┌───────────────────────┐ leave reason ┌─────────────┐
│ Your app │ ───────────▶ │ BigBlueButton SDK │ ───────────────▶ │ Your app │
│ │ │ (full-screen meeting) │ │ (continues) │
└──────────┘ └───────────────────────┘ └─────────────┘
The join URL comes from your backend, which signs a BigBlueButton join call with your account's API secret. The 🔗 Integration guide walks through it end to end.
📱 Platforms & packages
| Platform | Package | Install | Guide |
|---|---|---|---|
| Android (Kotlin / Java) | org.bigbluebutton.bbb:meeting-sdk-fused-release (AAR) | Gradle, from the SDK's Maven repository | 🤖 Android |
| iOS (Swift) | Swift package BBBMeetingSDK (XCFrameworks) | Xcode → Add Package Dependencies | 🍎 iOS |
| Flutter | bbb_meeting_sdk on pub.dev | flutter pub add bbb_meeting_sdk | 💙 Flutter |
| React Native | @bbb-mobile/bigbluebutton-mobile-sdk on npm | npm install @bbb-mobile/bigbluebutton-mobile-sdk | ⚛️ React Native |
Where each package is published, and which version to install, is on 📦 Packages & versions.
✨ What's inside the meeting
- 🎙️ Audio & video — microphone, cameras and Bluetooth headsets.
- 🖥️ Screen sharing — viewing a shared screen always works. Sharing this device's screen is on by default on Android 10 and later, and opt-in on iOS (real devices only), where it needs a Broadcast Upload Extension.
- 💬 Chat, 📝 whiteboard, 📊 polls and 👥 breakout rooms — the BigBlueButton 4.0 meeting experience.
- 🪟 Picture-in-picture — where the device supports it (Android 8.0 and later, and iOS), the meeting keeps running in a floating window when the user leaves the app.
- 🎨 Themes & layouts — system, light or dark theme, and a sidebar layout for tablets and unfolded foldables.
🧰 Requirements
| Requirement | Version |
|---|---|
| BigBlueButton server | 4.0.x (4.0.0 to 4.0.999). Other server versions end with the leave reason unsupported. |
| Android | Android 7.0 (API 24) or later, 64-bit only (arm64-v8a, x86_64); compileSdk 36, Java 17, AGP 8.13+ |
| iOS | iOS 16.4 or later; Xcode 26.x |
| Flutter | Flutter 3.44 or later (built and tested with 3.47) |
| React Native | React Native 0.86.x (0.86.3 or later) with Expo modules (Expo SDK 57, expo 57.0.22 or later) |
📄 License
The SDK is licensed under LGPL-3.0, like the BigBlueButton client it embeds. The binaries also bundle third-party open-source libraries (React Native, Hermes, Expo modules, LiveKit, WebRTC and others), each under its own license (MIT, BSD or Apache-2.0). The iOS screen-share extension sources are based on Jitsi Meet's broadcast extension (Apache-2.0).
🚀 Next steps
- 📦 Packages & versions — the published packages and the version matrix.
- 🔗 Integration guide — from your BiggerBlueButton API credentials to a meeting in your app.
- 📘 API reference — join options, callbacks and leave reasons on every platform.