iOS Swift

Tokopedia

One of Indonesia's leading e-commerce platforms connecting millions of buyers and sellers. I was working at Tokopedia as an iOS Engineer, contributing to features that serve millions of users across the platform.

Tokopedia
Tokopedia iOS App

Engineering

Tech Stack

Technologies and frameworks used while working on the Tokopedia iOS app.

๐ŸŽจ
UI โ€” Texture (AsyncDisplayKit)

Built UI with Texture (formerly AsyncDisplayKit), enabling highly performant, asynchronous layout and rendering โ€” essential for Tokopedia's complex, data-dense feed and product listing screens.

Texture AsyncDisplayKit Swift
๐Ÿ›๏ธ
Architecture

Applied MVVM with Clean Architecture for clear separation between UI, business logic, and data โ€” enabling independent testing and scalability across Tokopedia's feature-rich codebase.

MVVM Clean Architecture
๐ŸŒ
Networking โ€” Moya & GraphQL

Used Moya for REST-based API calls with a type-safe endpoint layer. Adopted GraphQL for flexible, efficient data fetching โ€” reducing over-fetching on complex product and feed queries.

Moya GraphQL
๐Ÿ”
Reactive โ€” RxSwift

RxSwift was the primary reactive framework for data binding, event streams, and ViewModel state management โ€” coordinating complex async flows across features like search, cart, and checkout.

RxSwift
๐Ÿงช
Testing โ€” TDD & Unit Tests

Followed Test-Driven Development (TDD) as the standard engineering practice. Unit tests covered ViewModels, Use Cases, and data-layer logic โ€” ensuring correctness and preventing regressions in a high-traffic production app.

Unit Testing TDD

Structure

Clean Architecture Layers

Clean layer separation allows Tokopedia's large engineering team to work independently and ship features safely at scale.

Presentation Layer

Texture (ASDisplayNode) Views & ViewModels. RxSwift-driven state, no business logic.

Domain Layer

Use Cases & Entities. Pure Swift โ€” no framework dependencies. Fully unit-testable.

Data Layer

Repositories, Moya REST + GraphQL services. Maps response DTOs to domain models.

Complete Stack

All Technologies

Swift Texture AsyncDisplayKit RxSwift Moya GraphQL MVVM Clean Architecture TDD Unit Testing

My Role

I was working at Tokopedia as an iOS Engineer, contributing to features used by millions of users daily. Key work included building performant UI with Texture (AsyncDisplayKit), implementing GraphQL queries for efficient data loading, managing reactive data flows with RxSwift, and maintaining quality through TDD and unit testing.