애플의 비전OS 개발자 가이드라인 살펴보니

X코드15와 SDK 설치해 UI·3D 콘텐츠 작업·시뮬레이션

컴퓨팅입력 :2023/06/23 14:27

애플이 비전OS용 앱 개발을 위한 소프트웨어개발도구(SDK)와 샘플 코드, 개발자 문서를 공개했다. 애플이 개발 문서에서 새롭게 공유한 내용을 정리했다.

애플은 지난 21일 개발자 홈페이지에 SDK 다운로드 링크와 개발 문서, 샘플 코드 등을 게재했다.

비전OS는 애플의 혼합혐실(MR) 헤드셋인 '애플 비전 프로'의 운영체제로, 이달초 세계개발자대회(WWDC)23 행사에서 처음 공개됐다.

비전프로용 앱 개발을 지원하는 비전OS SDK는 스위프트UI, 리얼리티킷, AR킷 등 기존의 도구와, 3D 콘텐츠 구성을 간소화하는 도구 ‘리얼리티 컴포저 프로’를 포함한다. 통합개발환경(IDE) X코드를 최신 버전으로 업데이트하면 설치 가능하다.

비전OS 2D 창

스위프트UI를 이용하면 기존 iOS나 아이패드OS의 앱을 비전프로용으로 전환하거나, 비전프로에 최적화된 앱의 사용자인터페이스(UI)를 설계할 수 있다. 기존 UI킷을 이용해도 비전프로용 앱의 UI를 만들 수 있지만 스위프트UI가 더 많은 고유 기능을 제공한다.

리얼리티킷은 앱에 3D 콘텐츠, 애니메이션, 시각효과를 입힐 수 있는 렌더링 엔진을 제공한다. 자동으로 물리적 조명 조건에 맞게 밝기를 조정하고, 객체에 그림자를 입히며, 다른 세계로 가는 포털을 여는 등의 시각효과를 넣을 수 있다. AR킷은 3D콘텐츠에 증강현실 정보를 입혀 실제 세계에 적합한 공간에 통합되게 한다.

비전OS는 앱과 콘텐츠의 구동을 세 종류 영역에서 할 수 있다. ‘공간’, ‘창’, ‘볼륨’ 등이다. 사용자가 있는 공간 전체가 디스플레이이며, 공간의 콘텐츠를 표시하는 빌딩 블록은 2D 평면인 창과, 3D 볼륨이다. 창과 볼륨은 그림자와 깊이감 등을 통해 공간감각을 갖도록 꾸밀 수 있다.

비전OS 손 제스처

비전프로의 UI는 기본적으로 시선, 손가락 제스처, 음성 등이다. 공개된 문서에 따르면 제스처는 네 종류다. 스위프트UI는 '탭 선택(Tap to select)', '꼬집어 회전(Pinch to rotate)', '물건 조작(Manipulate objects)', '사용자 지정 제스처' 등을 활용할 수 있다.

애플은 4종의 샘플 앱을 공개했다. '헬로월드' 샘플 앱에서 창, 볼륨, 공간 등을 이해하도록 했다. '해피빔(Happy Beam)'은 AR킷을 활용해 사용자 지정 제스처를 감지하는 방법을 소개한다. 비전OS와 iOS, tvOS의 멀티플랫폼 비디오 재생 앱인 '데스티네이션 비디오'는 2D 스트리밍과 입체 미디어를 재생할 수 있다. '디오라마'는 리얼리티컴포저프로를 사용해 비전OS 앱의 3D 콘텐츠를 디자인하게 한다.

2D 창과 3D 볼륨 예

X코드 15의 파일 메뉴에서 신규, 프로젝트 등을 선택해 새로운 프로젝트를 생성한다. 템플릿 선택기의 비전OS 섹션으로 이동해 앱 템플릿을 선택할 수 있다. 앱의 초기 화면 유형으로 창이나 볼륨을 선택하거나 몰입형 장면을 추가해 주변에 콘텐츠를 배치할 수 있다.

2D 창에 비전OS의 모양, 느낌, 창 크기 조정, 강조 등 깊이효과를 넣을 수 있다. 리얼리티킷은 움직이는 3D 모델과 장면을 구현할 수 있다. 리얼리티킷과 스위프트UI를 사용해 2D와 3D 콘텐츠를 연결할 수 있다.

창이나 볼륨에서 콘텐츠를 배포하는 것과 달리 360도 공간 전체를 콘텐츠 영역으로 활용하는 '몰입 경험'은 리얼리티킷과 메탈을 사용하면 최상의 성능을 얻을 수 있다. 몰입 경험은 창이나 볼륨에서 전환될 수 있고, 창을 먼저 표시한 뒤 몰입 환경으로 들어갈 수 있는 컨트롤을 넣어 준비시간을 벌 수 있다.

리얼리티킷을 사용한 동적 3D 장면 표시

비전OS는 맞춤형 '코어 애니메이션' 레이어를 사용해 콘텐츠를 선명하게 부각시킨다. 비전프로의 경우 사람의 시선에 따라 그래픽이 동적으로 변화해야 한다. 비전OS 맞춤형 코어 애니메이션 레이어는 눈을 따라가며 콘텐츠 선명도와 성능을 변환한다. 

