# Video SDK UI Toolkit > Zoom Video SDK UI Toolkit is in a public beta. [Share your feedback](https://zoom.sjc1.qualtrics.com/jfe/form/SV_3NMYztWpWzNVSiG) with us, and leverage the [beta FAQ](#beta-faq) for details. The Zoom Video SDK UI Toolkit is a prebuilt video chat user interface powered by the Zoom Video SDK. ![UI Toolkit active speaker view](/img/uitk-ios1-active-speaker-view.png) ![UI Toolkit gallery view](/img/uitk-ios2-gallery-view.png) ![UI Toolkit participants](/img/uitk-ios5-participants.png) The UI Toolkit enables you to instantly start using a core set of Video SDK features in your app, including: - Join and leave sessions - Video on or off - Front or back camera - Mute and unmute - Chat - Display first two characters of user name when camera is off - Participant list - Screen sharing (sending and receiving) - Host and manager controls The use of this UI Toolkit is subject to the [beta program terms of use](https://explore.zoom.us/en/beta-terms-and-conditions/) and the [Video SDK terms of service](https://explore.zoom.us/en/video-sdk-terms/). ## Prerequisites - Android Studio - An Android device with API 24+ - A [Video SDK developer account](/docs/build/developer-accounts/) with credentials ## Install You can add the Zoom Video SDK UI Toolkit through Maven Central. ```groovy implementation 'us.zoom.uitoolkit:uitoolkit:' ``` _Add the version number in place of ``._ ## Add required app permissions In order for the camera and mic to work during the session, add the following: | Permission Required | Optional | Description | | ------------------- | -------- | ------------------ | | Camera | Required | Required for Video | | Microphone | Required | Required for Audio | ## Use the UI Toolkit in your project Follow these steps to add the toolkit to your app. 1. Add the toolkit to your layout and ability to join a session. 2. Get your authorization credentials. 3. Create the UI Toolkit and add it to your layout. 4. Create the session data. 5. Listen for callbacks. ### Get your authorization credentials Learn how to use your credentials to [authorize](/docs/video-sdk/auth/) the SDK so you can connect. > See the [Video SDK Auth Endpoint Sample](https://github.com/zoom/videosdk-sample-signature-node.js) for a sample app that shows how to quickly, easily, and securely generate a Video SDK JWT. ### Create the UiToolkitView and add it to your layout Create the `UiToolkitView` that takes in the `sessionContext`. The `sessionContext` is the class defined by the UI Toolkit which contains information about joining the session. ```kotlin val uiToolkitView = UiToolkitView(context) ``` ```java UiToolkitView uiToolkitView = new UiToolkitView(context); ``` Add with an XML element. ```xml ``` ### Create the session data Create the `SessionContext` that takes in required parameters such as JWT, session name and username (display name). See [Generate a Video SDK JWT](/docs/video-sdk/auth/#generate-a-video-sdk-jwt) for more information. ```kotlin val sessionContext = SessionContext(sessionName, jwt, username, password) uiToolkitView.joinSession(sessionContext) ``` ```java SessionContext sessionContext = new SessionContext(sessionName, jwt, username, password); uiToolkitView.joinSession(sessionContext); ``` ### Listen for callbacks To listen for key events when the `UiToolkitView` starts, stops, or encounters an error, implement an anonymous inner class and pass it into `addListener`. ```kotlin val listener = object : UiToolkit.Listener { override fun onViewStarted = Unit override fun onViewStopped = Unit override fun onError(error: UiToolkitError) = Unit } uiToolkitView.addListener(listener) ``` ```java UiToolkit.Listener listener = new UiToolkit.Listener() { @Override public void onViewStarted() {} @Override public void onViewStopped() {} @Override public void onError(UiToolkitError error) {} }; uiToolkitView.addListner(listener); ``` ## Add screen sharing To support sending screen share, there are new methods in the SDK. When the someone clicks the share button, the SDK emits the `onShareClicked` callback. Upon receiving this callback, you can retrieve a screen capture intent through the OS. See the Android developer documentation for details on how to handle the [`createScreenCaptureIntent`]() method. After you get the `createScreenCaptureIntent`, it is passed into `onMediaProjectionResult` in the UI Toolkit. See the [Video SDK screen sharing](/docs/video-sdk/android/share/) documentation or [the sample app](/docs/video-sdk/android/get-started/#run-the-sample-app) for more context. ## Beta FAQ ### What is the goal of this beta? Before we make this generally available, we want to get [feedback on the complete experience](https://zoom.sjc1.qualtrics.com/jfe/form/SV_3NMYztWpWzNVSiG), such as getting started, documentation, running the UI Toolkit, troubleshooting, and more. ## Reference - The UI Toolkit for Android uses similar methods to the UI Toolkit for iOS. See the [UI Toolkit for iOS reference documentation](https://marketplacefront.zoom.us/sdk/uitoolkit/ios/documentation/zoomvideosdkuitoolkit/index.html) for details on classes, protocols, structures, and enumerations. - See [error codes](/docs/video-sdk/android/ui-toolkit-error/) for error code details. - See the [changelog](/changelog/ui-toolkit/android/) for release notes. - See [Video SDK Plans & Pricing for Developer](https://zoom.us/pricing/developer) for pricing.