Prodia is a leading healthcare and diagnostic service provider in Indonesia. I was working at Ice House as an iOS Engineer, contributing to the Prodia iOS app โ enabling users to book medical tests, view results, and manage health appointments from their mobile device.
Engineering
Technologies and frameworks used while working on the Prodia iOS app.
The entire iOS client is written in Swift โ leveraging its type safety, modern syntax, and protocol-oriented design patterns for a reliable healthcare app.
Structured with MVVM and Clean Architecture โ keeping Presentation, Domain, and Data layers independent, making the app maintainable and the logic independently testable.
API calls managed through Moya for a type-safe REST layer. GraphQL used for flexible queries on health data, test results, and appointment records โ reducing unnecessary data transfer.
RxSwift drives the reactive data flow between ViewModels and views โ managing async event streams for booking flows, test result updates, and appointment state changes.
Applied Test-Driven Development (TDD) as the primary development approach. Unit tests cover ViewModels, Use Cases, and repository implementations โ particularly important in a healthcare context where data accuracy is critical.
Structure
Layer separation ensures business rules stay independent of UI and data concerns โ critical for a healthcare app where reliability matters.
Views & ViewModels. RxSwift-driven state. No business logic.
Use Cases & Entities. Pure Swift โ framework-independent. Fully unit-testable.
Repositories, Moya REST + GraphQL services. Maps health data DTOs to domain models.
Complete Stack
My Role
I was working at Ice House as an iOS Engineer on the Prodia project. Key responsibilities included building the booking and test result screens, implementing GraphQL queries for health data, managing RxSwift-driven reactive state in ViewModels, and writing unit tests following TDD to ensure correctness across the healthcare-critical features.