햅틱 설계 원칙

이 문서에서는 Android 기기의 햅틱 반응 원칙을 설명하고 사용 사례, 햅틱 효과 분류 (명확함, 풍부함, 버즈) 및 앱 개발자를 위한 필수 설계 가이드라인을 다룹니다. keywords_public: > 햅틱, 진동, 피드백, Android, UI, UX, 설계, 원칙, 가이드라인, HapticFeedbackConstants

휴대기기의 햅틱 반응은 적을수록 좋습니다. 기기는 보통 사용자가 손에 들고 완전히 집중하기 때문에 진동이 너무 많으면 성가시고 손이 마비될 수도 있습니다. 또한 사용자가 의도한 작업을 방해할 수 있으므로 사용자가 모든 햅틱을 빠르게 사용 중지할 수 있습니다. 하지만 잘 만들어진 햅틱은 사용자에게 기기와의 풍부한 상호작용을 제공하는 유용한 감각 피드백을 제공합니다.

이 페이지에서는 햅틱 사용 사례를 설명하고, 햅틱 효과의 분류를 소개하며, 앱의 기본 가이드라인도 다룹니다.

앱에 햅틱을 추가하는 사용 사례

앱에 햅틱을 통합해야 하는 몇 가지 이유는 다음과 같습니다.

  • 사용자의 확인이 필요한 이벤트를 사용자에게 알립니다. 예를 들어 수신 전화나 문자 메시지, 캘린더의 예정된 회의가 있습니다.

  • 사용자 작업 후 기기에서 상태 변경을 확인합니다. 예로는 버튼 누르기 클릭 피드백, 휴대전화 잠금 해제, 지문 수락 또는 거부, 카메라 활성화가 있습니다.

  • 효과로 사용자를 만족시키기 이러한 효과는 진행 중인 사용자 작업을 개선하거나 물리적 상호작용을 에뮬레이션할 수 있습니다. 예로는 스크롤 피드백, 슬라이더가 제자리에 고정되는 것, 애니메이션, 소리, 동영상, 게임과 동기화된 햅틱 효과가 있습니다.

햅틱 분류

여기에 제시된 햅틱 원칙은 명확한 햅틱, 리치 햅틱, 윙윙거리는 햅틱을 중심으로 설계되었습니다.

명확한 햅틱

명확한 햅틱은 버튼 누르기와 같은 개별 이벤트와 관련된 선명하고 깨끗한 감각을 의미합니다. 이러한 효과는 물리적 버튼을 누를 때 느껴지는 것과 같은 실제 기계적 동작을 모방하는 것을 목표로 하는 경우가 많습니다.

Android에는 VibrationEffect에 명확한 햅틱 효과가 사전 정의되어 있습니다. 하지만 일반적으로 앱은 HapticFeedbackConstants의 작업 지향 상수를 사용하여 기기 전반에서 효과와 작업의 일관성을 유지해야 합니다.

작업 중심 상수의 또 다른 장점은 사용자의 기기에서 더 복잡한 효과를 지원하지 않는 경우 플랫폼에서 대체 동작을 제공할 수 있다는 것입니다.

햅틱 반응의 사용 사례를 확장하면 사용할 수 있는 명확한 햅틱이 평범하고 단조롭게 느껴질 수 있습니다. 이 경우 더 표현력이 풍부한 리치 햅틱을 목표로 합니다.

리치 햅틱

풍부한 햅틱에는 일반적으로 더 넓은 주파수 대역폭을 갖는 햅틱 액추에이터가 필요하므로 표현력과 범위가 더 커집니다. 다양한 진폭과 간격으로 명확한 햅틱 원시 요소를 시퀀싱하여 풍부한 햅틱을 생성할 수도 있습니다.

풍부한 햅틱 효과의 예는 다음과 같습니다.

  • 손가락 끝에서 나비가 날갯짓을 하는 것과 비슷한 '펄럭이는' 느낌
  • 손가락으로 표면을 드래그하거나 스와이프할 때 느껴지는 표면의 질감
  • 흔들림과 불안정함, 무거움과 울림

버즈 햅틱

버즈형 햅틱은 진동이 끝난 후에도 따끔거리는 느낌과 같은 후유증을 남기는 시끄럽고 날카롭고 관통하는 진동으로 특징지을 수 있습니다. 또한 진동이 완전히 멈추기 전에 잔향처럼 느껴지는 울림 효과가 있는 경향이 있습니다.

