피드로 돌아가기
Dev.toInfrastructure
원문 읽기
ParparVM 기반 Native Linux 포팅 및 Multi-platform 런타임 확장
Native Linux, Apple Watch, A Game Builder And Crash Protection
AI 요약
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. 무거운 데이터의 런타임 로딩 부하를 줄이기 위해 스트리밍 엔진과 데이터 모델 기반의 에셋 분리 설계 검토