Revamping PickMe Driver App: From UIKit to SwiftUI — A Technical Journey
Article Summary
Kcrdissanayake from PickMe reveals how their team migrated an 8-year-old ride-hailing driver app from UIKit to SwiftUI while maintaining iOS 15 compatibility. The bold rewrite wasn't just about modern code—it was about solving real business problems like drivers force-quitting to avoid card payments.
PickMe's iOS team rebuilt their driver application from scratch using SwiftUI, replacing a legacy UIKit codebase that had accumulated significant technical debt. With 7 developers working simultaneously and thousands of drivers relying on iOS 15 devices, the team needed creative solutions to balance modern development practices with backward compatibility requirements.
Key Takeaways
- Cut UI development time by 40% using SwiftUI live previews vs UIKit
- Built location-based Hard Lock system to prevent trip manipulation via force-quit
- Reduced Google Maps API costs using OSRM routing with intelligent caching
- Implemented root view switcher pattern for iOS 15 navigation compatibility
- Created dynamic UI system rendering forms from server responses for multi-tenant support
The migration delivered faster development cycles, better code maintainability, and solved critical business problems like driver app abuse through SwiftUI's modern architecture.
About This Article
PickMe's driver app didn't have modern UI/UX features like dark mode or adaptive theming. Drivers working night shifts struggled with eye strain and poor visibility.
The team built an adaptive theme system that detects the device's system settings automatically. Drivers can also switch themes manually, and colors adjust dynamically across maps, forms, and other UI elements using SwiftUI's native theming.
Dark mode on OLED devices saves battery during long driving sessions and makes the app easier to see at night. This reduces driver fatigue and makes the app work better in different lighting conditions.