Slide 1

Slide 1 text

いまさらだけど iOSのHapticsを学んでみた 2021/11/27 Swift愛好会 jollyjoester

Slide 2

Slide 2 text

きっかけ Pikminのポコポコ…が気持ちいい ポコポコ ポコポコ … ポコ … ポコ … ポコ …

Slide 3

Slide 3 text

Hapticsとは Haptics = 触覚 User Interfaceとして触覚(振動)を用いる iPhoneではTaptic Engineという部品で発生させている iPhone 6sの頃から搭載 細かくイジれるようになったのはiOS10から Apple WatchとHaptic Feedbackは相性がとても良い VRの世界で物体に触れた感覚を生じさせるものとして注目されてるよ

Slide 4

Slide 4 text

Hapticsが使われているところ アプリアイコンを長押ししたり アプリをインストールしたり SliderやSwitch, Picker, Pull to refreshなど操作したり

Slide 5

Slide 5 text

どうやって実装できるの? お手軽 ● UIFeedbackGenerator カスタム ● Core Haptics

Slide 6

Slide 6 text

UIFeedbackGeneratorの例 UIFeedbackGenerator ● UIImpactFeedbackGenerator(触った感、ぶつかった感) ● UISelectionFeedbackGenerator(UIで選んでる時) ● UINotificationFeedbackGenerator(お知らせ) さぁみんなも体験してみよう! サンプル: https://github.com/jollyjoester/HapticsSample ※prepare()呼ぶタイミング適当だから本番で使うときは気をつけてね

Slide 7

Slide 7 text

どこに使うと良いの? あまり多用するとうざい。 単独ではあまり使わない。視覚のフィードバックを補完するイメージ。 e.g. Bluetooth機器との接続解除をお知らせするトースト表示とともにポコッ、くらいが ちょうど良いイメージ ● 必須ではない、けど気づいて欲しいくらいの温度感 ● 結果が遅延してくるもののお知らせ ● 表示と音と触覚でうまく表現できるのがいいね e.g. アプリ内の何かに触った感を出すとき ● Pull to refresh(UIRefreshControl)のひっかかる感 ● Pikminにさわるとき

Slide 8

Slide 8 text

まとめ いまさらだけどHaptics素晴らしい 手触り感気持ちいいね ユーザー体験を考えるときにちゃんと意識していこう (マナーモードにせざるを得ない状況の多い日本だと音よりHapticsが重要かも)

Slide 9

Slide 9 text

参考 ● Human Interface Guidelines: Haptics ● Apple Developer Documentation: UIFeedbackGenerator ● Apple Developer Documentation: Core Haptics