NordVPN is a virtual private network (VPN) app that protects users while they browse the web by providing a more secure and private connection. As a network utility, NordVPN users deserve a responsive UI that lets them set up protection right away. That’s why NordVPN developers recently integrated Default Profile, a profile-based optimization that helps Android developers improve the startup and runtime performance of their apps using precompilation.
Improve performance with baseline profiles
The NordVPN team wanted to improve application performance as part of their 2023 product roadmap. Before implementing the default profile, NordVPN’s startup time on Android devices did not meet the team’s standards, so we had to look at new ways to make the app run better.
After looking for ways to improve runtime performance and streamline the login process for users, NordVPN developers saw an opportunity to make their apps faster by using default profiles. Baseline profiles let the Android Runtime (ART) know which code paths to optimize through ahead-of-time (AOT) compilation before your app starts, improving speed, stability, and overall responsiveness during launch, app navigation, and viewing. Performance improves. contents.
“App speed and stability are essential to a better user experience, so we’re always looking for new ways to improve NordVPN’s performance,” said Himanshu Singh, Principal Android Engineer at NordVPN. “We wanted to speed up our app’s load times and allow it to launch and navigate faster than ever before.”
by NordVPN improved startup speeds by an average of 24% by applying the default profile. Using tools like Android Vitals, the NordVPN team measured the application’s cold start time from 4.3 seconds to 3.2 seconds, warm start time from 2.7 seconds to 1.8 seconds, and hot start time from 1 second to 0.7 seconds.
After implementation, NordVPN developers also found that the default profile allowed users to log into the app faster and improved user login flow. The sign-in flow is measured from when the user starts the app until they sign in. After monitoring improvements using the Macrobenchmark library, the team observed the following: The NordVPN app makes your login flow run 60% faster than before.
Baseline profiles are easy to integrate and test.
The ease of implementing basic profiles impressed NordVPN developers. Android’s available resources, in-depth documentation, and Codelab allowed them to improve the app’s UX without having to write massive amounts of code themselves.
NordVPN developers used the Macrobenchmark library to quickly create a default profile for their application. To achieve this, they used the Gradle management device, which allows creating new profiles without a physical device. Additionally, the Gradle management appliance allowed NordVPN developers to create a new profile for each app release build in a continuous integration platform. In the future, NordVPN developers plan to further automate profile creation by migrating the default profile creation to the official Gradle plugin.
By combining development workflows, NordVPN developers were able to create an integrated pipeline to test apps under a variety of conditions. The Macrobenchmark library then ran baseline generation tests to push the latest baseline profile to the code base.
Quickly improve app quality
After integrating the default profile into NordVPN’s code, developers saw immediate speed improvements. After completing the project, the engineering team evaluated the overall speed of the app and found that in addition to improving the app launch time, Applying the baseline profile resulted in a 29% improvement in overall in-app speed..
“We are constantly working to improve the quality of our apps, and integrating default profiles has proven to be one of the most successful steps we have taken,” said Šarūnas Rimša, Product Owner at NordVPN. “We’re helping our users access the services they want. ‘You have the right to do it faster. What’s not to like?’
Learn how you can improve your app performance using baseline profiles.