[iOS] CoreBluetooth (3) - What's New in Core Bluetooth 번역 정리

Madeline👩🏻‍💻·2024년 5월 21일
0

iOS study

목록 보기
51/61

Reference:
https://developer.apple.com/videos/play/wwdc2019/901/

WWDC2019: What's New in Core Bluetooth

위 영상의 중간 부분을 제외한 내용을 정리한 글입니다.
지극히 제가 필요한 부분만 정리했으니, 참고하시길 바랍니다.

Learn how to adopt privacy-enhancing changes in Core Bluetooth. Discover new possibilities with LE 2Mbps, advertising extensions, BR/EDR, and dual-mode devices. Understand how to debug your Core Bluetooth communication with the improvements to PacketLogger.

1. Blutooth 5.0 - LE 2Mbps

  • 호환 장치 간의 물리 계층 속도(/무선속도)가 1Mbps -> 2Mbps로 증가
  • 동일한 양의 통신 시간으로, 2배의 bit 수를 전송할 수 있으므로, 연결이 더 빨라질 뿐만 아니라, 전력 효율성도 더 높아짐

  • 앱에 더 좋고 명백할거다. 대신 이 기능이 작동하려면, 개발하는 액세서리도 LE 2Mbps를 지원해야 한다.
  • iPhone 8, 8 Plus, iPhone X부터 사용 가능
  • 성능이 이렇게나 좋아졌다~

2. Advertising Extensions

  • 광고 채널에서 더 작은 페이로드를 전송한 다음, 더 넓은 데이터 채널로 점프하여 훨씬 더 큰 페이로드를 전송함으로써 3개 광고 채널의 혼잡을 완화함
    31byte -> 255 byte로 늘어났고, 전송 속도 자체는 이제 LE 2Mbps가 될 수 있음

Extended Scan

  • 확장 광고를 이제 검색할 수 있는데, LE 2Mbps로 전송되는 확장 광고만 검색함
    -> 액세서리를 개발하는 경우, 액세서리는 LE 2Mbps로 확장된 광고도 지원해야 함

  • 최대 124byte의 확장된 광고 페이로드 지원 (기존 4배)

  • 새로운 API

Extended Connections

  • 기존 연결 교환 프로토콜을 개선
  • 기존:

RF 환경이 매우 동적이기 때문에, 연결 포시가 실제로 광고주에게 도달하지 못할 수 있다. 그래서 이로 인해 하루종일 전체 프로세서가 불필요하게 깨어나서, 배터리를 더 많이 닳게 할 수 있다.

  • 기존 광고, extended 광고 다 연결되는데, 액세서리 개발하는 경우 액세서리도 연결 가능한 extended 광고를 지원해야 함
  • 새로운 API

Privacy Update

  • 사용자 인증
  • 액세서리 알림
    이 두 가지 주요 영역이 개선됨

1. 사용자 인증

iOS 12에서는 CBPeripheralManager를 인스턴스화하고 백그라운드에서 광고하려는 경우, 사용자의 인증을 받아야 했다.
이제는 아무 CoreBluetooth 기능이든 다 권한을 요청할거다.

그러니깐 info.plist에 설명 먼저 추가해라.

왜 필요한지 알려줘라

이렇게 Authorization property도 만들어놨다.

블루투스 신호 받으면 가장 먼저 실행되는 메서드가 ManagerDidUpdateState이다.

권한 받아올때 처리하는 코드가 아래처럼 생겼다면, 다시 짜라

이게 맞다 이렇게 해라~

2. 액세서리 알림

애플은 ANCS(Apple Notification Center Service)로 액세서리가 iOS notification center에서 시스템 및 앱 알림을 받을 수 있도록 지원한다.

ANCS의 개인정보 보호 업데이트에서는 이제 액세서리와 알림을 공유하려면, 사용자 인증이 필요하다.

유저가 iOS 13으로 업데이트하면, 액세서리가 연결되어 알림을 등록할 때 이 권한 메세지가 뜬다.
그리고 권한 허용 여부를 정하면, 아이폰 설정 가서 수정할 수 있지.

  • 새로운 ANCS 개인 정보보호 API

CBCentralManager에서 연결하려는 주변 장치가 ANCS를 지원한다는 것을 알고 있는 경우, 새로운 CBConnect 옵션을 사용할 수 있다.
이렇게 하면 연결, 페어링에 성공하면, 유저가 앱에 있는 동안, 권한 알럿이 뜨고, 유저가 알럿에 응답하면 앱은 다음을 알려주는 delegate callback을 받게 된다.
그리고 get ancsAuthorized를 통해 해당 값을 가져올 수 있다.

CoreBluetooth PacketLogger

  • 개발자를 위한 블루투스 패킷 분석 애플리케이션
  • 현재 iOS 장치에 로그인 프로필을 설치하고, 시스템 진단을 실행하면, 내부의 작은 PacketLogger 파일을 열 수 있음
  • 풍부한 필터링 옵션

이렇게 생겼나보다

그리고 여러분이 정말 좋아할 기능이 새로 추가되었는데, 잇츠 라이브 캡쳐

iOS장치에 로그인 프로필을 설치하고, 이걸 Mac에 연결하고, PacketLogger를 실행하고, iOS 장치에서 액세서리로 실시간 블루투스 트래픽을 캡쳐할 수 있다.
(짝짝짝)

여러 iOS장치를 연결하고, 실시간 트래픽을 캡쳐할 수도 있다.
(짝짝짝짝2)
디버깅할 때 더 많은 컨텍스트를 제공할 수 있기를 바란다.

그래서 어떻게 쓰나요?!
iOS에 iOS13 베타를 설치하고, 개발자 로깅 프로필을 설치하고, PacketLogger를 실행하고, iOS를 Mac에 연결하고, PacketLogger 애플리케이션에서 New iOS Trace 파일을 선택하면 된다.

iOS에 라이브 캡쳐가 진행중임을 알려주는 표시도 있다.

PacketLogger는 xcode 패키지에 있다.

profile
🍎 Apple Developer Academy@POSTECH 2기, 🍀 SeSAC iOS 4기

2개의 댓글

comment-user-thumbnail
2024년 5월 21일

1개의 답글