시뮬레이터에서 할 수 없는 동작들에 대해 생각해보았다. 시뮬레이터 관련 공식문서는 찾았지만 구버전의 xcode 시뮬레이터 관련 문서였고, 최근 버전의 레퍼런스 페이지에서는 시뮬레이터 관련 문서를 찾지 못했다. 일단 구버전 문서의 기준에 따르면 다음과 같은 동작들이 불가능하다.
Hardware Differences
Though most of the functionality of devices can be simulated in Simulator, some hardware features must be tested directly on a device. The hardware features that are not simulated as of iOS 8.2 are:
- Motion support (accelerometer and gyroscope) are unsupported.
- Audio and video input (camera and microphone) are unsupported.
- Proximity sensor
- Barometer
- Ambient light sensor
API Differences
Simulator APIs don’t have all the features that are available on a device. For example, the APIs don’t offer:
- Receiving and sending Apple push notifications
- Privacy alerts for access to Photos, Contacts, Calendar, and Reminders
- The UIBackgroundModes key
- Handoff support
In addition, Simulator doesn’t support the following frameworks:
- External Accessory
- IOSurface
- Media Player
- Message UI
- In UIKit, the UIVideoEditorController class
한 가지 의문인 점은 하드웨어에서의 오디오 입력 부분이다. 현시점 시뮬레이터 14.1 버전에서는 입출력 관련 메뉴가 따로 있다. 해당 메뉴를 통해 오디오 입력을 맥북의 마이크로 지정할 수 있고, 실제로 입력이 가능한지 텍스트 입력을 해보았다.
영어는 물론 한국어로도 잘 인식이 되는 모습을 확인할 수 있었다. 시뮬레이터가 오디오 입력을 지원하니 아마도 테스트용 앱 개발을 통해서도 입력을 지원하지 않을까 싶다. 나머지 가속도, 근접, 조도 센서와 같은 부분은 당연히 지원하지 않을 것으로 보인다. 기압계(barometer)도 적혀있는데, 아이폰에 운동량 측정을 위해 아이폰6부터 들어간 센서라고 한다. 해당 센서를 통해 개발자는 대략적인 고도를 알아낼 수 있다고 한다. 이런 부분은 처음 알았다.
이외에도 시뮬레이터의 메뉴들을 좀 더 찾아보니 페이스아이디 지원 부분도 있었다. 맥북에는 당연하게도 페이스 아이디 센서가 없으니 일치, 불일치와 같은 조건 상황만 지원하는 것으로 보인다.
그리고 정보를 찾다가 많은 분들이 마우스로만 조작해야하므로 핀치 줌인/아웃 동작을 할 수 없다고 적어놨던데, 틀린 정보다. 옵션 키를 누르면 투 포인트로 제어할 수 있다. 해당 부분은 스탠퍼드 swift 강의로 유명한 cs193p 강의에서 확인했던 기능이다. 해당 부분은 본인도 지도 관련 앱을 개발할 당시 잘 사용했던 기능이다.
option키를 누르고 있으면 x,y축 반전으로 동작하는 하나의 포인터가 추가되고, shift를 추가로 누르게 되면 평행이동하는 포인터로 제어가 가능하다.
이상 요약하자면 시뮬레이터로 할 수 없는 것들은 다음과 같다.
하드웨어
- 가속도, 자이로스코프센서
- 비디오 입력(카메라)
- 근접센서
- 기압 센서
- 조도센서
API
- 애플 푸시 알림
- 사진, 연락처, 캘린더, 리마인더 등 개인 정보 접근
- The UIBackgroundModes key
- 핸드오프 기능
API 측면에는 적지 않은 더 많은 기능들이 적혀있는데 하나하나 확인하기에는 시간이 걸릴 것 같으므로 천천히 알아봐야겠다.
'iOS > Study' 카테고리의 다른 글
[iOS] App thinning에 대해서 설명하시오. (0) | 2022.12.06 |
---|---|
[iOS] 앱 화면의 콘텐츠를 표시하는 로직과 관리를 담당하는 객체를 무엇이라고 하는가? (2) | 2022.11.30 |
[iOS] 앱의 콘텐츠나 데이터 자체를 저장/보관하는 특별한 객체를 무엇이라고 하는가? (0) | 2022.11.26 |
[iOS] Bounds 와 Frame 의 차이점을 설명하시오. (0) | 2022.11.21 |
[시작글] iOS 관련 지식 (0) | 2022.11.21 |