# Setup Guide ## 0. Flutter and Android tooling baseline (Windows) Install and verify Flutter before SDK wiring. ```bash # install location example git clone https://github.com/flutter/flutter.git -b stable --depth 1 C:\users\dreamtcs\tools\flutter # verify C:\users\dreamtcs\tools\flutter\bin\flutter.bat --version C:\users\dreamtcs\tools\flutter\bin\flutter.bat doctor -v ``` If Flutter is not on PATH in your shell, use the full `flutter.bat` path for all commands. ## 1. Install package ```yaml dependencies: flutter_zoom_videosdk: ^ ``` ```bash flutter pub get ``` ## 2. Initialize SDK ```dart final zoom = ZoomVideoSdk(); await zoom.initSdk(InitConfig( domain: 'zoom.us', enableLog: true, )); ``` If init fails without a clear error string, wrap `initSdk` with `PlatformException` handling and surface `code/message/details` in UI logs. ## 3. Core prerequisites - Flutter and Dart toolchain compatible with wrapper version. - iOS/Android native setup aligned with package expectations. - Backend service for Video SDK JWT generation. ## 4. Android host app requirements - Set `minSdk` to at least `28` in the app module. - Add runtime permissions for camera and mic (plus Bluetooth connect where applicable). - If Java compile fails with `ZoomVideoSDKDelegate not found`, add the Zoom Android artifacts in the app module dependencies: ```kotlin dependencies { implementation("us.zoom.videosdk:zoomvideosdk-core:2.3.10") implementation("us.zoom.videosdk:zoomvideosdk-videoeffects:2.3.10") implementation("us.zoom.videosdk:zoomvideosdk-annotation:2.3.10") implementation("us.zoom.videosdk:zoomvideosdk-whiteboard:2.3.10") implementation("us.zoom.videosdk:zoomvideosdk-broadcast-streaming:2.3.10") } ``` ## 5. ADB device setup (physical Android recommended) When emulator startup is unstable, run on a real phone: ```bash # pairing (from Wireless debugging) adb pair # connect (from mDNS connect port) adb connect adb devices -l ``` Then run the app: ```bash flutter run -d --debug --no-resident ``` ## 6. Security baseline - Never embed SDK secret in app bundle. - Issue short-lived session tokens server-side. - Validate all session join parameters before SDK call.