Skip to main content

🧩 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:

  1. Your app passes a join URL: https://<server>/html5client/join?sessionToken=…, or any https URL whose path ends in /join.
  2. The SDK opens the meeting full-screen: audio, cameras, screen sharing, chat, whiteboard, polls, breakout rooms and picture-in-picture.
  3. 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 report cancelled) 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​

PlatformPackageInstallGuide
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
Flutterbbb_meeting_sdk on pub.devflutter pub add bbb_meeting_sdk💙 Flutter
React Native@bbb-mobile/bigbluebutton-mobile-sdk on npmnpm 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​

RequirementVersion
BigBlueButton server4.0.x (4.0.0 to 4.0.999). Other server versions end with the leave reason unsupported.
AndroidAndroid 7.0 (API 24) or later, 64-bit only (arm64-v8a, x86_64); compileSdk 36, Java 17, AGP 8.13+
iOSiOS 16.4 or later; Xcode 26.x
FlutterFlutter 3.44 or later (built and tested with 3.47)
React NativeReact 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​