Thank you!
We will contact you shortly.
Case Study
A 6-year-old WPF/C++ GNSS monitoring app was fully rewritten into a modern Kotlin Multiplatform with Compose UI solution, achieving faster updates, higher stability, and cross-platform growth opportunities.
Reduced device setup time
Reduced memory use
Onboarding time
Client:
GIS platform
Location:
USA
Company size:
150 employees
Industry:
Geospatial hardware & software
● Architecture assessment and roadmap creation● Concept validation and migration planning (KMP + Compose)● Full rewrite with legacy feature parity● UI/UX redesign (Material 3)● CI/CD setup (Gradle KTS, GitHub Actions)● GNSS SDK integration● Legacy installer adaptation● Support and new features
Complete rewrite of a WPF/C++ app into a Kotlin Multiplatform application
Business Challenge
The client was having trouble operating the tool built 6 years ago. It resulted in numerous restraints and shortages, becoming a significant burden for the company.
The code was outdated, brittle, hard to maintain, and slow to update.
Senior WPF/C++ developers are expensive and hard to find.
A Windows-only tool, the product didn’t provide vast multiplatform opportunities for customers.
An outdated, x-86-only solution didn’t allow for providing full functionality on ARM tablets.
The client was tied to one installer because of a required signed USB driver, complicating builds.
Conducted the code audit: Checked 42k lines of legacy code and identified 19k for a full rewrite
Selected hexagonal architecture to separate GNSS core logic from UI and platform code
Recognized packaging as a critical risk and integrated KMP output into the old installer
Our engineers can update your legacy app the same way to tackle the issues of aging code, platform limits, installer dependency, and unmet product demands.
Legacy Stack (2019)
Modern Stack (2025)
Legacy Stack (2019)
Legacy Stack (2019)
Modern Stack (2025)
Modern Stack (2025)
☒ WPF on .NET 4.x (C#)
☑ Kotlin Multiplatform shared core
Legacy Stack (2019)
☒ WPF on .NET 4.x (C#)
Modern Stack (2025)
☑ Kotlin Multiplatform shared core
☒ C++ libraries for telemetry
☑ Compose Multiplatform UI
Legacy Stack (2019)
☒ C++ libraries for telemetry
Modern Stack (2025)
☑ Compose Multiplatform UI
☒ WiX-based MSI installer with embedded driver
☑ Gradle KTS, Coroutines, Koin, kotlinx-serialization
Legacy Stack (2019)
☒ WiX-based MSI installer with embedded driver
Modern Stack (2025)
☑ Gradle KTS, Coroutines, Koin, kotlinx-serialization
☒ Manual build/deployment
☑ Automated CI/CD with nativeDistributions
Legacy Stack (2019)
☒ Manual build/deployment
Modern Stack (2025)
☑ Automated CI/CD with nativeDistributions
We faced the inability to change the MSI installer due to a required signed USB driver. This complicated the pipeline builds.
GNSS receivers sent data at 10 updates/sec, leading to intermittent performance. We resolved this with lazy diffing and Skia canvas pooling.
Windows had a USB driver, while macOS didn’t. The team used libusb with Kotlin/Native bindings to access the devices on macOS.
Rewriting all legacy math would be a lengthy job. Instead, we used Kotlin/Native CInterop to wrap the existing C++ code, saving time and ensuring functionality.
With legacy WPF, adding a new GNSS device took 4 months. With KMP/Compose, it dropped to 6 weeks
The cold-start RAM has been reduced from 420 MB with legacy WPF to 260 MB with KMP/Compose
The system’s stability significantly increased compared to the legacy code, reaching virtually crash-free operation
With legacy WPF, onboarding new developers took 6 weeks, while with KMP/Compose, the timeline was cut to 2 weeks
We transformed a Windows-only setup into a multiplatform solution, ready for ARM tablets, macOS, Linux, or mobile devices
● We combated constraints and risks posed by legacy six‑year‑old WPF code by implementing a modern KMP/Compose stack. ● Empowered future innovations and strategic flexibility by creating cleaner architecture, improving code maintainability, and enabling Android/iOS/macOS releases. ● Retained driver-signed distribution through interim MSI, while preparing the system for future Kotlin installer.● Enabled faster feature delivery for new devices, reduced memory use, and reinforced performance stability.● 2x faster feature delivery, including updates for new devices● 38% lower memory use● Near 100% performance stability with minimized system crashes
Remove the limits of the legacy MSI by replacing it with a Kotlin‑native installer using Gradle and driver-injection scripts. This will reduce build times by ~15% and eliminate dependency on WiX.
Develop macOS and Linux versions and release Android and iOS companion apps. This extends user access throughout desktop and mobile platforms.
Prepare the GNSS diagnostic library as a Kotlin Multiplatform SDK to drive effortless integration of core functionality into partners’ apps and solutions.
Contacts
Ready to experience the Corsac Technologies difference?
Don’t let outdated systems slow your business down – connect with us today and let our experts transform your legacy software into modern, high-performing solutions. Schedule a consultation with our specialists now!
Modernization Experts
+1 416 505 4524moc.hcetcasroc%40ofni
Where to Find Us
16 Yellow Birchway, North York, ON, Canada M2H 2T3
Ready to Upgrade Your Legacy System?
Fill out the form on the right.