스트리밍은 대부분의 브라우저와
Developer 앱에서 사용할 수 있습니다.
-
iPad와 iPhone 앱을 Shared Space에서 실행하기
기존 iPad와 iPhone 앱을 Vision Pro에서 실행하는 방법을 알아보세요. 새로운 플랫폼에서 iPadOS와 iOS 앱이 어떻게 작동하는지 배우고 iPad를 위해 디자인된 경험은 어떤지 알아보며 visionOS에서 앱 경험을 강화할 수 있는 방법을 살펴보겠습니다.
챕터
- 1:54 - Built-in behaviors
- 4:01 - Functional differences
- 10:03 - Choose your experience
리소스
관련 비디오
WWDC23
-
다운로드
♪ 감미로운 인스트루멘탈 힙합 ♪ ♪ 안녕하세요 플랫폼 호환성 엔지니어 켈리입니다 iPadOS와 iOS는 강력한 플랫폼이죠 이미 멋진 앱이 여기에 맞춰 빌드되어 있습니다 그런 앱이 하나 이상일 수도 있고요 이제는 동일한 앱을 Apple의 최신 플랫폼에서 실행할 수 있습니다 iOS 앱은 대다수가 별도의 설정 없이도 뛰어난 룩 앤드 필을 보여 줍니다 iPad 캘린더 앱을 예시로 살펴보죠 시뮬레이터에서 수정 없이 실행되고 있는데 룩 앤드 필이 iPad와 동일하며 모두 기대한 대로 작동합니다 여러 타임라인이 보이며 세부 사항을 확대해서 구체적인 이벤트를 확인하고 새 이벤트를 추가할 수 있죠
이 지도는 iPad 버전으로 실행되었는데 지금부터 이야기할 추천 사항을 따른 겁니다 지구본을 멋지게 돌리고 특정 목적지를 검색할 수 있죠
명소에 가 볼 수도 있습니다
이 영상에서는 iPad와 iPhone 앱을 이 새로운 플랫폼에서 소개하겠습니다 앱에서 무료로 사용할 수 있는 내장 동작을 먼저 다뤄 보죠
이어서 앱에서 인지해야 할 기능적 차이점과 여러분이 해야 할 일을 이야기하겠습니다 마지막으로는 앱의 요구 사항에 iPad를 위해 디자인된 경험이 최적인지 판단하는 방법을 설명하겠습니다
이 새로운 플랫폼은 iOS Foundation에서 빌드됐습니다 추가적인 시스템 지원으로 이 공유 기반을 강화했고요 두 가지가 결합해서 여러분의 앱은 아무것도 변경하지 않아도 멋지게 실행될 겁니다 이 기기에서 iPad와 iPhone 앱은 라이트 모드의 윈도우로 나타납니다 이 시스템은 앱의 iPad 변형을 선호합니다 방향은 가로를 선호하고요 앱이 iPhone만 지원한다면 시스템은 앱을 iPhone 화면 비율의 세로 화면으로 보여 줍니다 앱이 여러 방향을 지원한다면 회전 버튼이 윈도우 우측 상단 모서리에 제공됩니다 사용자는 각자 원하는 대로 scene을 회전할 수 있죠 앱의 모서리를 잡으면 화면 비율을 유지한 상태로 윈도우가 확대 및 축소됩니다 최소 혹은 최대 크기에 이르면 모서리가 튕기면서 해당 크기를 반영합니다 확대 및 축소는 시스템에서 관리하므로 앱은 모든 지원을 무료로 받을 수 있습니다 기기 내 콘텐츠와의 상호 작용은 자연 입력으로 이뤄집니다 뭔가를 보고 손가락을 모아 탭하는 동작으로 선택하거나 손을 뻗어서 콘텐츠를 직접 터치할 수도 있죠 블루투스 트랙패드와 게임 컨트롤러도 사용 가능합니다 시스템에서 정의된 모든 상호 작용 메서드는 앱에 친숙한 이벤트를 전송하니 여러분은 기존에 쓰던 이벤트 처리 기법을 그대로 사용할 수 있습니다 도큐멘트 관리자나 포토 피커 같은 시스템 화면은 시스템 모양새에 매칭되어서 플랫폼의 룩 앤드 필에 여러분의 앱을 맞춰 줍니다 Touch ID나 Face ID를 지원하는 앱이라면 LocalAuthentication이 이런 구현 내용을 Optic ID를 통해 자동으로 전달하니 여러분의 앱은 최신 인증 기술을 추가 작업 없이 지원하게 됩니다 iOS와 비교하면 이 플랫폼에는 몇 가지 차이점이 있습니다 이 기기에서 앱이 가로나 세로 화면으로 보이는 건 iPad와 다르지 않은데요 하지만 iPad와 달리 기기 자체를 회전한다는 개념이 없습니다 기기의 방향이 앱의 방향에 영향을 미치지 않으니 새로운 scene에서 앱이 선호하는 방향을 지정하는 게 좋습니다 scene 회전은 나중에도 가능합니다 시스템의 회전 버튼을 사용하면 되죠 앱의 Info.plist에 UIPreferredDefaultInterface Orientation 키를 새로 넣으면 원하는 방향을 지정할 수 있습니다 키를 제공하지 않으면 시스템은 기본 방향을 사용할 겁니다 이 키는 해당 플랫폼에 고유하게 사용되며 다른 플랫폼에는 영향을 주지 않습니다 몇 가지 다른 plist 키도 이 기기에서 특별한 의미를 지닙니다 새로운 건 아니지만요 시스템은 UISupportedInterface Orientations로 앱의 윈도우에 회전 버튼이 필요한지 판단합니다 App Store Connect는 UIRequiredDeviceCapabilities로 이 새로운 기기와 앱이 호환되는지 판별합니다 적합한 앱은 모두 App Store에서 자동으로 사용할 수 있게 됩니다 앱이 의존하는 특정 기능을 이 기기에서 사용할 수 없거나 앱이 이 플랫폼과 잘 맞지 않는다면 App Store Connect에서 사용 가능 여부를 관리해 보세요 더 많은 정보를 원하시면 '공간 컴퓨팅을 위한 App Store Connect 살펴보기'를 보시죠 필요할 경우 Info.plist에 이런 키를 추가하거나 기존 값이 지금도 정확하고 최신인지 확인해 주세요 이런 기기에서는 제스처가 다르게 동작합니다 사용자가 눈과 손을 써서 콘텐츠와 상호 작용하니까요 동시 입력은 최대 두 개까지 가능합니다 각각의 손이 개별 터치로 구분되고요 두 가지 이하의 터치를 기대하는 모든 시스템 제스처는 매끄럽게 동작합니다 사용자 지정 제스처 인식도 지원되는데 자연 입력 기댓값으로 부드럽게 실행되려면 업데이트가 필요할 수 있습니다 특히 최신 프레임워크로는 ARKit가 있는데요 이는 엄청난 발전을 거쳐 어느 때보다 강력해졌습니다 새로운 API와 경험을 처음부터 설계했기 때문에 플랫폼 아키텍처와 프라이버시 요구 사항의 근본적인 차이를 처리할 수 있죠 따라서 이 기기에서 기존 ARView와 ARSession은 iPad와 iPhone 환경과 같이 작동하지는 않을 겁니다 영상 중에서도 '공간 경험에 맞게 ARKit 앱 재창조하기'를 보시면 이 플랫폼에 맞게 앱을 다시 빌드해서 사용 가능한 새 ARKit 기능을 알 수 있습니다 이 기기의 위치 지원은 iPad와 유사합니다 위치는 Wi-Fi로 계산되거나 iPhone으로 공유됩니다 더 자세한 내용은 '공간 컴퓨팅을 위한 Core Location 알아보기'를 보세요 Look to Dictate는 편리한 새 입력 기술로 눈과 목소리만 사용해서 신속하게 앱을 탐색할 수 있습니다 이 입력을 활성화하면 마이크 아이콘이 검색 필드에서 돋보기를 대체합니다 마이크를 보고 음성으로 검색할 수 있죠
이 API는 검색 막대에서 제공됩니다 이 플랫폼에서 실행되는 iPad와 iPhone 앱에서는 비활성화 상태가 기본이라 사용자가 동작을 인증하고 활성화할 위치를 결정할 수 있습니다 iOS와 iPadOS에서는 동작하지 않으므로 플랫폼에 따라 지원을 조건화할 필요가 없습니다 SwiftUI에서 Look to Dictate를 활성화하려면 .searchDictationBehavior() 수정자를 searchable 뷰에 추가하세요 UIKit 검색 막대에서는 isLookToDictateEnabled를 true로 설정하고요 모든 변경 사항을 처리하기에 가장 좋은 방법은 지금까지와 같이 사용 가능 여부를 검사하는 겁니다 호출하기 전에 프레임워크가 지원되는지 잘 확인하세요 많은 프레임워크에는 이런 함수가 편의를 위해 내장되어 있습니다 특정 하드웨어의 존재에 의존하는 구성에 접근할 때도 같은 작업을 잊지 마세요 가령 헤드셋의 카메라는 iOS 기기의 전후면 카메라보다 훨씬 수가 많지만 앱에서 전부 사용할 수 있는 건 아닙니다 사용에 앞서 카메라의 존재 및 지원 여부를 확인하세요 그러면 이 기기뿐 아니라 모든 기기에서 앱이 더욱 탄탄해질 겁니다 이는 이 플랫폼 내 프레임워크 개발의 한 가지 샘플입니다 많이 성장한 프레임워크라면 이 기기만을 위한 영상도 있는데요 SwiftUI와 ARKit RealityKit 등이 그렇습니다 나머지 프레임워크 대부분은 전과 같이 동작합니다 도입 방식은 조금 수정되었고요 모든 수정 프레임워크에 대한 상세 정보는 개발자 문서에서 보실 수 있습니다 앱에 어떤 코드 변경이 필요한지 다 파악했다면 작업 준비가 된 겁니다 xrOS SDK가 설치되면 Xcode가 자동으로 xrOS Device (Designed for iPad)를 Supported Destinations에 추가합니다 iOS SDK를 사용하는 프로젝트에 대해서요 스킴이 SDK에서 다른 플랫폼이나 자동을 설정하면 Designed for iPad 타깃을 수동으로 추가할 수 있습니다 설정을 마치면 이름이 매칭되는 실행 대상이 대상 피커에 나타납니다 그 타깃을 선택하고 빌드해 실행하세요 이걸로 끝입니다 iPad와 iPhone 앱은 이 기기에서 환상적인 경험을 제공합니다 대다수 앱은 아예 변경할 필요가 없는데 이는 광범위한 시스템 지원 덕분입니다 iOS SDK에서 계속 앱을 빌드할지 아니면 xrOS SDK에서 새롭게 빌드할지는 목표에 따라 달라집니다 앞서 이야기했듯 사용할 수 있는 프레임워크는 SDK마다 차이가 있고 이뿐만 아니라 각 프레임워크에서 지원되는 기능도 다릅니다 중대한 두 가지를 언급하고 싶습니다 오직 iOS SDK에서만 사용 가능한 SpriteKit와 Storyboard죠 이 기술 중 하나가 앱에 내장되어 있다면 iPad를 위한 디자인을 고수해야 합니다 iPad와 iPhone 앱은 윈도우로 나타나며 그 윈도우는 라이트 모드의 iPad와 같은 느낌입니다 지도는 이렇게 보이죠 시드니 오페라 하우스를 확대한 모습입니다 콘텐츠가 윈도우를 가장자리까지 채우면서도 그 이상 확대되지 않는 걸 보세요 모든 색상은 iPad와 iPhone에서 지도에 쓰이는 라이트 모드 스타일에 매칭됩니다 xrOS를 위해 디자인된 앱은 새로운 단계의 몰입형 공간 경험을 열어 줍니다 ARKit와 RealityKit 같은 몇 가지 프레임워크는 이 플랫폼에 맞춰 디자인된 앱에서만 사용할 수 있는 기능을 개발해 왔는데요 다른 영상과 문서를 참고하시면 이번 업데이트로 가능해진 새로운 경험들을 확인하실 수 있습니다 이 기기를 위해 디자인된 앱은 윈도우뿐 아니라 볼륨도 지원해서 컨테이너 내에 3D 객체가 나타날 때 컨테이너가 콘텐츠에 맞춰 커집니다 몰입형 경험을 위한 Immersive Space도 지원하고요 Keynote 리허설 공간은 헤드셋에서 이렇게 보입니다 passthrough와 다른 앱을 숨기니 Keynote에서는 완전한 몰입을 유지하며 프레젠테이션에 집중하게 됩니다 헤드셋에서든 시뮬레이터에서든 이 플랫폼을 위해 디자인된 앱은 시스템 룩 앤드 필을 사용합니다 배경이 글라스 머티리얼이라서 사람들이 주변 환경과 떨어지지 않고 색상 균형과 대비가 동적으로 조절되어 판독성이 높아집니다 Ornament API도 사용할 수 있습니다 왼쪽의 탭 막대나 사진 아래의 버튼처럼 오너먼트는 윈도우의 측면에 고정되어 기능을 향상합니다 앱 윈도우 내 작업 공간도 더 많이 남죠 오너먼트는 흔히 탐색이나 도구 막대에 쓰입니다 xrOS를 위한 디자인은 몰입형 경험을 만들거나 새 프레임워크 기능을 도입하려 하거나 시스템 룩 앤드 필과 매치해야 할 앱에 좋습니다 앱의 기존 경험을 보존하겠다면 iPad를 위한 디자인을 추천합니다 이 플랫폼은 iOS 및 iPadOS와 Foundation이 같으니 어떤 SDK를 선택하든 이런 플랫폼들을 위한 작업은 여기서 하는 경험에 유익할 겁니다 이 새로운 플랫폼에 맞게 디자인하는 것이 앱에 제일 적합하겠다고 판단했다면 '공간 컴퓨팅을 위한 SwiftUI 알아보기'와 '공간 컴퓨팅을 위한 UIKit 알아보기' 영상을 먼저 보시면 좋겠습니다 다음 단계는 재미있는 새 플랫폼에서 앱을 사용해 보는 겁니다 아무런 코드 변경 없이도 대다수 앱은 잘 작동합니다 제가 다룬 호환성 관련 내용에 특히 유의해 주세요 Info.plist 키가 최신인지 확인하고 관심 있는 새 플랫폼 경험을 선택하는 데 이어서 프레임워크 종속 항목을 사용하기 전에 사용 가능 여부를 먼저 확인해야 합니다 이걸 모두 마치면 'Shared Space에 맞게 iPad와 iPhone 앱 강화하기'를 보시면서 어떻게 해야 여러분의 iOS 앱이 이 기기에서 편안하게 느껴질지 알아보세요 시청해 주셔서 감사합니다 여러분의 앱을 새 플랫폼에서 얼른 사용해 보고 싶네요 ♪
-
-
4:37 - Default orientation Info.plist key
UIPreferredDefaultInterfaceOrientation
-
5:03 - Supported orientations Info.plist key
UISupportedInterfaceOrientations
-
5:13 - Required capabilities Info.plist key
UIRequiredDeviceCapabilities
-
7:59 - Look to Dictate enablement
// SwiftUI @State private var searchText = "" var body: some View { NavigationStack { Text("Query: \(searchText)") } .searchable(text: $searchText) .searchDictationBehavior(.inline(activation: .onLook)) } // UIKit let searchController = UISearchController() searchController.searchBar.isLookToDictateEnabled = true
-
-
찾고 계신 콘텐츠가 있나요? 위에 주제를 입력하고 원하는 내용을 바로 검색해 보세요.
쿼리를 제출하는 중에 오류가 발생했습니다. 인터넷 연결을 확인하고 다시 시도해 주세요.