3월 10일 목요일 / 46일 차
Part 5 - CH 01
내 근처 편의점 찾기 앱 마무리
CLLocationManager
- 앱에 대한 위치 관련 이벤트 전달을 시작하거나 중지하는 데 사용하는 객체
- 앱에 위치 서비스를 추가하려면 CLLocationManager을 사용해서 CLLocationManagerDelegate를 구현하고 앱에 필요한 위치 정보에 액세스 할 수 있는 권한을 부여할지 여부를 결정하게 됨
- 사용자가 권한을 거부했을 때 오류처리를 할 수 있음
- 앱에 필요한 승인 상태를 결정할 수 있음(항상 사용, 이번 한 번만 사용, 앱을 실행할 때만 사용)
- 사용자의 현재 위치에서 크거나 작은 변화를 추적
- 나침반에서 방향 변경 추적
- 사용자 위치 기반 이벤트 생성
- 근거리 데이터 통신기기(Bluetooth Beacon)와 통신
Unit Test(단위 테스트)
- 의도한 대로 작동하는지 테스트하는 것
- 연속되어야 하는 동작이 수행되는지 검증
XCTest
- xcode 프로젝트에 대한 단위 테스트, 성능 테스트, UI 테스트를 만들고 실행할 수 있는 프레임워크
XCTestCase
- 테스트 케이스, 테스트 방법, 성능 테스트 등을 정의하기 위한 기본 클래스
- setUp: 테스트 케이스가 시작되기 전에 초기 상태를 사용자 정의할 수 있게 기회를 제공
- tearDown: 테스트 케이스 종료 후에 정리를 할 수 있게 기회를 제공함
Nimble(오픈소스 프레임워크임)
- 읽기 쉬운 Test Assertion 표현(직관적임)
- 간편한 비동기 테스트 작성
RxTest
- Observable에 시간 개념을 주입
- 임의의 Observer를 통해 subscribe 여부 관계없이 검증 가능
(둘의 차이는 구독의 차이)
HotObservable: 구독의 여부와 관계없이 이벤트가 발생
ColdObservable: 구독이 시작되어야만 이벤트가 발생함
RxBlocking
- Observablr의 Event 방출을 검증
- 특정 시간 동안 방출된 Observable의 Event 검증
복습할 내용
- Model 테스트
오늘의 공부 후기
오늘은 지난 시간 만들었던 내 근처 편의점 찾기 앱을 마무리했습니다.
진행하던 도중 버전 문제가 생겨서 다 만들고 실행이 제대로 되지 않는 문제가 생겼었습니다.
코드는 똑같으나 오류가 계속 떠서 구글링 해보니 버전 관련 문제였습니다.
여차저차 만져보다가 우연히 해결되어 정상적으로 잘 작동했습니다.
또한 지난 시간 배웠었던 Model 테스트하기도 헷갈리는 부분이 있어서
들으며 지난 시간 배웠던 부분을 다시 한번 상기시키는 계기가 되었습니다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.