[swift] CoreHaptics를 활용한 터치 피드백과 음질 피드백 조합

CoreHaptics는 터치 피드백 및 음질 피드백을 통합적으로 제어할 수 있는 Apple의 피드백 시스템입니다. 이 기능을 사용하면 앱이나 게임에서 사용자에게 더욱 뛰어난 경험을 제공할 수 있습니다.

CoreHaptics 설정

CoreHaptics를 사용하려면 먼저 CoreHaptics 프레임워크를 포함해야 합니다. Xcode 프로젝트에서 Build Phases 탭으로 이동한 후 Link Binary With Libraries 섹션에 CoreHaptics.framework을 추가합니다.

또한 Info.plist 파일에 Haptic Feedback을 사용한다는 키-값 쌍을 추가해야 합니다.

<key>UIHapticFeedback</key>
<true/>

터치 피드백 생성

터치 피드백을 생성하려면 CHHapticEventParameter를 사용하여 피드백을 정의해야 합니다. 예를 들어, 다음과 같은 방법으로 CHHapticEvent를 만들 수 있습니다.

let intensity = CHHapticEventParameter(parameterID: .hapticIntensity, value: 1.0)
let sharpness = CHHapticEventParameter(parameterID: .hapticSharpness, value: 1.0)
let event = CHHapticEvent(eventType: .hapticTransient, parameters: [intensity, sharpness], relativeTime: 0)

음질 피드백 생성

음질 피드백을 생성하려면 오디오 파일을 사용하여 CHHapticDynamicParameter를 정의해야 합니다. 다음은 음질 피드백을 생성하는 예시입니다.

let audioURL = Bundle.main.url(forResource: "feedback", withExtension: "wav")!
let audioData = try! Data(contentsOf: audioURL)
let audioEvent = try! CHHapticAudioResource(eventType: .audioCustom, audioURL: audioURL, audioData: audioData)
let dynamicParameter = CHHapticDynamicParameter(parameterID: .hapticAudioBrightnessControl, value: 0.5, relativeTime: 0, parameterDuration: 1)

이제 생성된 터치 피드백과 음질 피드백을 조합하여 CHHapticPattern을 만들어 사용자에게 피드백을 제공할 수 있습니다.

참고 자료