피드로 돌아가기
Your Codename One App, Now A Native Mac App
Dev.toDev.to
Frontend

Mac Catalyst 및 Metal 기반의 Native macOS 빌드 타겟 구현

Your Codename One App, Now A Native Mac App

Shai Almog2026년 6월 13일5intermediate

Context

기존 JavaSE 타겟 기반의 데스크톱 실행 방식은 JVM 번들링으로 인한 무거운 구조와 모바일 UI 중심의 설계로 macOS 사용자 경험 제공에 한계 노출. 특히 OS 메뉴바 미지원 및 비표준 스크롤바 등 플랫폼 특화 인터페이스 부재가 병목 지점으로 작용.

Technical Solution

  • Mac Catalyst 프레임워크 채택을 통한 iOS 파이프라인 및 ParparVM 기반의 Native Mac binary 생성 구조 설계
  • Metal 렌더러 공유를 통한 iOS와 macOS 간 렌더링 코드 재사용 및 검증된 코드베이스 활용
  • #ifdef 전처리기를 도입하여 플랫폼별 인터페이스 분기 처리 및 최적화 가능 구조 마련
  • build hint 기반의 .p12 인증서 및 .provisionprofile 매핑 체계를 통한 macOS 전용 코드 사이닝 프로세스 구현
  • Command API 확장으로 OS 네이티브 메뉴바(UIMenuBuilder, JMenuBar)와 앱 명령어를 동적으로 브릿징하는 매핑 레이어 설계
  • interactiveScrollBool 테마 상수 기반의 데스크톱 전용 UIID 분리 및 스크롤 인터랙션 최적화

- 크로스 플랫폼 설계 시 공통 렌더러(Metal 등)를 확보하여 플랫폼 간 코드 일관성 유지 - 모바일 기반 앱의 데스크톱 확장 시 OS 네이티브 메뉴 시스템과 숏컷 매핑 레이어 우선 설계 - 플랫폼별 특화 설정(인증서, 번들 ID)을 하드코딩하지 않고 Build Hint 등 외부 설정 파일로 관리

원문 읽기