Skip to content
Hanna.
← All work

Clinical mobile · Kotlin and Swift to React Native · 2021–2023

Two platforms, two bug lists, one missing shared layer

The defect list looked like two sets of platform bugs. It was one product implemented twice and drifting, so closing defects could never catch up — the platforms were unified onto one codebase instead.

How it was reported

Android and iOS each have their own list of bugs.

What it actually was

Read as two platform problems it is two backlogs and two engineers. Read as one product implemented twice it is drift — and drift keeps producing defects no matter how many you close.

The same clinical feature existed in Kotlin and in Swift, maintained separately and diverging quietly. A fix on one side was half a fix, and nothing in the process noticed.

This was 2021, with no coding assistant: the cross-platform architecture, the migration plan and the encryption library were designed and written by hand.

What shipped

  • The Personal Health Manager app migrated onto one React Native codebase, resolving 20+ native defects and unifying both platforms.
  • The mobile UI architecture and API integration for the core clinical features — DNA reports and the survey instruments — plus web-to-mobile account linking, multi-account support, infinite scroll over large datasets, and charting.
  • The client-side encryption library protecting patient data at rest, written after a vulnerability assessment and penetration test.
  • A design-revamp refactor that cut code complexity roughly in half and improved responsiveness by about a third.

Evidence

native defects resolved
20+
of penetration-test findings closed
60%
fewer post-launch bug reports
~30%
to release both patient and physician apps
6 months

Delivered remotely from Indonesia to a Singapore team, coordinating an outsourced group and running the knowledge transfer.

  • React Native
  • TypeScript
  • Redux
  • Redux Saga
  • Kotlin
  • Swift