햅틱 설계 원칙

모바일 기기의 햅틱 반응은 적을수록 좋습니다. 진동이 너무 많으면 손이 성가실 수 있고 심지어는 무감각해질 수 있습니다. 일반적으로 기기는 사용자의 온전히 집중하는 데 있기 때문입니다. 또한 사용자가 의도한 작업에 집중하는 데 방해가 될 수 있으며, 이로 인해 사용자가 모든 햅틱을 빠르게 사용 중지할 수 있습니다. 그러나 잘 제작된 햅틱은 귀중한 감각 피드백을 제공하여 사용자가 기기를 더 풍부하게 사용할 수 있도록 합니다.

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

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

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

  • 사용자에게 주의가 필요한 이벤트를 알리기 위해 예를 들어 수신 전화나 문자 메시지 또는 캘린더에 예정된 회의가 있습니다.

  • 사용자 작업에 따른 기기 상태 변경을 확인하는 경우. 버튼 누르기에 관한 클릭 피드백, 휴대전화 잠금 해제, 지문 승인 또는 거부, 카메라 활성화를 예로 들 수 있습니다.

  • 효과로 사용자를 즐겁게 하기 위해. 이러한 효과는 지속적인 사용자 작업을 향상하거나 물리적 상호작용을 에뮬레이션할 수 있습니다. 예를 들어 스크롤 피드백, 제자리에 맞춰지는 슬라이더 또는 애니메이션, 사운드, 동영상, 게임과 동기화된 햅틱 효과가 있습니다.

햅틱 분류

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

명확한 햅틱

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

Android에는 VibrationEffect에 사전 정의된 명확한 햅틱 효과가 있습니다. 그러나 일반적으로 앱은 기기 전체에서 효과와 작업의 일관성을 보장하기 위해 HapticFeedbackConstants의 작업 지향 상수를 사용해야 합니다.

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

햅틱 반응의 사용 사례를 확장하면 사용 가능한 명확한 햅틱이 때때로 평범하고 모노톤으로 느껴질 수 있습니다. 이 경우 더 표현력이 풍부한 리치 햅틱을 목표로 합니다.

리치 햅틱

리치 햅틱에는 일반적으로 주파수 대역폭이 더 넓은 햅틱 액추에이터가 필요하므로 표현력과 범위가 더 뛰어납니다. 리치 햅틱은 다양한 진폭과 간격으로 명확한 햅틱 프리미티브를 시퀀싱하여 생성할 수도 있습니다.

리치 햅틱 효과의 예는 다음과 같습니다.

  • 나비가 손가락 끝으로 날개를 날리는 것과 비슷한 '펄럭이는' 느낌
  • 손가락으로 드래그하거나 스와이프할 때 느껴지는 표면의 질감
  • 흔들림과 불안정함 또는 무거움과 반향의 느낌

버벅거리는 햅틱

격렬한 햅틱은 진동이 끝난 후에도 따끔거림과 같은 여파를 초래하는 시끄럽고 날카로운 관통 진동이 특징일 수 있습니다. 또한 진동이 완전히 멈추기 전에 반향과 같은 느낌이 나는 울림 효과가 있습니다.

윙윙거리는 햅틱 감각의 예는 다음과 같습니다.

  • 착암기 작동
  • 오토바이 타기
  • 휴대기기에서 키를 누른 후 울리는 긴 바람의 진동

무선 호출기와 피처폰 시절부터 성능이 낮은 햅틱 액추에이터가 있는 저사양 휴대전화 또는 드라이버는 알림을 위해 윙윙거리는 긴 진동을 생성하는 경향이 있었습니다.

햅틱 디자인 가이드라인

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

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

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

작업이 HapticFeedbackConstants에 있는 사전 정의된 작업에 포함되는 경우 이 상수를 사용합니다. 이렇게 하면 일관된 사용자 상호작용 환경이 보장되며, 이는 접근성을 고려하기에 특히 중요합니다.

자체 효과를 만드는 경우 VibrationEffect 사전 정의된 효과와 VibrationEffect.Composition 프리미티브를 사용하는 것이 좋습니다. 이를 지원하는 기기에서 일관된 품질 환경을 제공할 가능성이 더 큽니다.

이벤트 중요도 및 빈도를 강도와 연결

햅틱 효과는 사용자에게 부담을 주거나 불필요한 느낌을 주어서는 안 됩니다.

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

  • 예를 들어 페이지 새로고침이나 양식 제출과 같은 더 중요한 이벤트가 전환 버튼이나 목록의 스크롤보다 강력해야 합니다.

  • 두 개념을 결합하여 상호작용이 목표에 도달할 때 더욱 강력해지는 효과를 만듭니다. 예를 들어 드래그, 드롭, 맞추기 작업을 통해 틱 시퀀스의 진폭을 점진적으로 늘릴 수 있습니다.

일관성 있는 콘텐츠 게시

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

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

햅틱을 사용하여 시각 및 오디오 환경 디자인

햅틱을 전체 사용자 환경의 일부로 고려합니다.

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

반대로 싱크가 맞지 않거나 시각 및 오디오 효과와 일치하지 않아 느껴지는 햅틱 반응은 사용자를 불안하게 만들 수 있습니다. 사용자가 햅틱 액추에이터가 고장났다고 인식할 수도 있습니다.

햅틱 반응에 관한 기존 원샷 진동 방지

VibrationEffect.createOneShot로 정의되거나 Vibrator.vibrate(long)Vibrator.vibrate(long[], int) API로 실행되는 기존 원샷 진동을 사용하지 마세요.

이러한 진동은 특히 저성능 햅틱 액추에이터나 드라이버가 있는 기기에서 입력 파형이 종료된 후 장시간 지속될 때 윙윙거릴 수 있습니다.

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