Dactyl, Wasm 기반 SwiftUI 렌더러로 웹 및 Android에서 네이티브 iOS 앱 개발 지원
핵심 내용
Dactyl이 Wasm으로 포팅된 SwiftUI 렌더러를 통해 웹과 Android에서 네이티브 iOS 앱 개발 및 프리뷰를 가능하게 했다.
자세히 보기
Dactyl은 LLM 기반 앱 개발에서 기존 크로스 플랫폼 프레임워크(Expo, Flutter 등)의 성능 및 UX 타협 문제를 해결하기 위해, SwiftUI를 기반으로 한 네이티브 앱 개발 플랫폼을 공개했다. 핵심은 iOS 시뮬레이터를 **WebAssembly(Wasm)**로 포팅하여 브라우저 내에서 직접 실행하는 기술이다.
웹 기반 iOS 프리뷰 엔진
Dactyl의 프리뷰 엔진은 Swift로 재구현된 SwiftUI 및 주요 프레임워크(Charts, SpriteKit, ARKit 등)를 포함한다. 앱은 Wasm으로 빌드되며, 엔진은 그리기 명령어를 바이너리 스트림으로 생성해 JavaScript 호스트가 Canvas2D에 렌더링한다. 레이아웃은 프레임 전에 완전히 해결되며, 변경된 뷰만 다시 그리는 리컨실리에이션(reconciler)을 통해 효율성을 극대화했다.
동적 링크 및 모듈화 아키텍처
SwiftWasm의 정적 링크 한계(약 100MB)를 극복하기 위해 엔진과 표준 라이브러리는 한 번만 로드되는 베이스 모듈로, 사용자 앱은 8KB~300KB 규모의 위치 독립적 사이드 모듈로 분리했다. 편집 시 앱만 교체되며, @State 스냅샷을 통해 스크롤 위치나 입력 데이터 등 앱 상태가 유지된다.
Android 및 iPad 지원
Android에서는 Swift Android SDK를 사용해 aarch64 네이티브 라이브러리로 컴파일하고, Jetpack Compose 호스트가 JNI를 통해 이를 제어한다. 브라우저와 동일한 명령 스트림을 읽되, 실제 Material 디자인 컴포넌트(스위치, 텍스트 필드 등)를 마운트하여 네이티브 UX를 제공한다. SF Symbols와 Material Symbols 간 매핑 테이블을 통해 아이콘 일관성을 유지하며, iPad는 다른 디바이스 디스크립터를 적용해 동일한 엔진으로 지원한다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.