Development of a VPN Client for Windows, macOS, Linux, and Android

Development of a VPN Client for Windows, macOS, Linux, and Android

Industry
Telecommunications, Software products
Technologies
Android, C/C++, Qt

Summary

A US software company that owns several consumer VPN brands wanted its Windows, macOS, and Linux desktop clients revamped and a matching Android app built for mobile users. INNERLUXES ran C++/Qt and Java/Kotlin teams in parallel, upgrading the desktop clients with OpenVPN support, new tunneling protocols, and a new authentication method while building a native Android app in the desktop apps' style. All of them shipped in a single release, and INNERLUXES has continued with maintenance and support since.

About the Client

The Client is a US software development company that owns a number of consumer VPN service brands.

A Desktop VPN to Modernize and a Mobile App to Add

The Client had a desktop VPN solution for Windows, macOS, and Linux but wanted all three versions revamped and upgraded. The Client also planned to introduce a mobile version of the same VPN client for Android users. In April 2018, they turned to INNERLUXES requesting both the desktop software upgrade and Android development services.

Parallel Desktop Upgrade and Native Android Development

C++/Qt and Java/Kotlin teams at INNERLUXES worked on the desktop and mobile solutions simultaneously, which kept the cross-platform experience consistent and shortened the path to a single release. The work covered:

  • Desktop upgrade — adding the OpenVPN service to the list of supported VPN services, changing the tunneling protocols, and implementing a new authentication method across the Windows, macOS, and Linux clients.
  • Native Android app — a UI design team joined the mobile team and designed the Android app in line with the existing style of the desktop applications, which the mobile team then built natively.

In August 2018, INNERLUXES completed the desktop upgrade and the Android development, and the Client officially released all of them that same month. After the release, the Client asked INNERLUXES to stay on the project for maintenance and support. In September 2018, the Client requested an update for the Android app — a revamped login window shown at launch — which INNERLUXES delivered by the end of October 2018.

A Consistent VPN Across Four Platforms

  • The Client was fully satisfied with the desktop upgrade, the Android VPN client development, and the collaboration overall.
  • All desktop versions and the new Android app were released together in a single month.
  • Maintenance and support services are still ongoing.

Technologies and Tools

Desktop: C++, Qt, QML, Qt Installer Framework, OpenVPN3, LibUV, Qt Test, Google Test, Visual Studio, CMake, Vagrant.

Android: Java, Kotlin, Android SDK, Android NDK, Gradle, RxJava, Dagger, EventBus, GreenDao, ButterKnife, Mockito, JUnit.