피드로 돌아가기
Dev.toFrontend
원문 읽기
96.9% 코드 공유율을 달성한 Compose Multiplatform 기반 통합 UI 설계
97% of My App's Code Is in commonMain — A Field Report on Shipping 100% Compose Multiplatform
AI 요약
Context
Android와 iOS 환경에서 중복 UI 개발 비용을 제거하고 단일 코드베이스로 클라이언트 기능을 구현하려는 시도. 플랫폼별 UI 분리를 최소화하고 commonMain 중심의 아키텍처를 통해 개발 효율성을 극대화하는 것이 핵심 목표.
Technical Solution
- 17개 전체 화면을 commonMain에 배치하여 플랫폼별 UI 분기(if isAndroid)를 완전히 제거한 구조 설계
- 고정된 플랫폼 기본 기능(앱 버전, URL 오픈 등) 처리를 위해 Interface+DI 대신 오버헤드가 적은 expect/actual 메커니즘 채택
- 복잡도가 높은 WebView의 경우 단순 래핑을 넘어 라이프사이클 및 설정을 독립적으로 관리하는 kmp-webview 라이브러리로 분리하여 모듈화
- Navigation을 플랫폼 종속적 API가 아닌 commonMain 내의 Stack-based 데이터 객체 기반 라우팅으로 구현
- 플랫폼 API 접근 지점을 약 10개의 Seams로 집중시켜 네이티브 의존성 관리 범위를 명확히 한격리 설계
실천 포인트
- UI 분기 제거를 위해 commonMain 중심의 화면 설계 검토 - 플랫폼 API 접점을 최소한의 Seams로 정의하고 문서화 - WebView와 같이 복잡한 네이티브 뷰는 별도 라이브러리 형태로 캡슐화 - iOS 배포 시 시뮬레이터 렌더링 외에 툴체인 빌드 속도 및 네이티브 API 제약 사항 사전 분석