피드로 돌아가기
Just Watch
Dev.toDev.to
Frontend

Single Codebase 기반 watchOS/Wear OS 네이티브 렌더링 및 최적화 아키텍처

Just Watch

Shai Almog2026년 6월 28일7intermediate

Context

웨어러블 디바이스의 극심한 리소스 제약과 OS별 상이한 UI 렌더링 파이프라인으로 인한 개발 공수 증가가 문제로 작용. 특히 watchOS의 경우 iOS와 완전히 다른 API 체계를 가져 코드 재사용성이 극히 낮다는 한계 존재.

Technical Solution

  • Core Graphics 전용 렌더링 백엔드 구축을 통한 UIKit 및 GPU 의존성 제거 및 watchOS 환경의 독립적 UI 구현
  • SwiftUI @main 쉘을 활용하여 Codename One 런타임을 호스팅하고 Digital Crown 및 탭 입력을 런타임으로 포워딩하는 구조 설계
  • codename1.watchMain 별도 진입점 설정을 통한 reachability graph 최적화 및 불필요한 코드/에셋을 제거하는 Tree-shaking 적용
  • CN.isWatch() 런타임 분기 로직을 통한 단일 코드베이스 내 디바이스 최적화 레이아웃 동적 제어
  • arm64_32 타겟 컴파일 및 ParparVM 기반의 경량 런타임 실행으로 메모리 및 CPU 사용량 최소화

- 웨어러블 타겟 설계 시 진입점(Entry Point)을 분리하여 Dead-code Elimination 효율을 극대화할 것 - 하드웨어 제약이 큰 환경에서는 GPU 가속보다 Core Graphics와 같은 안정적인 Low-level 렌더링 경로를 검토할 것 - 플랫폼별 공통 인터페이스를 유지하되, 런타임 체크를 통해 UI 메타포(예: 텍스트 필드 제외)를 디바이스 특성에 맞게 조정할 것

원문 읽기