티스토리 뷰
안녕하세요 :) Zedd입니다.
요새 조금 바빠서 티스토리를 거의 안봤네요. 통계충이라 통계만봄 ㅎ
월요일 안나갔더니 일주일이 굉장히 짧아진 느낌이에요.
암튼!!! 오늘은..제가 다루고 싶은 프레임워크나 feature들 리스트가 있는데 그 중에 하나인 Feedback을 공부해보려고 합니다.
그리고 프로젝트에 적극적으로 넣어보려고 생각중입니다. :D
사실 생각만 이렇고..아마 딱히 사용할 곳은 없을 것 같아요.......과연 잘 사용할 수 있을지ㅎ_ㅎ
그럼 공부하기 전에 뭐부터 해야할까요.
바로..늘 그렇듯이...
HIG를 먼저 봐야겠죠!?
https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/feedback/
Feedback
피드백은 사람들이 앱이 하고 있는 일이 뭔지 알게하고, 다음에 할 수 있는 것을 발견하고, 행동 결과를 이해하도록 도와줍니다.
인터페이스에 다른 타입의 피드백과 상태(status)를 눈에 띄지 않게 통합(intergrate)하세요.
이상적으로 사용자는 조치를 취하거나 중단하지 않고도 중요한 정보를 얻을 수 있습니다. 예를들어 Mail은 메세지의 사서함을 탐색하는 동안, toolbar에 상태정보를 미묘하게 표시합니다. 이 정보는 화면의 기본 컨텐츠와 경쟁(compete)하지 않지만, 언제든지 빠르게 확인 할 수 있습니다.
불필요한 alert는 피하세요. alert는 강력한 피드백 메커니즘이지만, 중요하고 이상적으로 실행가능한 정보를 전달하는데에만 사용해야합니다. 사람들이 필수정보가 포함되지 않은 alert가 너무 많이 표시되면, 향후 alert를 무시하는 방법을 빠르게 습득하게 됩니다.
Haptic Feedback
지원되는 디바이스에서, 햅틱은 주의를 끌고 행동을 강화하는 촉각 피드백을 통해, 사용자를 물리적으로 참여시킬 수 있는 방법을 제공합니다. picker, switch, slider와 같은 일부 시스템 제공 인터페이스 요소는 사용자가 상호작용 할 때, 햅틱피드백을 자동으로 제공합니다. 앱에서 다른 타입의 햅틱피드백을 생성하도록 시스템에 요청할 수도 있습니다. iOS는 이 피드백의 강점과 행동을 관리합니다.
iPhone 7 / 7+ 이상의 디바이스에서만 새로운 Taptic Engine API를 사용할 수 있습니다. (Haptic Engine아님 Taptic Engine임...)
iPhone 7시리즈 미만의 디바이스들은 그럼 햅틱 피드백이 없냐? 아닙니다! 미만의 디바이스들도 Taptic Engine을 가지고 있습니다만, iPhone 7시리즈 이상의 Taptic Engine은 좀 더 정교하고 flexible하다고 해요. 이러한 새로운 API들은 7시리즈 미만의 디바이스들에서는 아무 효과가 없습니다. 또한 7시리즈 미만 디바이스들의 Taptic Engine 은 3D Touch feature와 관련있는 것들만 지원한다고 해요. 그래서...6s에서...switch나 picker를 아무리 돌리고 해봐도..아무런 반응이...없는 것....
자..아무튼 7 이상인 여러분들은 알람앱의 picker나, 설정에 흔히있는 switch를 움직여보면 뭔가 반응이 오는 것을 볼 수 있습니다.
뭐 7미만을 포함하여 모든(?)..이라고 말해도 될지 모르겠지만 일단 Touch id를 사용하고있다면,
(You can use Touch ID with an iPhone 5s or later, iPad (5th generation and later), iPad Pro, iPad Air 2, or iPad mini 3 or later)
가장 많이 받아본 햅틱 피드백은 바로
이게 아닐까 싶네요. 그..진동을 느낄 수 있습니다. 다들 뭔지 아시죠?!?!?!
그리고
여기서도 비밀번호를 틀리게 되면 뭔가 진동이 오잖아요? 암튼 이런게 다 햅틱 피드백을 사용한거랍니댜
햅틱 피드백을 잘만 사용하면 정말 좋을 것 같은데, 어떻게 사용해야할지 더 봅시다.
햅틱을 현명하게(judiciously) 사용하세요. 남용은 혼란을 야기하고, 피드백의 중요성을 감소시킬 수 있습니다.
일반적으로 사용자가 시작한 행동에 대한 반응으로 햅틱피드백을 제공합니다. 사람들이 햅틱을 그들이 시작한 행동과 연관시키는 ㄴ것은 쉽습니다. 임의의 피드백은 연결이 끊어져서 잘못해석 될 수 있습니다.
피드백 타입을 재정의 하지마세요. 일관된 경험을 보장하려면 의도한대로 피드백 타입을 사용하세요. 예를들어 "impact"피드백을 사용하여 작업이 성공했다는 것을 사용자에게 알리지 마세요. 대신 "notification"의 "success"를 사용하세요.
갑자기 피드백 타입이니..impact,..notification이 나와서 당황했을텐데요, HIG에 가보면
이렇게 피드백타입이 나눠져 있는 것을 볼 수 있습니다.
크게
- Notification
- Impact
- Selection
이 있는 것을 볼 수 있네요.
각각 어떨때 쓰는 건지 알아봅시다.
Notification: 수표입금 또는 차량 잠금해제와 같은 task 또는 action을 나타냅니다.
Impact: 시각적 경험을 보완하는 물리적인 은유(metaphor)를 제공합니다. 예를들어, view가 제자리로 미끄러지거나(slide) 두 객체가 충돌(collide)할 때, 사용자가 쿵하는 소리를 느낄 수 있습니다.
Selection: 선택항목이 active하게 변경되고 있음을 나타냅니다. 예를들어, 사용자는 picker휠을 스크롤 하는 동안 light tap(가벼운 탭)을 느낍니다. 이 피드백은 선택을 하거나 확인하는것이 아니라, 일련의 개별값을 통해 움직임을 전달하기 위한 것입니다.
아시겠나요?! 뭔가 다 동일한 진동(?) 그러니까 피드백같아 보이지만 이렇게 타입이 다른것을 볼 수 있네요.
계속 보도록 할게요.
햅틱에 대한 시각적 경험을 미세조정하세요. 시각 및 촉각적 피드백을 함께 제공하여 행동과 결과간의 깊은 연관성을 창출하세요. 애니메이션이 선명하고 정확한지 확인하여 사용자가 느끼는것과 시각적으로 일치시키도록 하세요.
단일 통신 모드(? single mode of communication)에 의존하지 마세요. 모든 디바이스가 햅틱 피드백 전체를 지원하는것은 아니며(위에서 봤죠?) 사용자가 선택한 경우, 사람들은 설정에서 이 기능을 완전히 비활성화 할 수 있습니다. 또한 햅틱 피드백은 디바이스가 활성화되어있고 앱이 가장 앞(frontmost)에 있을 때만 발생합니다. 중요한 정보를 놓치지 않도록 시각 및 청각적 신호로 햅틱을 보완하세요.
시각적인 피드백이 가려질 때, 햅틱을 사용하세요. 객체를 화면상의 위치로 드래그하는 것과 같은 일부 상호작용은, 사용자의 손가락에 의해 숨겨집니다. (그니까 손가락이 화면을 가린다는 뜻같음. 정사각형 네모를 드래그 할 수 있다고 했을 때, 네모가 작으면 손가락에 의해 잘 안보여지겠죠?) 특정 위치나 가치(value)에 도달한 시점을 사용자가 알 수 있도록 피드백을 생성하는것을 고려하세요.
피드백을 시작하기전에 시스템을 준비하세요. 햅틱 피드백을 제공할 때 약간의 대기 시간이 필요하기 때문에 피드백을 요청하기 직전에 시스템을 준비하는 것이 가장 좋습니다. 그렇지 않으면 햅틱이 너무 늦어져서 사용자의 행동이 화면에 표시되는것과 연결이 끊어진 느낌을 받을 수 있습니다. (오 이거 꿀팁이네야ㅕ..)
sound를 제공하여 햅틱을 동기화(Synchronize)하세요. 햅틱은 자동으로 소리와 동기화 되지 않습니다. sound를 원한다면 (당신은) 그것을 동기화할 책임이 있습니다.
역시 무조건..HIG부터 봐야핸ㅁ
'공부' 카테고리의 다른 글
Catalina 달라진 점!! (8) | 2019.06.05 |
---|---|
Xcode 11 Beta Release Notes (9) | 2019.06.04 |
git submodule 다른 브랜치 추적하도록 하기 (1) | 2019.03.26 |
Xcode ) Header Text/Comment 바꾸는 법 (0) | 2019.03.22 |
Xcode Build Configuration + git submodule 문제 (5) | 2019.03.21 |
- fastlane
- 제이슨 파싱
- Combine
- actor
- SwiftUI
- swift delegate
- swift3
- np-complete
- swift 공부
- WWDC
- ios 13
- 스위프트 문법
- github
- WKWebView
- Swift
- 스위프트
- swift sort
- Accessibility
- np-hard
- Xcode
- IOS
- WidgetKit
- swift tutorial
- 피아노
- Git
- iOS delegate
- 회고
- swift array
- FLUTTER
- UIBezierPath
- Total
- Today
- Yesterday