000%
COMMISSION Nº 03 · 2023–25 — ANDROID PARITY
CERTILIFE · Android

Certilife Android — 처음엔 외주로 시작했다가, 나중에 사내에서 직접 맡았습니다.

Certilife Android — iOS 일정에 맞춰 외주로 시작했고, 이후 사내로 넘어와 직접 이어 갔습니다. iOS와 똑같은 내용, 똑같은 화면을 똑같은 출시 일정으로 만들었습니다.

FIG. 01CERTILIFE — ANDROID — CERTILIFE · Android
COMMISSIONAndroid · Kotlin · Hilt · Coroutines · Retrofit · ML Kit + CameraX · WebView Bridge2023 — 2025

Android는 처음에 조율하는 일부터 시작했습니다. 그 첫 단계는 일정을 챙기는 작업이었습니다. iOS가 쓰던 방식 그대로 할 일을 정리하고, iOS 출시 일정에 맞춰 올라오는 코드 변경을 검토하면서, 두 플랫폼이 서로 어긋나지 않게 맞추는 일이었습니다. 모바일 앱에 어떤 기능을 추가할지, 일정은 어떻게 잡을지 같은 결정은 대부분 iOS 쪽에서 이미 내려져 있었고, Android는 그것을 다시 정리해 옮기는 것이 주된 일이었습니다.

두 번째 단계는 인계였습니다. Android 코드가 외주에서 사내로 넘어왔고, iOS와 똑같이 혼자 맡는 방식으로 바뀌었습니다. 버그 수정, 새 기능, 스토어 출시 — 한 사람이 두 OS를 동시에 머릿속에 두고, 무엇을 바꾸든 양쪽을 같은 흐름으로 함께 손보며 진행했습니다.

Android 쪽은 Kotlin으로 짰습니다. AndroidX Views, Coroutines와 Flow, Hilt, Jetpack의 lifecycle, Retrofit + OkHttp를 쓰고, 스캔 기능에는 ML Kit과 CameraX, 메시지 전송과 사용 분석에는 Firebase를 썼습니다.

저장소 자체가 네 사용자 영역으로 짜여 있습니다 — 환자용, 병원용, 제조사용, 그리고 쇼핑몰 앱 — 스캔, 바코드 해석, 공통 토대, 디자인 시스템은 자체 라이브러리로 나눠 함께 씁니다. 스캔은 세 가지 작업에 쓰입니다. 인증서를 발급하며 제품을 스캔해 들이고, 병원 직원은 카메라를 코드에 비춰 로그인하고, 푸시 알림 하나가 묶음 작업용 스캐너를 곧장 열기도 합니다. 바코드는 의료기기의 표시 표준인 GS1을 따르고, 환자용 앱은 카카오 로그인을 지원합니다. 모든 모듈에 같은 린트 규칙 한 벌이 돌아갑니다.

iOS와 Android를 동시에 처음부터 끝까지 혼자 맡아 본 것이, 이 일에서 제가 가장 크게 얻은 부분입니다.

— FIN —