실제 디바이스와 비교했을 때 시뮬레이터와는 다음의 차이가 있습니다.
일반, 디스플레이, 시스템, 하드웨어, API, Metal
Testing in Simulator versus testing on hardware devices
일반: 프로세싱, 그래픽, 네트워킹의 차이
시뮬레이터는 CPU, 메모리, 네트워크 연결 등 Mac을 사용하는 컴퓨터의 자원을 사용합니다.
따라서, 앱의 퍼포먼스, 메모리 사용량, 네트워크 속도 등이 실제 디바이스와 차이가 있을 수 있어요.
탭 영역이 사용자가 탭할 수 있을 만큼 충분히 크거나, 사용자 인터페이스의 텍스트를 읽을 수 있는지 확인하는 것처럼 실제 결과가 필요한 부분은 실제 디바이스를 이용해야 해요.
그 밖에 포인터(마우스 포인터 말하는 것 같아요), 키보드와의 상호 작용은 iOS, watchOS의 손가락, visionOS의 손 제스처 그리고 tvOS의 초점 기반 모델을 사용하는 것과 다릅니다.
시뮬레이터에서 앱이 정상적으로 작동하는 것을 확인한 후, 상호 작용에 대한 예상치 못한 문제를 찾기 위해 실제 디바이스에서 테스트하세요.
디스플레이: 해상도, Mac과 포인트당 픽셀
시뮬레이터 창 크기를 조절하면 텍스트와 이미지가 더 선명해 보일 수 있고, Mac과 실제 디바이스 간 색 재현율로 인해 시뮬레이터의 색상이 부정확할 수 있어요.
시스템: 백그라운드 앱, 프로세스, 파일 시스템
시뮬레이터는 iOS 11, tvOS 11, watchOS 4 이상에서 백그라운드 앱과 프로세스를 일시 중지해요.
디버거는 일시 중지한 프로세스를 재개할 수 있어요.
그리고 파일 시스템을 HFS+ 및 APFS 포맷 볼륨에서 대소문자를 구분하는 것으로 취급합니다.
(MacOS의 HFS, HFS+, APFS는 Window의 FAT, NTFS, ReFS와 같은 파일 시스템을 말해요.)
하드웨어: iOS와 watchOS 간 연결성, Mac에 없는 센서
iOS와 watchOS가 둘 다 시뮬레이터에서 실행되기 때문에 신뢰성 있는 연결이 보장됩니다.
또한, Mac에 존재하지 않는 센서는 시뮬레이터를 통해 사용할 수 없습니다.
주변 광센서, Device > Siri를 선택하여 사용하는 것을 제외한 오디오 입력, 기압계, 블루투스, 카메라, 모션 지원(가속도계, 자이로스코프), 근접 센서
API: 프레임워크, 푸시, 핸드오프
시뮬레이터는 아래 프레임워크를 지원하지 않아요.
ARKit, 외부 액세서리, HomeKit, IOSurface, 미디어 플레이어, Message UI
그리고 다음 API 기능은 시뮬레이터에서 사용할 수 없어요.
애플 푸시 알림 수신 및 전송(푸시 알림 페이로드가 있는 JSON 파일을 드래그 & 드롭하면 시뮬레이터에서 푸시 알림 수신을 테스트할 수 있어요.), UIBackgroundModes Key, UIKit의 UIVideoEditorController, Handoff
Metal: Metal 구현
시뮬레이터에는 앱 개발을 시작하는 데 사용할 수 있는 Metal 구현이 포함되어 있어요.
'Swift' 카테고리의 다른 글
UIKit: UIWindow (0) | 2023.09.09 |
---|---|
Swift: Generics (0) | 2023.08.29 |
Simulator와 실제 디바이스 차이 - 1 (0) | 2023.08.28 |
UIKit: bounds, frame (0) | 2023.08.25 |
Vision: visionOS simulator (0) | 2023.08.22 |