책 소개
요약
애플의 아이비콘(iBeacon)이 발표된 지 2년이 넘었다. 그 후 아이비콘을 활용한, 소매, 전시, 경기장, 호텔, 공항 등 다양한 위치 기반 앱이 등장했다. 이 책을 통해 iOS의 비콘(Beacon) 기술과 관련한 서드파티(Third Party) 플랫폼을 학습하고 위치 기반의 서비스를 구축할 수 있다.
이 책에서 다루는 내용
범위 내 비콘 감지와 브로드캐스트 값 읽기
비콘 리전(region) 설명과 코어 로케이션(Core Location) 프레임워크를 이용한 비콘 리전 진출입 시기 판단
비콘 브로드캐스트 값을 통한 비콘 식별과 식별 목적 결정
코어블루투스(CoreBluetooth) 라이브러리를 활용한 iOS 기기의 비콘 변환
비콘 거리를 결정해 몇십 센티미터 내에서 주변 세상을 이해하는 기능 구축
앱이 백그라운드에서 구동 중인 동안 리전에 진입했을 때 사용자에게 알리고, 범위 내에 있을 때 비콘으로 애플 패스북(Passbook) 패스를 표시
박물관 주변을 걸을 때 방문자에게 가장 가까운 전시품을 알려주는 포괄적인 박물관 앱 구축
블루투스 로우(low) 에너지와 아이비콘 뒤에 숨은 기술의 이해
이 책의 대상 독자
이 책은 주변 세상과 상호작용을 나누는 솔루션 구축을 원하는 iOS 신규 혹은 경력 개발자를 대상으로 한다. 이전에 엑스코드나 iOS SDK로 앱을 개발해본 경험은 없어도 되지만, 해본 경력이 있다면 좀 더 빨리 진행할 수 있다. 이 책에 담긴 튜토리얼은 위치 기반 솔루션을 구축할 때 필요한 전부를 갖추기까지 지식을 근거로 점진적으로 구축하도록 고안됐다.
이 책의 구성
1장. 아이비콘의 소개
아이비콘이 개발자에게 제공하는 기술과 놀라운 기회를 안내한다. 아이비콘을 가능하게 한 기술적인 진보를 다루고, 실제 비콘에 접근하기 위한 옵션을 설명한다. 마지막으로 오래전부터 익숙한 Hello World 애플리케이션을 만들어 쉽게 비콘을 사용해본다.
2장. 비콘 감지와 광고 표시
더 상세히 비콘 감지를 소개한다. 브로드캐스트하는 값으로 비콘들 간의 식별법을 보여주고, 리전의 개념, 리전과 로케이션을 나타내기 위해 사용한 코어로케이션 클래스 일부를 소개한다. 새로 발견한 지식으로 다양한 비콘에 접근하면서 다양한 경품을 표시하는 앱을 구축하는 튜토리얼을 구축하기 전에, 비콘 모니터링에 필요한 사용자 퍼미션도 다룬다.
3장. 광고의 브로트캐스트와 경품 전송
코어블루투스 프레임워크의 중요한 클래스를 소개하고, 작동하는 비콘 브로드캐스팅 앱 구축 전에 비콘의 브로드캐스팅 파워의 변형을 어떻게 처리하는지 논한다. 비콘 감지법 그리고 고유의 브로드캐스팅 값에 따라 실행하는 법을 익혔으니, 아이폰, 아이패드를 완벽히 동작하는 아이비콘 브로드캐스터로 어떻게 바꾸는지에 대해 배워본다.
4장. 비콘 범위와 보물 찾기
비콘 범위의 개념과 리시버로부터의 거리를 판단하는 개념을 소개한다. CLLocationManager 클래스 활용을 확대하고, 기기 하나를 센더(sender)로 설정하고, 다른 하나를 리시버(receiver)로 설정해 궁극적으로 단순한 보물 찾기 앱을 구축하게 해주는 튜토리얼을 소개한다.
5장. 백그라운드의 비콘 감지와 위치 기반 데이팅
백그라운드의 비콘 모니터링에 있어서 iOS의 핵심 책임을 소개한다. 앱이 백그라운드에 있을 때 iOS가 비콘 모니터링을 어떻게 맡아서 모니터링이 종료될 경우 앱을 런칭할지 논한다.
6장. 리전의 이탈과 분실 방지
비콘 기술의 다른 용도를 논하고, 사용자가 리전을 떠날 때를 근거로 한 기능을 소개한다. 집에 키나 지갑을 두고 오지 않게 보장하는 애플리케이션 개발법을 보여주기 전에 홈 오토메이션 기술의 가능성을 알아본다.
7장. 판매업체 SDK와 비콘 구매 및 설정
인기 있는 아이비콘 하드웨어 판매업체의 구현을 일부 설명하며, 아이비콘 하드웨어 구매가 어려울 수 있기에, Estimote SDK로 비콘 설정 도구를 구축하기 위해 판매업체 소프트웨어 개발 키트 중 일부를 소개한다. 이 장이 끝날 때면, 상용 구현을 진행해 비콘을 구매할 준비가 되고 확신도 생길 것이다.
8장. 고급 튜토리얼: 아이비콘 박물관
좀 더 고급 튜토리얼로 내용을 종합적으로 설명한다. 튜토리얼은 허구의 박물관에 집중하는데, 여러 전시회가 있고, 전시회마다 그 안에 여러 전시물이 있다. 사용자가 박물관을 돌아다니면, 앱에 보이는 정보는 현재 가장 가까운 전시물에 관한 정보를 보여주도록 변한다. 또한 사용자가 박물관 주변을 돌아다니면, 인터랙티브한 웹사이트에서 사용자의 여정을 추적할 수 있다.
9장. 아이비콘 보안과 위험요소의 이해
아이비콘으로 앱을 구축할 때 고려해야 할 보안 취약성을 다룬다. 사용자의 우려를 야기하는 보안과 관련한 불필요한 오해를 없애주며, 사용자에게 겁을 주지 않고 앱에서 보안 퍼미션을 자연스럽게 요청하는 방법도 설명한다.
목차
목차
- 1 아이비콘의 소개
- 아이비콘의 소개
- 이봐, 무슨 일이야
- RSSI를 이용한 범위의 이해
- 호환 기기
- 아이비콘의 상용 애플리케이션
- 판매업체는 많고 시간은 없다
- 에스티모트
- 에스티모트 비콘의 장점
- 에스티모트 비콘의 단점
- 록시미티
- 록시미티 비콘의 장점
- 록시미티 비콘의 단점
- 레드베어랩
- 레드베어 비콘 B1의 장점
- 레드베어 비콘 B1의 단점
- 기타 판매업체 옵션
- 에스티모트
- 컴패니언 OS X 애플리케이션과 웹사이트
- 컴패니언 앱 사용
- Hello World
- 착수
- 코어 로케이션 프레임워크 추가
- 퍼미션 메시지 추가
- CLLocationManagerDelegate 메소드의 설정
- CLLocationManager 인스턴스 추가
- UUID 준비
- 모니터링의 시작
- 행마다 살펴보기
- 코드 테스트
- 정리
- 2 비콘 감지와 광고 표시
- UUID/메이저/마이너 브로드캐스트 세 값의 사용자
- UUID - 보편적인 고유의 식별자
- 메이저
- 마이너
- 유스케이스의 사례
- 코어로케이션의 이해
- CLBeaconRegion 클래스
- CLLocationManager 클래스
- CLLocationManager 클래스의 생성
- CLLocationManager 클래스의 행별 정의
- locationManager:didEnterRegion
- locationManager:didExitRegion
- locationManager:didRangeBeacons:inRegion
- locationManager:didChangeAuthorizationStatus
- 아이비콘 퍼미션의 이해
- iOS 8의 로케이션 퍼미션
- 거부 후 로케이션 활성화
- 튜토리얼 앱 구축
- 앱의 생성
- CLOfferViewController 추가
- 퍼미션 설정의 로케이션 설정
- 컨트롤 추가
- 루트 뷰 컨트롤러 설정
- 로케이션 매니저 설정
- CLLocationManagerDelegate의 연결
- 광고 표시
- 경품의 철회
- 정리
- 3 광고의 브로드캐스트와 경품 전송
- 코어 블루투스 프레임워크의 소개
- 센트럴과 페리페럴의 이해
- 코어 블루투스 프레임워크, 센트럴, 페리페럴
- CBCentral 클래스
- CBPeripheral 클래스
- CBPeripheralManager 클래스
- CLBeaconRegion으로부터 브로드캐스트 값 받아오기
- 측정된 파워(TXPower)
- 착수
- 프레임워크 추가
- 컨트롤의 설정
- 뷰의 생성
- 스토리보드의 연결
- 뷰 컨트롤러의 설정
- 스위치 로직 추가
- 정리
- 4 비콘의 범위와 보물 찾기
- 근처에 보물이 있다
- 거리의 이해
- 애플리케이션
- 앱 구축의 착수
- 초기 뷰의 드로잉
- 프레임워크와 프로젝트 설정 추가
- 이미지 추가
- 루트 뷰 컨트롤러 구축
- 보물 뷰 컨트롤러 구축
- 마침내 연결
- 찾는 사람 뷰 컨트롤러의 구축
- 찾는 사람 뷰 컨트롤러 상태
- 임포트와 퍼블릭 프로퍼티
- 프라이빗 프로퍼티
- 뷰의 로딩
- 리전의 진출입
- 상태 변경
- 정돈
- 더욱 주의하자
- 코드의 완성
- 정리
- 5 백그라운드의 비콘 감지와 위치 기반 데이팅
- 현실적인 유스케이스
- 소매 로열티의 유스케이스 사례
- 항공사의 업무 지원을 위한 유스케이스 사례
- 책임 넘기기
- CLBeaconRegion 옵션
- 패스북 통합
- 튜토리얼 앱
- 시나리오
- 뷰의 구조
- 코드
- 애플리케이션 생성
- 뷰의 생성
- 앱 델리게이트 설정
- 뷰 컨트롤러의 구현
- 애플리케이션의 테스트
- 비콘의 테스트
- 패스북 패스의 테스트
- 정리
- 6 리전의 이탈과 분실 방지
- 라스베리 파이
- 닌자 블록
- 네스트
- 필립스 휴
- 벨킨 위모
- 아이비콘과 홈 오토메이션
- 비콘 스티커
- 튜토리얼
- 백그라운드의 비콘 범위 결정
- 백그라운드 모드를 이용한 로케이션 추적
- 시스템의 치팅
- 앱의 구축
- 데이터베이스 스키마로 앱 시작
- 약간의 도움을 활용
- 마스터 뷰 컨트롤러 임플멘테이션
- 뷰 컨트롤러의 설정
- Core Data 프레임워크에서 데이터 페칭
- 테이블 셀의 설정
- 사용자 노티
- 새 오브젝트의 삽입
- 비콘 범위 결정
- 디테일 뷰 컨트롤러 구현
- 뷰의 설정
- 프로퍼티의 확보 및 설정
- 입력 검증
- UI의 완성
- NSLocationAlwaysUsageDescription의 추가
- 백그라운드 모드의 활성화
- 앱 테스트
- 정리
- 7 판매업체 SDK와 비콘 구매 및 설정
- 에스티모트의 모트와 SDK
- ROXIMITY 구현
- 요건에 최상인 플랫폼 선택
- 개방적인 비콘 스펙 AltBeacon
- 에스티모트 API 2.1의 사용
- 보안
- 에스티모트 SDK 클래스
- ESTBeacon
- ESTBeaconDelegate
- ESTBeaconManager
- ESTBeaconManagerDelegate
- 구축
- EstimoteSDK의 추가
- API 접근권 추가
- 헬퍼 클래스
- 마스터 뷰 컨트롤러의 설정
- 비콘 매니저의 설정
- 디테일 뷰 컨트롤러의 설정
- 뷰의 설정
- 비콘으로부터의 연결과 단절
- 변경 사항의 저장
- 뷰의 생성
- 애플리케이션 테스트
- 정리
- 8 고급 튜토리얼 - 아이비콘 박물관
- 전시회
- 박물관 앱
- 앱 구조
- 퍼미션 뷰
- 아트리엄 뷰
- 전시품 뷰
- 지원 사이트
- 사용자 여정의 추적
- 앱 디자인
- 애플리케이션의 구축
- 프로젝트의 생성
- 뷰의 초기화
- 코어로케이션 기능의 추가
- 첫 뷰의 결정
- 퍼미션 뷰의 설정
- 컨트롤 추가
- 전시품 뷰의 설정
- 전시품 뷰의 컨트롤 추가
- 콘텐츠 메소드 추가
- 비콘 범위 결정
- 아트리엄 뷰의 설정
- 아트리엄 뷰의 추가
- 테스트 시간
- 정리
- 9 아이비콘 보안과 위험요소의 이해
- 비콘 사기
- 비콘 사기에 대한 방어
- UUID의 로테이션
- 비콘 해킹
- 보안의 신화와 허구
- 좋은 UX로 사용자의 두려움을 극복시키기
- 정리