PickMe Keshan Fernando Mar 3, 2025

Revamping PickMe iOS App: From Objective-C to SwiftUI

Article Summary

PickMe rebuilt their entire iOS app from Objective-C to SwiftUI in just 6 months. Here's how a team that started with 1 developer scaled to 10 engineers and shipped a complete rewrite.

The Sri Lankan ride-hailing company needed to expand beyond rides into food delivery, logistics, and rentals. Their legacy Objective-C codebase couldn't scale, so they made the bold call to modernize everything while keeping the business running.

Key Takeaways

Critical Insight

The new architecture enables parallel development across teams, cuts maintenance costs, and positions PickMe for rapid expansion into new services and markets.

The team hit several painful roadblocks with circular dependencies and code signing that nearly derailed the project.

About This Article

Problem

PickMe's Objective-C and UIKit codebase had circular dependencies between modules. The Storyboard-based views were resource-heavy and slow to load. This made it hard to manage multiple service verticals on their own.

Solution

Keshan Fernando's team moved shared utilities into a Core Module. They switched to Swift Package Manager for handling dependencies and used XCFrameworks to break the circular dependency cycles. This let different services own their own modules.

Impact

Teams can now develop their modules independently and in parallel. Features ship faster and the organization spends less time on refactoring work.