Tokopedia iOS: Hello 2021, Rewind 2020
Article Summary
Samuel Edwin from Tokopedia reveals how his iOS team achieved a 10x build time reduction while shipping features that got them featured on the App Store. Despite 2020's challenges, they transformed their entire development workflow.
Tokopedia's iOS team shares their 2020 journey of balancing user-facing features with critical infrastructure improvements. From implementing NFC-based payments to adopting Bazel for builds, they tackled both product innovation and developer productivity at Indonesia's largest e-commerce platform.
Key Takeaways
- Build time dropped from 60 minutes to 4 minutes using Bazel's caching system
- Adopted Composable Architecture (Redux-style) to handle complex UI state in Cart feature
- Shipped iOS 14 widgets, Apple Watch support, and dark mode simultaneously
- Created internal app distribution platform for company-wide testing and feedback
- Implemented snapshot testing generating 80+ UI variations automatically
Tokopedia reduced CI build times by 1000% while shipping enough iOS 14 features to get featured in the App Store's 'Great on iOS 14' section.
About This Article
Tokopedia's Cart feature had a state management problem. When users toggled product checkboxes, updates had to cascade through multiple UI levels: the product level, the shop level, and the top level. This complexity broke down their MVVM architecture.
Samuel Edwin's team switched to The Composable Architecture, a Redux-style state management library for Swift. It separated business logic from the UI and made it possible to unit test complex state interactions in isolation.
The new architecture handled both simple and complex features better. Code became more readable and unit testing got significantly easier compared to MVVM. This reduced bugs in one of Tokopedia's most critical user flows.