피드로 돌아가기
Native Linux, Apple Watch, A Game Builder And Crash Protection
Dev.toDev.to
Infrastructure

ParparVM 기반 Native Linux 포팅 및 Multi-platform 런타임 확장

Native Linux, Apple Watch, A Game Builder And Crash Protection

Shai Almog2026년 6월 26일8advanced

Context

Java/Kotlin 단일 코드베이스로 다양한 OS를 지원하는 Codename One 프레임워크의 확장성 확보가 필요함. 특히 Linux 데스크톱의 파편화된 패키징 환경과 watchOS의 독자적인 API 제약으로 인한 런타임 구현의 난제가 존재함.

Technical Solution

  • ParparVM 파이프라인을 통한 Java/Kotlin Bytecode의 C 언어 변환 및 JVM 제거로 단일 Self-contained ELF 바이너리 구현
  • GLIBC_2.17 기반의 구버전 컴파일 및 GTK3 동적 링크를 통한 Linux 배포판 간 바이너리 호환성 확보
  • watchOS 전용 Core Graphics 렌더링 백엔드 구축 및 SwiftUI Shell 내 런타임 호스팅으로 Apple의 폐쇄적 UI 생태계 대응
  • Wear OS의 경우 기존 Android 포트 파이프라인을 공유하여 빌드 힌트 기반의 조건부 렌더링 구조 채택
  • Visual Game Builder 도입으로 데이터 모델 기반의 레벨 설계 및 스트리밍 엔진을 통한 대규모 월드 처리 로직 분리

1. OS 파편화 대응을 위해 가장 낮은 버전의 공통 라이브러리(예: glibc)를 기준으로 빌드 환경 설정

2. 플랫폼 특성상 불가능한 UI 요소(watchOS 텍스트 필드 등)는 런타임 내 조건부 렌더링 로직(CN.isWatch())으로 처리

3. 무거운 데이터의 런타임 로딩 부하를 줄이기 위해 스트리밍 엔진과 데이터 모델 기반의 에셋 분리 설계 검토

원문 읽기