React Nativeに触覚フィードバックを追加して気持ちいいアプリを作る|Haptics(ハプティクス)のすゝめ
やりたいこと = アプリでボタンを押した時などに「カクッ」となるあれを実装したい
Twitter、Instagramで「いいね」ボタンを押した時、「カクッ」と物理的に振動を感じます。
YouTubeアプリでフィードをリフレッシュするときも「シュポッ」と感じます。
アプリをリリースして数ヶ月経過するまでこの体験をまったく意識したことがありませんでしたが、実はこれが「快」を与えているのではないかと思い使ってみました。
サンプルコード
こちらに上げています。
試す場合は以下のコマンドを順に実行してみて下さい。(Expo Goは前提としています。)
git clone -b haptics https://github.com/naoyahieda/react_native_samples.git
cd react_native_samples
yarn install
yarn start --tunnel
既存のコードに追加する場合のみ
expo install expo-haptics
バージョン
"react-native": "0.64.3",
"expo": "~43.0.2",
"expo-haptics": "~11.0.3",
書き方
Expoのサンプルを参考にしました。
App.js (Github)
<Button
color = "green"
title='成功'
/* ↓ここ↓ */
onPress={() => Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success) }
/>
Hapticsのバリエーション
メソッドとしてはimpactAsync
、notificationAsync
、selectionAsync
の3通りあるようです。
notificationAsync
Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success)
Success
の他にError
, Warning
が選択できます。
impatcAsync
Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Light)
Light
の他にMedium
,Heavy
が選択できます。
selectionAsync
Haptics.selectionAsync()
↑はとても軽いリアクションです。
おまけ
最近スタバのアプリにハマっています。特にモバイルオーダが最高で列に並ばずコーヒーを注文できるのがとてもいいです!ぜひ試して見てください!
しかしこのスタバアプリ、体験自体は素晴らしいのですが、狭義UXが今ひとつな感じがあります。Haptics含め今後改善にとても期待しています!参考
参考
Expo公式
UIFeedbackGeneratorの使い方と便利に使えるライブラリ
最後に
弊社では、現役東大生の家庭教師がかんたんに見つかる家庭教師個人契約アプリカテアプリ東大生を開発、運営しています。ぜひインストールしてみてください!
UIUXでアドバイスなどあればぜひお願いします!
Discussion