[ios] Core Haptics의 구현 방법

iOS 앱을 개발하다 보면 사용자에게 터치 피드백을 제공해야 하는 경우가 있습니다. iOS 13부터는 Core Haptics를 통해 터치 피드백을 구현할 수 있습니다. 이 기능을 사용하면 사용자의 상호작용에 대한 다양한 햅틱(진동) 경험을 제공할 수 있으며, 사용자에게 더욱 생동감 있는 경험을 선사할 수 있습니다.

Core Haptics 설정하기

Core Haptics를 사용하기 위해 먼저 프로젝트에 필요한 설정을 추가해야 합니다. Xcode에서 프로젝트를 열고, Capabilities 탭으로 이동하여 Haptic을 활성화합니다.

import CoreHaptics

이제 Core Haptics를 사용하기 위해 import CoreHaptics를 추가합니다.

Haptic 영향을 주는 이벤트 설정하기

터치 피드백을 적용할 이벤트를 정의해야 합니다. 예를 들어 버튼을 터치했을 때 피드백을 제공하려면 해당 버튼에 대한 UIControl 이벤트 처리기를 구현합니다.

@IBAction func buttonTapped(_ sender: UIButton) {
    // Haptic 피드백을 생성하고 제공하는 코드
    provideHapticFeedback()
}

위와 같이 버튼을 터치할 때 호출되는 메서드 내부에서 Haptic 피드백을 제공합니다.

Haptic 피드백 생성하기

Haptic 피드백을 생성하고 주는 과정은 CoreHaptics CHHapticEngine을 사용합니다. 아래는 특정한 피드백 패턴을 정의하고 주는 예제 코드입니다:

func provideHapticFeedback() {
    // CHHapticEngine 초기화
    let hapticEngine = try CHHapticEngine()
    try hapticEngine.start()

    // Haptic 패턴 정의
    let intensity = CHHapticEventParameter(parameterID: .hapticIntensity, value: 1)
    let sharpness = CHHapticEventParameter(parameterID: .hapticSharpness, value: 1)
    let event = CHHapticEvent(eventType: .hapticTransient, parameters: [intensity, sharpness], relativeTime: 0)

    // Haptic 피드백 재생
    try hapticEngine.playPattern([event])
}

위의 코드에서는 CHHapticEngine을 초기화하고 시작하며, 그 다음에 특정한 피드백 패턴을 정의하고 재생합니다.

이제 Core Haptics를 사용하여 iOS 앱에 동적이고 생생한 터치 피드백을 제공할 수 있게 되었습니다. 사용자가 앱을 조작할 때 다채로운 햅틱 경험을 제공하여 앱의 유용성과 반응성을 향상시킬 수 있습니다.

더 많은 정보를 원하신다면 Apple Developer 사이트를 참고하세요.

Happy coding!