Introducing Azure Communication Services UI Library to Xamarin
Overview
A few months ago we released the Azure Communication Services UI Library for iOS & Android (https://techcommunity.microsoft.com/t5/azure-communication-services/azure-communication-services-ui-library-now-available-for-ios/ba-p/3556319). Today we are excited to share our first efforts with Cross-Platform development. To help empower more mobile developers around the world we have created a Xamarin sample to showcase how to introduce calling capabilities into their current applications.
The sample will walk through steps on how Xamarin developers can create a binding for the iOS and Android platform. These binding libraries allow a Xamarin application to consume and third-party native library.
Using the Samples
The great thing about our sample repo is that developers can just dive into our repo and take our bindings as is and include them in their project.
Developers can check out the contents on XamariniOSBindings. There is a pre-built proxy library that bridges the Swift interface to Objective-C already, feel free to copy and edit these to your needs. There is also a helpful script developers can use to build the FATFrameworks for the bindings.
CommunicationUIProxy.Binding contains the solution that builds the .dll that can be used in your Xamarin Application. In your applications iOS.csproj you can add our newly created iOS binding .dll under the references folder.
Learn more about creating iOS bindings here: Walkthrough: Bind an iOS Swift library - Xamarin | Microsoft Docs
The contents of XamarinAndroidBindings has multiple folders in it. AzureCore, AzureCommunicationCommon, and CommunicationUILibrary. Each contain their own solution and csproj. Developers can reference these csproj directly in their solution or use the .dll files they generated in their own application. Let's not forget to include our AzureCommunicationCalling .aar as an AndroidAarLibrary build item.
Learn more about creating Android bindings here: Binding an .AAR - Xamarin | Microsoft Docs
Now that the binding libraries are included, we can update the source code of the app and use the new public apis.
Finally! Our app now can launch the UI composite. We now have an audio and video experience embedded into the app.
Of course, you can always just run our sample solution in the repo, play around and see how things work. You will notice you can launch the experience and it will be identical to how you expect native behavior to be.
Check out: Azure-Samples/communication-services-ui-library-xamarin: UI sample library on how to create Xamarin bindings (github.com) to learn more!
Published on:
Learn moreRelated posts
New Test Run Hub in Azure Test Plans
Delivering high-quality software is a necessity and that’s why Azure Test Plans has introduced the all-new Test Run Hub, an enabler for teams ...
Microsoft Teams: New SlimCore-based optimization for Microsoft Teams in VDI – support for MacOS on Citrix and Azure Virtual Desktops/Windows 365
This feature allows MAC endpoints to optimize Microsoft Teams in VDI environments with the new SlimCore-based media engine, providing an expan...
Microsoft Whiteboard: Azure to OneDrive migration progress update
Microsoft Whiteboard storage is migrating from Azure to OneDrive, starting February 2024 and completing by August 2025, with full deprecation ...
Copilot Studio: Azure AI Search Complete Setup Guide
Copilot Studio can use an Azure AI Search index as knowledge to answer Users questions ... The post Copilot Studio: Azure AI Search Complete S...
Microsoft Azure Fundamentals #1: Creating External Tenants in Entra ID: A Step-by-Step Guide
It is important to configure external tenants for different scenarios. In this post we can see how to create a tenant step by step so that it ...
Azure Information Protection: Enable multifactor authentication for your Azure tenant by October 1, 2025
Microsoft will enforce multifactor authentication (MFA) for all Azure resource management actions starting October 1, 2025, with a postponemen...
Azure Automation Custom Runtime Environments
A custom runtime environment is a way of defining a specific job execution environment for Azure Automation runbooks, including Microsoft Grap...
Dynamics 365 Customer Insights – Data – Export your data to Azure Data Lake Storage
We are announcing the general availability of the export to Azure Data Lake Storage (ADLS) feature in Dynamics 365 Customer Insights – Data on...
Dynamics 365 Business Central: Quickly find the Tenant ID, Azure AD Instance, and Tenant Scope from the domain (tenant) name without signing in
Hi, Readers.Today I would like to share another mini tip, how to quickly find the Tenant ID, Azure AD Instance, and Tenant Scope from the doma...