{"id":2003,"date":"2022-07-18T10:37:54","date_gmt":"2022-07-18T05:07:54","guid":{"rendered":"https:\/\/www.enablex.io\/insights\/?p=2003"},"modified":"2023-10-04T16:25:03","modified_gmt":"2023-10-04T10:55:03","slug":"customise-video-call-mobile-app","status":"publish","type":"post","link":"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/","title":{"rendered":"How to Customise And Beautify Your Video Call Mobile App With EnableX UIKit"},"content":{"rendered":"<p>Behind any app\u2019s success story, UI or User Interface plays a critical role. But building that UI is an uphill task for developers. It involves countless lines of coding. That\u2019s why UIKits are becoming popular. They do all the heavy lifting, making it simple and quick for developers to create and customise UI.<\/p>\n<p>In this blog post, we\u2019ll take a close look at how to customise and beautify your video call mobile app with EnableX UIKit, the problem that it solves for you, why it is superior to other UIKits in the market and how you can easily use it in your next mobile video call app project.<\/p>\n<h2><strong>EnableX UIKit Framework: Why It Stands Out<\/strong><\/h2>\n<p>The EnableX UIKit stands out in the crowd when it comes to adding embedded calling on both Android and iOS devices. It\u2019s intelligently built on top of the native UIKit components. You get fully native components, such as UIView, UIButton, UILable, UITableView, UICollectionView, and so on.<\/p>\n<p>Adding a live video call feature to a mobile app involves a lot of effort, time, and coding. Developers are swamped with tasks such as managing the UI complexity and the media streams, signalling and notification-related events, and much more.<\/p>\n<p>The problem is that most UIKits available in the market are web-based; they lack native UI components. Shortcomings of commonly available web-based UIKits:<\/p>\n<ul>\n<li>They don\u2019t give the native look and feel.<\/li>\n<li>They don\u2019t offer the desired flexibility to customise various components.<\/li>\n<li>They clearly lack performance efficiency.<\/li>\n<\/ul>\n<p>EnableX has swept aside these issues by introducing its UIKit. You\u2019re no longer required to write thousands of lines of code. Just a few lines of code is enough. It sounds miraculous, but that\u2019s what it can do.<\/p>\n<h2><strong>Why EnableX Introduced EnableX UIKit <\/strong><\/h2>\n<p>There are many UIKits in the market, but they all come with the same problem \u2013 users must do a lot of coding. Since we constantly interact with developers, we quickly realized that users don\u2019t want a partial solution. They want a once-and-for-all plug-and-play solution to audio-video and overall UI handling.<\/p>\n<p>That\u2019s when we decided to launch the UIKit to enable developers to smoothly add the audio-video feature to create a purpose-built live video calling app.<\/p>\n<p>To enable the audio-video feature in an app, we need to work on two distinct entities:<\/p>\n<ul>\n<li><strong>Core Server<\/strong><br \/>\nIt handles the low-level media and network part of A\/V calling and presents a sample API for us to use.<\/li>\n<li><strong>UIKit<br \/>\n<\/strong>It uses the APIs presented on the core server to enable an A\/V feature object.<\/li>\n<\/ul>\n<p>Find out more about the <a href=\"https:\/\/www.enablex.io\/developer\/video\/solutions\/video-ui-kit\/\">EnableX UIKit <\/a><\/p>\n<p>The objects of the audio-video class and subclass, such as RTCCameraPreviewView and RTCMTLVideoView are both handled internally in our UIKit.<\/p>\n<p>Another big win for you is that the EnableX UIKit can be integrated seamlessly with Storyboards and SwiftUI. It\u2019s the industry\u2019s first-ever CPaaS provider that supports both Storyboard and SwiftUI. While building the UIKit for you, it took special care of navigation and screen-friendliness of each and every component.<\/p>\n<h2><strong>How to Integrate EnableX UIKit into Your Mobile App<\/strong><\/h2>\n<p>Here\u2019s the code snippet:<\/p>\n<ol>\n<li>Install UIkit through pod:<br \/>\n<strong>pod &#8216;Enx_UIKit_iOS&#8217;<\/strong><\/li>\n<\/ol>\n<ol start=\"2\">\n<li>Initiate the video class:<br \/>\n<strong>var<\/strong> videoView = EnxVideoViewClass(token: &#8220;A valid token to join room&#8221;, delegate: <strong>self<\/strong>)<\/li>\n<\/ol>\n<ol start=\"3\">\n<li>Add the following video class to view where you want to display it: addSubview(videoView)<\/li>\n<li>Set the frame for video view based on your display size:<br \/>\nvideoView.frame = view.bounds<\/li>\n<\/ol>\n<ol start=\"5\">\n<li>Set the constraints for video view, so that once the device rotates, the UI auto-adjusts:<br \/>\nvideoView.autoresizingMask = [.flexibleHeight,.flexibleWidth]<\/li>\n<\/ol>\n<h2><strong>Callbacks from EnableX\u2019s UIKit<\/strong><\/h2>\n<p>Users will receive the following notifications from the UIKit when they get disconnected or are unable to join the room:<\/p>\n<ul>\n<li><strong>func<\/strong> disconnect (response: [<strong>Any<\/strong>]?)<\/li>\n<\/ul>\n<p>End-users get the above notification when they get disconnected on their own, or by the moderator, or if the session expires.<\/p>\n<ul>\n<li><strong>func<\/strong> connectError(reason: [<strong>Any<\/strong>]?)<\/li>\n<\/ul>\n<p>Participants receive the above notification when they face issues while connecting with the EnableX room because of a wrong token or the number of participants exceeds the room size, or for any other reason.<\/p>\n<h2><strong>Taking Customization to the Next Level<\/strong><\/h2>\n<h3><strong>1. <\/strong><strong>Customize Bottom Bar<\/strong><\/h3>\n<p>With the EnableX UIKit, users can customize the UI based on their app\u2019s theme. For example, change the bottom option view background colour:<\/p>\n<p>EnxSetting.shared.updateBottomOptionView(withColor:UIColor)<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Customize Buttons Based on Function <\/strong><\/p>\n<ul>\n<li>Define Audio-Mute Button:<br \/>\nlet audioBtn = UIButton(type: .custom)<br \/>\ntag = BottomOptions.audio.rawValue<\/li>\n<li>Define Video-Mute Button:<br \/>\nlet videoBtn = UIButton(type: .custom)<br \/>\ntag = BottomOptions.video.rawValue<\/li>\n<li>Define Camera Switch Button:<br \/>\nlet cameraBtn = UIButton(type: .custom)<br \/>\ntag = BottomOptions.cameraSwitch.rawValue<\/li>\n<li>Add Buttons:<br \/>\nEnxSetting.shared.configureBottomOptionList(withList: [audioBtn, videoBtn, cameraBtn])<\/li>\n<\/ul>\n<h3><strong>2. Update Top Bar View<\/strong><\/h3>\n<p>&nbsp;<\/p>\n<p>For example, change the top option view background color:<\/p>\n<p>EnxSetting.shared.updateTopOptionView(withColor: UIColor)<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Add Button on Top Bar View<\/strong><\/li>\n<\/ul>\n<p>EnxSetting.shared.configureTopOptionList(withList: [button-list])<\/p>\n<p>For Example:<\/p>\n<ul>\n<li>Define Participant\u2019s Button:<br \/>\nlet participant = UIButton(type: .custom)<br \/>\ntag = TopOptions.userList.rawValue<\/li>\n<li>Define Menu Button:<br \/>\nlet menu = UIButton(type: .custom)<br \/>\ntag = TopOptions.menu.rawValue<\/li>\n<\/ul>\n<p>Add Buttons:<br \/>\nEnxSetting.shared.configureTopOptionList(withList: [participant, menu])<\/p>\n<p>Hey, your UI is now ready to use! That was quick, wasn\u2019t it?<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-2005\" src=\"https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/1st-Set-of-Images-1024x494.png\" alt=\"Customize And Beautify Video Call App\" width=\"760\" height=\"367\" data-sitemapexclude=\"true\" srcset=\"https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/1st-Set-of-Images-1024x494.png 1024w, https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/1st-Set-of-Images-300x145.png 300w, https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/1st-Set-of-Images-768x371.png 768w, https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/1st-Set-of-Images.png 1374w\" sizes=\"(max-width: 760px) 100vw, 760px\" \/><\/p>\n<p>You can customise and beautify your video call mobile app:<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-2006\" src=\"https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/2nd-Set-of-Images-1024x494.png\" alt=\"Beautify Video Call App enablex UIKit\" width=\"760\" height=\"367\" data-sitemapexclude=\"true\" srcset=\"https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/2nd-Set-of-Images-1024x494.png 1024w, https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/2nd-Set-of-Images-300x145.png 300w, https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/2nd-Set-of-Images-768x371.png 768w, https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/2nd-Set-of-Images.png 1374w\" sizes=\"(max-width: 760px) 100vw, 760px\" \/><\/p>\n<h2><strong>To Conclude<\/strong><\/h2>\n<p>Customising and spicing up the look and feel of audio-video calls using the EnableX UIKit is now a cakewalk! The flexibility it offers is unthinkable with any other UIKits out there.<\/p>\n<p>So, Let&#8217;s get cracking, upgrade your app with this awesome guide, and focus on achieving your business goals. Do share your thoughts with us on how it worked out.<\/p>\n<p>To check out more examples and sample codes, visit our <a href=\"https:\/\/github.com\/EnableX\/EnableX-Video-Chat-Application-Sample--with-SwiftUI\">GitHub<\/a> repository.<\/p>\n<p><a href=\"https:\/\/portal.enablex.io\/cpaas\/trial-sign-up\/\">Sign up<\/a> Now and Build something exciting!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Behind any app\u2019s success story, UI or User Interface plays a critical role. But building that UI is an uphill task for developers. It involves countless lines of coding. That\u2019s why UIKits are becoming popular. They do all the heavy lifting, making it simple and quick for developers to create and customise UI. In this &#8230;<\/p>\n","protected":false},"author":13,"featured_media":2004,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[134,122,93],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Customize Your Video Call Mobile App with EnableX<\/title>\n<meta name=\"description\" content=\"Customize your video call mobile app with EnableX. Explore customize feature to create video call solution that suits your brand perfectly.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Customize Your Video Call Mobile App with EnableX\" \/>\n<meta property=\"og:description\" content=\"Customize your video call mobile app with EnableX. Explore customize feature to create video call solution that suits your brand perfectly.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/\" \/>\n<meta property=\"og:site_name\" content=\"Insights about video API, SMS API; WhatsApp for Business API\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-18T05:07:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-04T10:55:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/Customise-And-Beautify-Your-Video-Call-Mobile-App-featured-image.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"768\" \/>\n\t<meta property=\"og:image:height\" content=\"270\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Jay Prakash\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@enablexio\" \/>\n<meta name=\"twitter:site\" content=\"@enablexio\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jay Prakash\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Customize Your Video Call Mobile App with EnableX","description":"Customize your video call mobile app with EnableX. Explore customize feature to create video call solution that suits your brand perfectly.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/","og_locale":"en_US","og_type":"article","og_title":"Customize Your Video Call Mobile App with EnableX","og_description":"Customize your video call mobile app with EnableX. Explore customize feature to create video call solution that suits your brand perfectly.","og_url":"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/","og_site_name":"Insights about video API, SMS API; WhatsApp for Business API","article_published_time":"2022-07-18T05:07:54+00:00","article_modified_time":"2023-10-04T10:55:03+00:00","og_image":[{"width":768,"height":270,"url":"https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2022\/07\/Customise-And-Beautify-Your-Video-Call-Mobile-App-featured-image.webp","type":"image\/webp"}],"author":"Jay Prakash","twitter_card":"summary_large_image","twitter_creator":"@enablexio","twitter_site":"@enablexio","twitter_misc":{"Written by":"Jay Prakash","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/#article","isPartOf":{"@id":"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/"},"author":{"name":"Jay Prakash","@id":"https:\/\/www.enablex.io\/insights\/#\/schema\/person\/177772d7666ac5cc9000b8bc75065332"},"headline":"How to Customise And Beautify Your Video Call Mobile App With EnableX UIKit","datePublished":"2022-07-18T05:07:54+00:00","dateModified":"2023-10-04T10:55:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/"},"wordCount":958,"publisher":{"@id":"https:\/\/www.enablex.io\/insights\/#organization"},"articleSection":["Codes &amp; Tutorials","Communication APIs","Video API"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/","url":"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/","name":"Customize Your Video Call Mobile App with EnableX","isPartOf":{"@id":"https:\/\/www.enablex.io\/insights\/#website"},"datePublished":"2022-07-18T05:07:54+00:00","dateModified":"2023-10-04T10:55:03+00:00","description":"Customize your video call mobile app with EnableX. Explore customize feature to create video call solution that suits your brand perfectly.","breadcrumb":{"@id":"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.enablex.io\/insights\/customise-video-call-mobile-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.enablex.io\/insights\/"},{"@type":"ListItem","position":2,"name":"How to Customise And Beautify Your Video Call Mobile App With EnableX UIKit"}]},{"@type":"WebSite","@id":"https:\/\/www.enablex.io\/insights\/#website","url":"https:\/\/www.enablex.io\/insights\/","name":"Enablex","description":"","publisher":{"@id":"https:\/\/www.enablex.io\/insights\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.enablex.io\/insights\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.enablex.io\/insights\/#organization","name":"Enablex","url":"https:\/\/www.enablex.io\/insights\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.enablex.io\/insights\/#\/schema\/logo\/image\/","url":"https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2023\/05\/EnableX-Logo-01.png","contentUrl":"https:\/\/www.enablex.io\/insights\/wp-content\/uploads\/2023\/05\/EnableX-Logo-01.png","width":17382,"height":3567,"caption":"Enablex"},"image":{"@id":"https:\/\/www.enablex.io\/insights\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/twitter.com\/enablexio","https:\/\/www.linkedin.com\/company\/vcloudx"]},{"@type":"Person","@id":"https:\/\/www.enablex.io\/insights\/#\/schema\/person\/177772d7666ac5cc9000b8bc75065332","name":"Jay Prakash","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.enablex.io\/insights\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3a0ec553fa03c5d264afe0183ffed535?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3a0ec553fa03c5d264afe0183ffed535?s=96&d=mm&r=g","caption":"Jay Prakash"},"description":"Jay has more than 14 years of proven experience in designing &amp; developing web &amp; mobile applications. He is a passionate coder and loves to design and build native &amp; hybrid mobile apps.","url":"https:\/\/www.enablex.io\/insights\/author\/jay-prakash\/"}]}},"_links":{"self":[{"href":"https:\/\/www.enablex.io\/insights\/wp-json\/wp\/v2\/posts\/2003"}],"collection":[{"href":"https:\/\/www.enablex.io\/insights\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.enablex.io\/insights\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.enablex.io\/insights\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.enablex.io\/insights\/wp-json\/wp\/v2\/comments?post=2003"}],"version-history":[{"count":0,"href":"https:\/\/www.enablex.io\/insights\/wp-json\/wp\/v2\/posts\/2003\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.enablex.io\/insights\/wp-json\/wp\/v2\/media\/2004"}],"wp:attachment":[{"href":"https:\/\/www.enablex.io\/insights\/wp-json\/wp\/v2\/media?parent=2003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.enablex.io\/insights\/wp-json\/wp\/v2\/categories?post=2003"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.enablex.io\/insights\/wp-json\/wp\/v2\/tags?post=2003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}