[swift] CoreHaptics를 활용한 다양한 터치 피드백 유형

iOS 기기에서 터치 이벤트에 대한 피드백은 사용자 경험에 중요한 영향을 미칩니다. Core Haptics 프레임워크를 사용하면 앱에서 다양한 터치 피드백 유형을 만들 수 있습니다.

Core Haptics란?

Core Haptics는 터치 피드백 및 진동 패턴을 제어하기 위한 iOS 프레임워크입니다. 이를 사용하면 터치 이벤트에 맞게 사용자에게 물리적인 피드백을 제공할 수 있습니다.

사용 가능한 터치 피드백 유형

  1. 살짝 누름 (Light Tap): 사용자가 미세하게 화면에 눌렀을 때 사용되는 피드백으로, 주로 경고 메시지와 같은 경량한 상호작용에 사용됩니다.

     // Light Tap 터치 피드백 생성
     let lightTap = CHHapticEvent(eventType: .hapticTransient, parameters: [], relativeTime: 0)
    
  2. 강한 탭 (Heavy Tap): 사용자가 강하게 화면에 눌렀을 때 사용되는 피드백으로, 주로 사용자가 중요한 상호작용을 수행했을 때 사용됩니다.

     // Heavy Tap 터치 피드백 생성
     let heavyTap = CHHapticEvent(eventType: .hapticContinuous, parameters: [], relativeTime: 0, duration: 0.1)
    
  3. 화면 이동 (Screen Movement): 화면을 스크롤할 때와 같이 미끄러짐 혹은 이동 행동을 할 때 사용되는 피드백으로, 사용자가 인터페이스를 조작하는 것에 대한 물리적인 피드백을 주는 데 사용됩니다.

     // Screen Movement 터치 피드백 생성
     let screenMovement = CHHapticEvent(eventType: .hapticContinuous, parameters: [], relativeTime: 0, duration: 1.0)
    
  4. 사용자 지정 (Custom): 앱의 특정한 요구에 맞게 개인화된 터치 피드백을 만들어 사용할 수도 있습니다.

Core Haptics를 사용한 터치 피드백 구현

터치 피드백을 구현하려면 먼저 CHHapticEngine을 생성하고 설정해야 합니다.

import CoreHaptics

var engine: CHHapticEngine!

do {
  engine = try CHHapticEngine()
} catch let error {
  print("Error creating engine: \(error)")
}

더불어, 특정 터치 이벤트에 대한 피드백을 제공하는 메서드를 구현해야 합니다.

func provideHapticFeedback() {
  // 살짝 누름 (Light Tap) 터치 피드백 재생
  do {
      let pattern = try CHHapticPattern(events: [lightTap], parameters: [])
      let player = try engine.makePlayer(with: pattern)
      try player.start(atTime: 0)
  } catch {
      print("Error playing haptics: \(error)")
  }
}

Core Haptics를 사용하면 사용자의 인터페이스 상호작용에 물리적인 피드백을 추가함으로써 앱의 사용자 경험을 향상시킬 수 있습니다.

위의 예시는 Core Haptics를 사용하여 다양한 터치 피드백 유형을 만드는 방법을 보여줍니다.

더 많은 세부적인 내용과 Core Haptics에 대한 더 많은 정보는 Apple Developer 사이트에서 확인하실 수 있습니다.