버즈형 햅틱 감각의 예는 다음과 같습니다.

  • 잭해머 작동
  • 오토바이 타기
  • 휴대기기에서 키를 누른 후 길고 울리는 진동

무선 호출기와 피처폰 시절에는 성능이 낮은 햅틱 액추에이터나 드라이버가 있는 저가형 휴대전화에서 알림 목적으로 시끄러운 긴 진동을 생성하는 경향이 있었습니다.

햅틱 디자인 가이드라인

개략적으로 디자인 가이드라인은 다음과 같이 요약할 수 있습니다.

  • 버즈 햅틱보다는 풍부하고 명확한 햅틱을 선호합니다.
  • 시스템과 앱 디자인 모두 일관성을 유지하세요.
  • 사용 빈도와 중요도를 고려하세요.

사전 정의된 햅틱 상수 및 효과 우선순위 지정

작업이 HapticFeedbackConstants에 있는 사전 정의된 작업으로 처리되는 경우 해당 상수를 사용합니다. 이를 통해 일관된 사용자 상호작용 환경을 보장할 수 있으며, 이는 특히 접근성 고려사항으로 유용합니다.

자체 효과를 만드는 경우 VibrationEffect 사전 정의 효과와 VibrationEffect.Composition 기본 요소를 사용하는 것이 좋습니다. 이러한 앱은 지원되는 기기에서 일관된 품질의 환경을 제공할 가능성이 높습니다.

이벤트 중요도 및 빈도와 강도 간의 상관관계

햅틱 효과가 사용자에게 부담을 주거나 불필요하게 느껴져서는 안 됩니다.

  • 스크롤이나 텍스트 핸들 이동과 같이 매우 빈번한 이벤트에 적용되는 햅틱 효과는 전반적으로 쾌적한 환경을 제공할 수 있도록 매우 미묘해야 합니다.

  • 페이지 새로고침이나 양식 제출과 같은 더 중요한 이벤트는 전환 버튼 변경이나 목록 스크롤보다 더 강해야 합니다.

  • 두 개념을 결합하여 상호작용이 타겟에 도달할 때 더 강해지는 효과를 만듭니다. 예를 들어 드래그, 드롭 또는 스냅 작업으로 일련의 틱의 진폭을 점진적으로 늘립니다.

일관성 유지하기

앱 내에서 햅틱 적용을 일관되게 유지하세요. 양식 제출이나 인앱 탐색과 같은 특정 상호작용에 햅틱 피드백이 있는 경우 유사한 모든 상호작용에 동일한 효과가 적용되는지 확인합니다. 이를 통해 사용자는 특정 햅틱 반응에 의미를 부여할 수 있습니다.

또한 시간 선택 도구 또는 가상 키보드와 같이 잘 정의된 상호작용에 동일한 HapticFeedbackConstants를 사용하여 Android 시스템과 일관성을 유지하세요.

햅틱으로 시각 및 오디오 환경 설계

햅틱을 전체 사용자 환경의 일부로 고려하세요.

시각, 오디오, 햅틱 효과를 공동 설계하는 것이 좋습니다. 시각적 애니메이션 및 사운드 패턴과 조화롭거나 일치하도록 합니다. 시각적 및 청각적 입력은 인지된 햅틱을 향상할 수 있으며 잘 설계된 햅틱 효과는 시각적 및 오디오 효과에 물리성을 제공할 수 있습니다.

반대로 동기화되지 않거나 시각 및 오디오 효과와 일치하지 않는 햅틱 반응은 사용자에게 약간의 불편함을 줄 수 있습니다. 경우에 따라 사용자는 햅틱 액추에이터가 고장난 것으로 인식할 수 있습니다.

햅틱 반응을 위해 기존의 일회성 진동 피하기

VibrationEffect.createOneShot로 정의되거나 Vibrator.vibrate(long) 및 Vibrator.vibrate(long[], int) API로 실행되는 것과 같은 기존 일회성 진동을 사용하지 마세요.

이러한 진동은 입력 파형이 끝난 후 오랫동안 지속되면 특히 성능이 낮은 햅틱 액추에이터나 드라이버가 있는 기기에서 윙윙거리는 느낌이 들 수 있습니다.

좋은 키 클릭 햅틱 반응 신호는 10~20밀리초 동안 지속되어야 합니다. 하지만 액추에이터에 대한 20밀리초 입력이 종료된 후에도 액추에이터가 20~50밀리초 동안 계속 울릴 수 있습니다. 따라서 이러한 유형의 피드백에는 단일 진동을 사용하지 않는 것이 좋습니다.