일단 콘텐츠가 주변 시야에 있으므로, 낮은 해상도로 콘텐츠를 렌더링해 GPU 부하를 줄인다. 사람의 눈이 움직이면 시스템은 초점의 변화에 맞게 해상도를 높이거나 줄인다. 이런 동적 크기 조정은 기본적으로 꺼져 있으므로 개발자는 이 지원을 명시적으로 켜야 한다. 스위프트UI나 UI킷을 사용하면 동적 확장을 기본 지원하므로 별도로 작업하지 않아도 된다.

비전OS 디자인 가이드라인

애플은 비전OS를 위한 별도의 디자인 가이드라인을 내놨다. 앱이나 게임을 디자인할 때 플랫폼의 특성과 패턴을 이해해야 한다는 것이다. 비전프로의 공간 개념. 몰입, 패스스루, 공간 오디오, 초점과 제스처, 인체공학, 접근성 등을 고려하라고 안나한다.

비전OS용 디자인 리소스는 현재 피그마용을 제공한다. UI 요소, 뷰, 시스템 인터페이스, 텍스트 스타일, 컬러 스타일, 매터리얼 등을 포함한다. 이밖에 시차 효과를 넣을 수 있는 도구가 있고,, 어도비 포토샵을 위한 플러그인이 있다.

X코드 15는 비전OS 앱에 대한 디버깅, 빌드, 테스트 등을 지원한다. 비전OS 앱의 몰입 공간에서 콘텐츠 표시가 있으므로, 일반적으로 보이지 않는 좌표축, 경계 상자 및 기타 정보의 시각적 표현을 보면서 디버깅을 하는 게 좋다. X코드 디버깅 도구는 시뮬레이터 또는 장치에서 이 정보를 표시하는 옵션을 포함한다. 엔터티가 예상한 위치에 있는지 확인하고 예상한 방식으로 주변과 상호 작용합하는지 볼 수 있다.

X코드 비전OS 시뮬레이터

X코드 클라우드를 사용하면 코드 개발, 빌드, 유지 관리, 테스트, 배포 등을 위한 CI/CD를 구현할 수 있다. X코드, 테스트플라이트, 앱스토어 커넥트 등을 포함한다.

현재 애플 직원을 제외하고 세계 어느 개발자도 비전프로 하드웨어를 갖지 못했다. 때문에 비전OS 앱 테스트를 위한 시뮬레이션이 필요하다. X코드15는 시뮬레이터에서 비전OS 앱을 실행할 수 있다.

기존 iOS 앱을 비전OS 앱을 변환하는 경우 비전OS SDK로 쉽게 이뤄진다. 일반적으로 앱에서 비전OS를 지원하도록 변환하려면 X코드의 프로젝트 설정을 업데이트하고 다시 컴파일하면 된다. 다만 플랫폼 사용 시나리오에 짜른 하드웨어별 기능 차이를 감안해야 한다. 앱에 따라 iOS SDK에만 있는 기능을 추가로 변경해야 할 수 있다. 예를 들어 비접촉식 결제 같은 경우 비전프로로 할 수 없기 때문에 관련된 iOS 앱에서 해당 기능을 비활성화해 비전OS 앱으로 재컴파일해야 한다.

X코드에서 기존 iOS 앱의 프로젝트에 지원 기기를 추가해 비전OS용으로 변환할 수 있다.

앱스토어에 앱을 유니버셜로 배포하면 앱은 사용자의 플랫폼에 따라 기기에 적합한 코드로 설치된다. 그러므로 앱의 프로젝트에 지원 대상에 비전OS를 추가하는 것으로 가장 기본적인 변환작업을 하게 된다. 다시 앱을 빌드하기 전 iOS 버전에서 지원 중단 경고를 수정해야 한다. 애플은 비전OS에 적용되지 않는 프레임워크를 사용하는 경우 소스 파일을 iOS와 비전OS로 분리시키라고 조언한다.

관련기사

애플은 앱의 호환성을 검증하기 위해 애플 앱스토어에 등록된 기존 앱을 비전프로에서 작동하는지 일단 실행해보고, 문제 발생 시 X코드15로 수정해가라고 제안한다. 프레임워크는 기기 특성에 따라 다른 작동을 하게 되는데 비전OS에서 예상과 다른 작동을 할 수 있으므로 살펴봐야 한다.

호환되는 아이패드OS 또는 iOS 앱은 iOS SDK에 연결돼 있으며, 비전OS에서 실행된다. 비전OS는 연결을 위한 완전한 iOS 프레임워크 세트를 제공하지만 하드웨어 또는 사용법 차이로 인해 해당 프레임워크의 일부 기능을 사용하지 못할 수 있다. 앱이 비전OS에서 올바르게 실행되도록 하려면 누락된 기능을 적절하게 처리하고 가능한 경우 해결 방법을 제공하라고 애플은 안내했다.