issues
search
Apple-CS-interview
/
iOS-CS-interview
7
stars
1
forks
source link
실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오.
#38
Open
vichye-1
opened
10 months ago
vichye-1
commented
10 months ago
실제 디바이스가 없을 때의 개발 환경
iOS 앱을 개발할 때 사용하는 Xcode는 시뮬레이터 기능을 제공한다.
시뮬레이터는 실제 디바이스의 출력 결과만 흉내내는 것이기 때문에 같은 기능에 대해서 실제 디바이스와 시뮬레이터가 서로 다른 결과를 보여주거나, 혹은 시뮬레이터에서 아예 지원하지 않는 기능들이 있다.
시뮬레이터를 사용하면 실제 디바이스 환경이 아니라 Mac 환경에서 실행되기에 CPU, 메모리, 네트워크 연결 등이 컴퓨터의 리소스에 액세스되어 실제 디바이스에서 발견되는 리소스보다 더 빠를 수 있다.
따라서 정확한 앱의 성능이나 메모리 사용량, 네트워크 속도 등을 테스트할 수 없다.
해상도와 색상에 차이가 있다.
마우스를 이용한 터치를 하기 때문에 실제 디바이스와는 터치 동작이 다를 수 있다.
앱의 백그라운드를 처리하는 방식에 차이가 있다.
시뮬레이터에서 할 수 있는 기능
디바이스의 화면 방향을 회전하는 것
디바이스를 흔드는 기능(Shake Gesture)
소프트웨어 / 하드웨어 키보드
FaceID
Mac이 FaceID 센서를 갖추고 있지 않기 때문에, Enrolled, Matching Face, Non-matching Face 등의 상황을 직접 지정하는 방식으로 지원된다.
Apple Pay 인증
시뮬레이터에서 할 수 없는 기능
하드웨어 기능
주변 조도 센서
오디오 입력 - Siri를 이용하는 경우 제외
기압계
모션 지원 (가속계 및 자이로스코프)
근접 센서
블루투스
카메라
전화
API
Apple 푸시 알람 수신 및 전송 기능
JSON 파일을 시뮬레이터에 끌어다 놓아서 푸시 알림 수신을 테스트할 수는 있다
UIBackgroundModes키, UIKit의 UIVideoEditorController 클래스, Handoff 지원 기능
ARKit, External Accessory(외부 액세서리), HomeKit, IOSurface, Media Player, Message UI 프레임워크
출처
developer.apple.com - Differences Testing in Simulator - Xcode9 이전
developer.apple.com - Testing in Simulator versus testing on hardware devices - Xcode9 이후
티스토리 - [iOS] 실제 디바이스가 없는 경우의 개발 환경
Do-hyun-Kim
commented
10 months ago
실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오.
시뮬레이터는
Mac
에서 실행되는 앱이므로 CPU, 메모리, 네트워크 연결을 포함한 컴퓨터 Resource에 접근 할 수 있다.
CPU, 메모리, 네트워크 연결 Resource를 모바일(Device)보다 더 빠를 가능성이 높으며 결과적으로 시뮬레이터에는 앱 성능, 메모리 사용량, 네트워킹 속도를 정확하게 테스트 하지는 못한다.
시뮬레이터에서는 HardWare와 API에 몇가지 차이점이 있다.
HardWare Differences
가속도 센서, 가압계 센서, 주변광 센서, GPS 센서 기능이 지원되지 않는다.
오디오 및 비디오(카메라 및 마이크) 입력 장치 기능에 지원되지 않는다.
UIPinchGestureRecognizer와 같은 두 손가락으로 줌인, 줌아웃 하는 기능은 제공하지 않는다.
전화 기능은 제공 하지 않는다.
API
Apple Push Notification 알림 받기와 보내기를 제공 하지 않습니다.
사진, 연락처, 캘린더 접근 하기 위해 개인 정보 알림을 지원하지 않습니다.
Handoff 기능을 지원하지 않습니다.
MessageUI 기능을 지원하지 않습니다.
개발 하면서 지원 안되는 것들 써봅니다!!
Haptic 기능은 제공하지 않습니다. 직접 디바이스에서 Haptic이 발생하는지 감지 할 수 있습니다. 디버깅은 할 수 있습니다.
📝 참고 자료
Simulator User Guide
실제 디바이스가 없을 경우 할 수 있는 것과 없는 것
Hminchae
commented
10 months ago
시뮬레이터(Simulator)
iOS 개발 , 실제 모바일 기기 없이 Xcode의 Simulator를 사용하여 테스트할 수 있음
시뮬레이션(Simulation) : 실제 디바이스를 흉내내 유사한 환경에서 실행 하는 것(에뮬레이션과는 다르게 실제 시스템과 완전히 동일하지 않음)
시뮬레이터로도 할 수 있는 것
디바이스의 화면 방향 회전
흔드는 기능
소프트웨어/하드웨어 키보드
FaceID : Mac이 FaceID 센서를 갖추고 있지 않기 때문에 Enrolled, Matching Face, Non-matching Face 등의 상황을 직접 지정하는 방법만 지원
Apple Pay 인증
오디오 입력을 일부 지원 : Siri를 이용하는 경우
핀치 줌 :
option
키와 함께 쓸 수 있음
시뮬레이터로 할 수 없는 것
시뮬레이터와 실기기가 차이가 나는 것
정확한 앱의 성능이나 메모리 사용량, 네트워크 속도 테스트 : 실제 디바이스 환경이 아니라 Mac 환경에서 실행되는 것이기 때문에 CPU, 메모리, 네트워크 연결 등이 컴퓨터의 리소스에 액세스됨. 실제보다 더 빠르게 측정될 수 있음
정확한 해상도/색상 비교 : Mac 과 실기기 간 포인트당 픽셀이 다를 수 있고, 이로 인해 텍스트와 이미지가 다르게 보임
터치 동작이 다를 수 있음 : 사용자가 탭할 수 있는 영역이 충분한지 등은 실기기에서 테스트 하여야 함
앱의 백그라운드를 처리하는 방식 : 시뮬레이터는 iOS 11 이상, tvOS 11 이상 및 watchOS 4 이상에서 백그라운드 앱 및 프로세스를 일시 중단
사용할 수 없는 하드웨어 기능
주변 조도 센서
가압계
가속계 및 자이로스코프
근접 센서
블루투스
카메라
전화
사용할 수 없는 API
Apple 푸시 알림 수신 및 전송 기능 -> JSON파일을 시뮬레이터에 끌어다 놓아서 푸시 알림 수신 테스트 가능
UIBackgroundModes 키
UIKit의 UIVideoEditorController 클래스
Handoff 지원 기능
ARKit
External Accessory(외부 악세사리)
HomeKit
IOSurface
Media Player
Message UI
참고
[iOS] 실제 디바이스가 없는 경우의 개발 환경
ronick-grammer
commented
10 months ago
시뮬레이터에서 할 수 없는 것
실제 디바이스 환경이 아니기 때문에, 정확한 앱의 성능이나 메모리 사용량, 네트워크 속도 등을 테스트할 수 없다.
해상도와 색상에 차이가 있어 색상및 해상도에 차이가 있을 수 있다.
iOS 11이상에서 백그라운드 앱 및 프로세스를 일시 중단한다.
주변 조도 센서, 기압계, 가속계 및 자이로스코프, 근접 센서 등을 사용할 수 없다.
블루투스, 카메라, 전화 기능을 사용할 수 없다.
Apple 푸시알림 수신 및 전송 기능을 사용할 수 없다.
UIBackgroundModes 키, UIKit의 UIVideoEditorController 클래스, Handoff 지원 기능을 사용할 수 없다.
ARKit, External Accesorry(외부 악세사리), HomeKit, IOSurface, Media Player, Message UI 프레임워크를 사용할 수 없다.
📝 참고 사이트
[iOS] 실제 디바이스가 없는 경우의 개발 환경
Testing and Debugging in Simulator
실제 디바이스가 없을 때의 개발 환경
시뮬레이터에서 할 수 있는 기능
시뮬레이터에서 할 수 없는 기능
출처