CHAPTER 9
9 장
iOS Programming
iOS 프로그래밍
Apple was an early supporter of Bluetooth 4.0 and, as a result, there is a rich set of APIs and tools to support development of BLE devices and applications using iOS.
Apple은 Bluetooth 4.0을 일찍부터 지원했으며, 그 결과 iOS를 사용하여 BLE 장치와 애플리케이션 개발을 지원하는 풍부한 API와 도구 세트가 있습니다.
The iOS device in question is usually an iPhone (iPhone 4S or later), but iOS also supports BLE on all relatively new iPads (iPad 3 or later, or any iPad mini) and the fifth generation iPod Touch devices.
문제의 iOS 장치는 일반적으로 iPhone (iPhone 4S 이상)이지만 iOS는 비교적 새로운 모든 iPad (iPad 3 이상 또는 iPad mini) 및 5세대 iPod Touch 장치에서도 BLE를 지원합니다.
BLE is also supported on later-generation Macs—including iMac (built after late 2012), MacBook Pro (2012 or later), MacBook Air (2011 or newer), and Mac Pro (2013 or later)—but this chapter will focus on iOS, specifically iOS 7 and later.
BLE는 iMac (2012년 후반 이후 제작), MacBook Pro (2012 이상), MacBook Air (2011 이상) 및 Mac Pro (2013 이상)를 포함한 이후 세대 Mac에서도 지원됩니다. 하지만 이 장에서는 iOS, 특히 iOS 7 이상에 중점을 둘 것입니다.
The types of BLE devices and applications most relevant to iOS programming fall into three main categories:
iOS 프로그래밍과 가장 관련성이 높은 BLE 장치 및 애플리케이션의 유형은 다음 세 가지 주요 범주로 나뉩니다.
Peripheral devices with iOS apps
iOS 앱이 있는 주변 장치
In this category, BLE peripheral devices and sensors are paired with corresponding iOS apps—for example, a bicycling power and cadence meter that uses the iPhone to display and record data.
이 카테고리에서는 BLE 주변 장치 및 센서가 해당 iOS 앱 (예: iPhone을 사용하여 데이터를 표시하고 기록하는 자전거 파워 및 케이던스 미터)과 페어링됩니다.
The iBeacon is a broadcast-only device that uses BLE advertising (see “Advertising and Scanning” on page 19) to augment navigation indoors, where GPS signals and cell phone towers typically can’t penetrate, to provide location services to iOS devices (and also Android devices).
iBeacon은 BLE 광고 (19페이지의 "광고 및 검색" 참조)를 사용하여 일반적으로 GPS 신호와 휴대폰 기지국이 침투할 수 없는 실내 내비게이션을 강화하고 위치를 제공하는 방송 전용 장치입니다. iOS 장치 (또한 Android 장치)에 서비스를 제공합니다.
Peripheral devices with Apple Notification Center Service
애플 알림 센터 서비스가 있는 주변 장치
Built into iOS, the Apple Notification Center displays alerts and notifications, such as incoming caller ID and updates from news services, on the screen of the iOS device.
iOS에 내장된 애플 알림 센터/Apple Notification Center는 수신 발신자 ID 및 뉴스 서비스 업데이트와 같은 경고 및 알림을 iOS 기기 화면에 표시합니다.
Using the Apple Notification Center Service (ANCS), iOS devices can use BLE to display notifications on an auxiliary display, such as a BLE-enabled watch.
ANCS (Apple 알림 센터 서비스)를 통해 iOS 장치는 BLE를 사용하여 BLE 지원 시계와 같은 보조 디스플레이에 알림을 표시할 수 있습니다.
Developing apps for sensors primarily involves using the Core Bluetooth framework, while developing apps for iBeacon primarily involves the Core Location framework (ANCS does not require an app).
센서용 앱 개발에는 주로 Core Bluetooth 프레임워크 사용이 포함되는 반면, iBeacon용 앱 개발에는 주로 Core Location 프레임워크 사용이 포함됩니다 (ANCS에는 앱이 필요하지 않음).
The Core Bluetooth framework (CoreBluetooth) is the portion of the iOS API (application programming interface) that deals with BLE functions and devices.
Core Bluetooth 프레임워크 (CoreBluetooth)는 BLE 기능 및 장치를 다루는 iOS API (애플리케이션 프로그래밍 인터페이스)의 일부입니다.
Its CBCentralManager and CBPeripheral classes allow you to work with the centrals and peripherals described in Chapter 3.
CBCentralManager CBPeripheral 클래스를 사용하면 3장에서 설명한 중앙 장치 및 주변 장치로 작업할 수 있습니다.
CBCentralManager provides resources for scanning, discovering, and connecting to remote peripherals, while CBPeripheral provides resources for working with services and characteristics that are part of the remote peripheral.
CBCentralManager는 원격 주변 장치를 스캔, 검색하고 연결하기 위한 리소스를 제공하는 반면, CBPeripheral은 원격 주변 장치의 일부인 서비스 및 특성을 사용하기 위한 리소스를 제공합니다.
This chapter provides practical familiarity with these frameworks by studying code examples that focus on BLE functionality, especially the key classes and methods needed to implement BLE-enabled apps.
이 장에서는 BLE 기능, 특히 BLE 지원 앱을 구현하는 데 필요한 주요 클래스와 메서드에 초점을 맞춘 코드 예제를 연구하여 이러한 프레임워크에 대한 실제적인 친숙성을 제공합니다.
These examples illustrate the foundations upon which a complete BLE-based app can be built. While the examples are not complete and polished apps, they are fully functional on an iOS device, and understanding how they work is a good start toward writing your own BLE-enabled apps for iOS.
이러한 예는 완전한 BLE 기반 앱을 구축할 수 있는 기반을 보여줍니다. 이 예는 완전하고 세련된 앱은 아니지만 iOS 기기에서 완벽하게 작동하며, 작동 방식을 이해하는 것은 iOS용 BLE 지원 앱을 작성하는 데 좋은 시작입니다.
Complete Xcode projects for all examples are available in the GitHub repository for this book.
모든 예제에 대한 전체 Xcode 프로젝트는 이 책의 GitHub 저장소에서 사용할 수 있습니다.
All examples require iOS 7 or later and Xcode 5 or later.
모든 예시에는 iOS 7 이상 및 Xcode 5 이상이 필요합니다.
A general discussion of app development for iOS and the Xcode development environment is a broad and complex topic in itself, most of which is beyond the scope of this chapter or book.
iOS용 앱 개발과 Xcode 개발 환경에 대한 일반적인 논의는 그 자체로 광범위하고 복잡한 주제이며, 그 중 대부분은 이 장이나 책의 범위를 벗어납니다.
If you’re looking for more information, we recommend [Programming iOS 7 and iOS 7 Programming Fundamentals] (O’Reilly) by Matt Neuburg.
더 많은 정보를 찾고 계시다면 Matt Neuburg가 쓴 [Programming iOS 7 and iOS 7 프로그래밍 기초] (O'Reilly)를 추천합니다.
Of course, the most authoritative source is Apple iOS Developer Library, beginning with the Core Bluetooth Programming Guide.
물론 가장 권위 있는 소스는 핵심 Bluetooth 프로그래밍 가이드부터 시작하는 Apple iOS 개발자 라이브러리입니다.
The examples in this chapter will closely follow the approach recommended in that guide.
이 장의 예제는 해당 가이드에서 권장하는 접근 방식을 밀접하게 따릅니다.