Browse In-App Agent

You're viewing docs for embed_flutter 0.3.0, an older version. The latest is 0.4.0. View the latest docs

Flutter Compatibility & Dependency Matrix

embed_flutter: the official compatibility guide.

SDK version this guide describes: 0.3.0 Flutter coverage: 3.29 → latest stable · Dart: 3.7 – 3.x

This page lists the Flutter and Dart versions and the platform minimums the SDK supports, and the dependency versions it ships with. The platform minimums come from the SDK's native dependencies (LiveKit + WebRTC, permission_handler), not from the SDK's own Dart code.


1. Flutter / Dart support

Declared by the package:

environment:
  sdk: ">=3.7.0 <4.0.0"
  flutter: ">=3.29.0"
Support tierFlutterWhat it means
✅ Reference / tested3.41.x (current stable)Built and tested on a physical Android device (Pixel-class, Android 14) with Flutter 3.41.x and Dart 3.11. Known to work.
✅ Supported3.29 → latest stable0.3.0 reads semantics roles (SemanticsData.role), which first shipped in Flutter 3.29. Test the integration in your own app.
⛔ Unsupported< 3.29flutter pub get won't resolve embed_flutter ^0.3.0. Stay on embed_flutter: 0.2.0 (Flutter ≥ 3.0 / Dart ≥ 3.0) until you can upgrade.

New in 0.3.0: the minimum moved from Flutter 3.0 / Dart 3.0 to Flutter 3.29 / Dart 3.7. The SDK doesn't require any particular app architecture or build flag. The platform minimums below come from the dependency graph.


2. Platform floors

These come from livekit_client (via flutter_webrtc) and permission_handler. The SDK's own code adds no stricter requirement. Check the current versions of those plugins for your exact targets.

PlatformMinimumDriven byNotes
AndroidminSdk 21 (Android 5.0), compileSdk 34+WebRTC (flutter_webrtc)Newer livekit_client / permission_handler majors can raise compileSdk; use the Flutter default compileSdkVersion. Needs INTERNET, RECORD_AUDIO, MODIFY_AUDIO_SETTINGS, ACCESS_NETWORK_STATE, WAKE_LOCK, BLUETOOTH_CONNECT.
iOS13.0 deployment targetflutter_webrtc / LiveKitSet platform :ios, '13.0' in the Podfile. Needs NSMicrophoneUsageDescription and PERMISSION_MICROPHONE=1.
Web / desktopnot supportedLiveKit mobile stack + app-support directoryThe SDK targets Android + iOS only.

Platform minimums are unchanged from 0.2.0.


3. Dependency matrix (0.3.0)

These are the SDK's direct dependencies. They are ordinary pub ^ ranges, so your app shares a single copy of each through pub's version solver (there is no peer-dependency nesting as in npm). Resolved is the version pub chose when 0.3.0 was built (Flutter 3.41.5 / Dart 3.11.3). Your app may resolve to any compatible newer version.

PackageConstraintResolved (0.3.0 build)Role in the SDKCompatibility notes
flutterSDK (≥ 3.29.0)3.41.5UI + widget layer, Semantics treeFloor raised in 0.3.0.
livekit_client^2.5.32.6.5Real-time voice, the data channel used by the agent, and the agent's video trackThe heaviest native dependency (WebRTC), and the source of the Android/iOS minimums. If your app also uses livekit_client, keep it within ^2.5.
flutter_webrtcvia livekit_client1.3.0WebRTC engineTransitive. Don't add a second copy.
permission_handler^12.0.112.0.1Microphone permission request + settings deep-linkMajor bumps periodically raise the Android compileSdk/targetSdk minimum.
lottie^3.3.13.3.2Agent button / avatar animationsPure Dart rendering; low risk.
shared_preferences^2.2.22.5.4Small key/value SDK state (configuration, event queue, user id)—
path_provider^2.1.02.1.5App-support directory for the on-device screen cache0.3.0 moves the cache to a new format. Old cached screens are discarded locally on upgrade, and you don't need to do anything.
http^1.2.01.6.0REST calls (initialize, token, screen-cache sync, analytics)—

Direct dependency constraints are unchanged from 0.2.0. There are no peer dependencies to declare, and no platform-channel plugins beyond the ones above. The Chelsea Market font ships with the package.

To check that your app resolves a single copy of each:

flutter pub deps --style=compact | grep -E "livekit_client|flutter_webrtc|permission_handler|lottie"

4. "Install succeeds" ≠ "works": the checklist

  1. Flutter ≥ 3.29 / Dart ≥ 3.7. Otherwise flutter pub get fails to resolve 0.3.0.
  2. iOS deployment target ≥ 13.0 in the Podfile. Otherwise pod install fails on the WebRTC pod.
  3. Android minSdk ≥ 21. Otherwise the WebRTC AAR won't link.
  4. Permissions declared: NSMicrophoneUsageDescription + PERMISSION_MICROPHONE=1 (iOS), and RECORD_AUDIO and the related permissions (Android). If these are missing, the call silently never connects.
  5. EmbedNavigatorObserver registered and a USER_DATA event sent after login. Without the observer the agent has no route context. Without USER_DATA the token fetch is skipped and no call can start.
  6. If your app already depends on livekit_client, keep it within ^2.5 so pub resolves a single copy.

5. Upgrading

  • 0.2.0 → 0.3.0: upgrade Flutter to 3.29+ if needed, then change the constraint to ^0.3.0. No code changes are required. See the 0.3.0 release notes for behaviour changes.
  • Upgrading Flutter within 3.x (from 3.29 on) is safe.
  • When you bump livekit_client or permission_handler majors, re-check the Android compileSdk and iOS deployment-target minimums. Those two plugins are where platform-minimum changes come from.

ComponentRecommended
Flutterlatest stable (≥ 3.29)
Dartbundled with Flutter (≥ 3.7)
iOS deployment target13.0
Android minSdk / compileSdk21 / Flutter default (34+)
embed_flutter^0.3.0

Support