- Total
꿈꾸는리버리
실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오. 본문
xcode의 시뮬레이터에서 테스트 및 디버깅
시뮬레이터는 기기에서 앱을 테스트하기 전에 신속한 프로토타이핑 및 개발을 할 수 있습니다. 시뮬레이터에도 iOS 앱을 테스트하고 디버깅하는 데 도움이 되는 기능이 있지만, 실제 디바이스가 아니기 때문에 xcode에서 할 수 있는 개발 환경에서 테스팅할 수 없는 기능이 몇 가지 존재합니다.
1 ) Mac에서 실행되는 시뮬레이터는 실제 앱보다 성능이 좋다.
시뮬레이터는 실제 폰에서 실행이 되는 앱이 아니라 Mac에서 실행되는 앱이기 때문에 CPU, 메모리 및 네트워크 연결을 비롯한 컴퓨터 리소스에 액세스 할 수 있게 됩니다. 그렇게 때문에 모든 리소스는 모바일 장치에서 찾을 수 있는 리소스보다 빠를 가능성이 높습니다. 그렇기 때문에 시뮬레이터로 앱의 성능, 메모리 사용량 및 네트워킹 속도를 테스팅하는 것은 실제 앱과는 오차가 있기에 정확한 테스트가 아닙니다. 그렇기 때문에 기기에서 앱의 사용자 인터페이스 성능을 항상 테스트해야 합니다.
2 ) 실제 디바이스에서의 앱과 시뮬레이터는 상호작용의 차이가 있다.
일부 사용자 인터페이스 요소는 장치의 터치를 통해 앱과 상호 작용할 때보다 마우스를 사용하여 시뮬레이터에서 더 쉽게 상호 작용할 수 있습니다.
개인적인 경험으로는 앱으로 손을 쥐고 앱을 구동했을 때 맥에서 보는 UI와 사뭇 다르게 느껴지기도 했습니다. 또, ios에서 지원해주는 사용자 인터렉션(ex 왼쪽으로 스와이프시 이전 화면, fullscreen 끄기) 등을 했을 때 사용자의 입장에서 flow가 괜찮은지를 확인하는데에는 앱을 사용하는 것처럼 습관을 이용하는 게 좋았습니다.
3 ) 하드웨어적으로 사용하지 못하는 기능이 있다.
장치의 기능 대부분은 시뮬레이터에서 시뮬레이션할 수 있지만 일부 하드웨어 기능은 장치에서 직접 테스트해야 합니다. ( iOS 8.2 기준.. )
- 모션 지원(가속도계 및 가압계)를 지원하지 않음
- 오디오 및 비디오 입력(카메라 및 마이크) +전화기능을 지원하지 않음
- 근접 센서, 기압계주변, 광 센서를 지원하지 않음
4 ) API
시뮬레이터에서는 기기에서 사용 가능한 API의 기능을 사용할 수 없습니다.
- 푸시 알림 받기, 보내기를 지원하지 않음
- 사진, 연락처, 캘린더에 액세스하기 위해 개인 정보 보호 알림을 지원하지 않음
- Handoff 기능을 지원하지 않음
ex)
- 푸시 알림 수신 및 보내기
- 사진, 연락처, 캘린더 및 미리 알림에 대한 액세스에 대한 개인 정보 보호 알림
- UIBackgroundModes key
- hand off
+ ) hand off
hand off,, 이게 뭔가 싶었는데 이렇게 icloud가 연동되어 있을 때 여러 디바이스 간에서 해당 작업을 이어 할 수 있도록 지원해주는 기능이다.
4 ) 프레임워크
- External Accessory
: Apple Lightning 커넥터 또는 Bluetooth 무선 기술 - Media Player
: 앱에 음악이 포함된 경우 이 프레임워크를 사용하여 사용자 라이브러리에서 오디오 콘텐츠 (노래, 팟캐스트, 책 등)를 검색할 수 있습니다. 그런 다음 해당 콘텐츠를 직접 재생하거나 시스템 음악 앱에 재생하도록 요청할 수 있습니다. 예를 들어, 게임은 사용자에게 특정 게임 레벨을 완료하는 동안 자신의 음악을 재생할 수 있는 옵션을 제공할 수 있습니다. - Message UI
: 메시지 UI 프레임워크는 이메일 및 SMS(Short Messaging Service) 텍스트 메시지에 대한 표준 구성 인터페이스를 표시하기 위한 특수 보기 컨트롤러를 제공합니다. 인터페이스를 사용하여 사용자가 앱을 떠나지 않고도 메시지 전달 기능을 추가할 수 있습니다.
+) OpenGL ES
: 임베디드 시스템을 위한 API인 OpenGL ES를 사용하는데에 있어서 어느정도의 제약이 있다고 합니다... ( 지금 공부해도 모를 거 같아서.. 일단 keep하구,, 번역본만 들고 왔습니다 ㅎㅎ )
시뮬레이터에는 앱 개발을 시작하는 데 사용할 수 있는 OpenGL ES 1.1, 2.0 및 3.0의 완전한 구현이 포함되어 있습니다. 시뮬레이터의 기능은 A7 GPU의 기능과 유사합니다. iOS 하드웨어에 대한 자세한 내용은 iOS 기기 호환성 참조 를 참조 하세요. 시뮬레이터는 다음과 같은 몇 가지 면에서 하드웨어 프로세서와 다릅니다.
- 시뮬레이터는 타일 기반 지연 렌더러를 사용하지 않습니다.
- 시뮬레이터는 그래픽 하드웨어에 픽셀 단위로 정확한 일치를 제공하지 않습니다.
- 시뮬레이터에서 OpenGL ES의 렌더링 성능은 실제 장치에서 OpenGL ES의 성능과 관련이 없습니다.
중요: 시뮬레이터의 OpenGL ES 지원은 OpenGL ES 앱 작성을 시작하는 데 도움이 되도록 사용해야 합니다. 시뮬레이터가 iOS 장치에 사용되는 그래픽 프로세서의 정확한 성능이나 실제 성능을 반영한다고 가정하지 마십시오. 항상 실제 장치에서 도면 코드를 프로파일링하고 최적화하십시오.
출처 :
'오뚝이 개발자 > iOS' 카테고리의 다른 글
Userdefault란 무엇이고 어떻게 쓰는 건가요 ? (저장, 로드, 삭제) (0) | 2022.07.14 |
---|---|
Localization : 다국어 처리 (2) | 2022.07.11 |
WWDC 22 Student Challenge : Winner 후기 + 팁 (6) | 2022.06.23 |
[Xcode 5] Xcode 단축키 모음 ! (0) | 2022.05.08 |
[Xcode 7] xcodeproj vs xcworkspace (0) | 2022.04.09 |