iOS UI Kit

The iOS UI Kit enables you to integrate a complete, production-ready video call interface into your iPhone or iPad native app with just a few lines of Swift or Objective-C. The kit is 100% native, handles auto-orientation, and reduces development time by 99% compared to building from scratch with the raw iOS SDK. The framework ships as an .xcframework with dSYMs for easy debugging.

iOS UI Kit v2.2.5  ·  Released September 11, 2026

Ships as a clean .xcframework with dSYMs. Add manually, via CocoaPods, or via Swift Package Manager (SPM). See the Installation guide for steps.

  Download iOS UI Kit
Features

The kit ships with a rich set of controls available to all participants. Moderators get an additional set of room-management capabilities.

Participants and Moderators

Moderators Only

Audio View Mode — 1-to-1 Audio Calls

v2.2.3 introduces an improved UI for 1-to-1 audio-only calls. When a participant joins without video, the kit renders a purpose-built calling screen showing the remote participant's name and avatar over a gradient background, with overlay buttons for microphone toggle and exit. This replaces the generic video grid with an experience designed specifically for voice calls.

Call these APIs before the call starts

Both isAudioViewMode and audioViewConfig must be set before the EnableX session connects. Changes made after the session starts have no effect.

Enable the Audio View Overlay

Set isAudioViewMode to true on the EnxSetting shared instance to activate the audio call UI with overlay mic-toggle and exit controls:

EnxSetting.shared.isAudioViewMode = true

Customise the Audio View Appearance

Assign an EnxAudioViewConfig instance to audioViewConfig on the shared settings object to define the visual appearance of the calling screen. All colour parameters accept standard UIColor values:

EnxSetting.shared.audioViewConfig = EnxAudioViewConfig(
    gradientLayer1: UIColor(red: 0.04, green: 0.22, blue: 0.20, alpha: 1),   // top gradient colour
    gradientLayer2: UIColor(red: 0.01, green: 0.08, blue: 0.07, alpha: 1),   // bottom gradient colour
    nameTextColor: .white,                                                     // remote participant name
    sortNameTextColor: .white,                                                 // initials text colour
    sortNameBGColor: UIColor(red: 0.07, green: 0.55, blue: 0.44, alpha: 1)   // initials avatar background
)
ParameterTypeDescription
gradientLayer1UIColorTop colour of the background gradient.
gradientLayer2UIColorBottom colour of the background gradient.
nameTextColorUIColorColour of the remote participant's display name.
sortNameTextColorUIColorColour of the initials text inside the avatar circle.
sortNameBGColorUIColorBackground colour of the avatar/initials circle.
Network and Movement Alerts

v2.2.5 adds call-quality awareness. With the network bandwidth monitor or user movement tracking enabled, the UI Kit shows an alert when bandwidth drops or the user is moving fast. From the alert, the user can switch the call to audio-only, dropping video from every stream, and switch back to video later. Both monitors are started and stopped through EnxSetting.shared:

EnxSetting.shared.startNetworkUpdate()
EnxSetting.shared.startUserMovmentUpdate()

See Customization → Network and Movement Alerts for the full API.

Get Started

Use the pages below to set up, integrate, and customize the iOS UI Kit in your app. Follow the order from left to right for a first-time integration.