반응형
LinkedIn 개발자로 성장하면서 남긴 발자취들을 확인하실 수 있습니다.
Github WWDC Student Challenge 및 Cherish, Tiramisul 등 개발한 앱들의 코드를 확인하실 수 있습니다.
개인 앱 : Cherish 내 마음을 들여다보는 시간, 체리시는 디자이너와 PM과 함께 진행 중인 1인 개발 프로젝트입니다.
10년 후, 20년 후 나는 어떤 스토리 텔러가 되어 있을지 궁금하다. 내가 만약에 아직 조금 더 탐구하고 싶은 게 있고, 궁금한 게 있다면, 그게 설사 지금 당장의 내 인생에 도움이 안 되는 것 같더라도 경험해보자. 그 경험들을 온전히 즐기며 내 것으로 만들고, 내 일에 녹여내고... 그러다보면 그 점들이 모여 나란 사람을 그려내는 선이 될 테니까.

Recent Posts
Recent Comments
Total
관리 메뉴

꿈꾸는리버리

실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오. 본문

오뚝이 개발자/iOS

실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오.

rriver2 2022. 7. 4. 21:04
반응형

 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 

+ ) UIBackgroundModes key

백 그라운드란 ?
스마트폰 사용자가 앱을 사용하지 않을 경우 시스템은 앱을 백그라운드 상태로 이동시킵니다. 홈 화면을 클릭해서 다른 앱을 사용하는 동안 혹은 화면을 껐을 때 대부분의 앱의 경우 백그라운드 상태가 되었을 때 일시중지됩니다. 앱 일시 중지는 배터리 수명을 향상시키는 방법이기 때문에 시스템에서 중요한 시스템 리소스를 사용자가 사용 해야하는 새로운 foreground 앱을 위해 할당합니다. 하지만, 앱이 백그라운드에서 계속해서 실행되는 경우도 있습니다. 앱을 꺼도 노래가 재생되어야 하거나, 알람을 위해 앱을 background로 둬야 하는 등의 앱이 대표적인 예시입니다. 따라서 앱을 백그라운드에서 실행하는 것이 필요하다고 판단되면 iOS는 시스템 리소스 또는 사용자 배터리를 소모하지 않고 효율적으로 수행 할 수 있도록 도와줍니다. 이를 구현하기 위해서 사용되는 게 UIBackgroundModes key입니다.

+ ) 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 면접 질문

 

GitHub - JeaSungLEE/iOSInterviewquestions: 👨🏻‍💻👩🏻‍💻iOS 면접에 나올 질문들 총 정리

👨🏻‍💻👩🏻‍💻iOS 면접에 나올 질문들 총 정리 . Contribute to JeaSungLEE/iOSInterviewquestions development by creating an account on GitHub.

github.com

developer.apple

 

Testing and Debugging in Simulator

Retired Document Important: The information in this document is deprecated in Xcode 9. For Xcode 9 and later, see Simulator Help by choosing Help > Simulator Help in Simulator. Testing and Debugging in Simulator Simulator is a great tool for rapid prototyp

developer.apple.com

 

 

Emulators vs Simulators vs Real Device for Testing | BrowserStack

Testing on mobile devices is key! BrowserStack provides differences between Emulators, Simulators & Real Devices for testing solutions & tells you what to use when.

www.browserstack.com

 

반응형
Comments