Understand why native applications are often the best choice for RTE on mobile. Explore the differences between native vs web.
Dive deeper: Agora provides native, mobile and web SDKs for all the major platforms. Explore our tutorials and quick start guides in our Developer Resources.
This time, I want to talk about Native clients. What we’re going to do in this lesson is understand real-time engagement support on mobile applications are and we also going to review the PC native applications for real time engagement, so mobile and desktop.
Read the full transcript
Let’s start with mobile. If you think about it with two native mobile operating systems, we either use iOS or Android, this is what our users are going to end up using anyways. Now with mobile devices, we need to understand the chipset architecture that is being used. What we have today is an SOC approach in mobile system on chip. With a system on chip, what we need to deal with is the fact that these mobile devices are mobile and small, and they need to be lightweight. Which means that at the end of the day, what we have is low power consumption on these devices. And we want lower power consumption so that the battery life will be longer and the devices won’t heat up too fast. To get there, we need to limit the processing power that we have. So, the chipsets for mobile have low power consumption with limited CPU power. This leads to the solution that exists today on mobile devices, which is to use hardware acceleration, for the things that require a lot of CPU and processing power.
So, if we’re targeting laptops, and desktops, then the operating system that we’ve got our Windows, Mac or Linux, most of the time, it would be focused on Windows and Macs and then some of the vendors would also prefer to have a Linux application. From an implementation or an alternative perspective, we can go full native and build the full application running on each one of these devices with the API that the operating system offers us. For that we can take something like libWebRTC, WebRTC open-source library, compile and running on on our own or build our own proprietary media engine. We can decide to use Electron and Chromium.
To summarize, richer experiences are enabled by native implementations. If we want to reach experience for our customers, then using web native approaches might not be the best way to do. Native would give us a better solution. That said, it would be harder to implement and will take more time and resources to do. The closer we are to the hardware, especially on mobile devices, the richer the experience can be, which again, says that native should be the way to go there. The mixed approaches of application frameworks such as you know, Flutter and React Native are quite good approaches as well. Thank you.