haptics について
Hapticsは、インターフェースの触覚フィードバックを設計するスキルです。iOSのフィードバックジェネレーターやCore Hapticsを使う開発者に、目的を明確にし、控えめに用い、他の合図と組み合わせる方法を案内します。
主な機能
- 01基本的な触覚とカスタム触覚の選択
- 02UIFeedbackGeneratorとCore Hapticsのガイダンス
- 03フィードバックの事前準備による遅延の軽減
- 04因果性・調和・有用性の原則の適用
- 05アクセシビリティとバッテリー消費への配慮
活用シーン
- 01重要な操作への触覚による確認の追加
- 02Core Hapticsによるカスタムパターンの作成
- 03触覚フィードバックのアクセシビリティと節度の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ johnrogers/ claude-swift-engineering --skill hapticsインストール後、Claude Code で/hapticsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/ahap-patterns.mdcore-haptics.mddesign-principles.mduifeedbackgenerator.md詳細
ハプティクス
触覚フィードバックは、ユーザーの操作やシステムイベントを触覚で確認できるようにします。思慮深く設計すれば、ハプティクスによって、インターフェースは単に機能的なものから、使っていて心地よいものへと変わります。
概要
ハプティクスは操作性を高めるものであり、主張しすぎてはいけません。基本原則は、触覚フィードバックをサウンドデザインのように捉えることです。つまり、すべてのハプティクスに目的(確認、エラー、警告)、タイミング(即時または遅延)、そして節度(少ないほどよい)が必要です。
リファレンスの読み込みガイド
コンテンツが必要になる可能性が少しでもある場合は、必ずリファレンスファイルを読み込んでください。 パターンを見落としたり、間違えたりするよりも、あらかじめ関連情報を把握しておくほうがよいでしょう。
| リファレンス | 読み込むタイミング |
|---|---|
| UIFeedbackGenerator | シンプルなインパクト/選択/通知のハプティクスを使用する場合 |
| Core Haptics | CHHapticEngine でカスタムパターンを作成する場合 |
| AHAP Patterns | Apple Haptic Audio Pattern ファイルを扱う場合 |
| Design Principles | 因果性、調和、有用性のフレームワークを適用する場合 |
基本的なワークフロー
- 複雑さのレベルを選ぶ:シンプル(UIFeedbackGenerator)か、カスタム(Core Haptics)かを選びます
- シンプルなハプティクスの場合:UIImpactFeedbackGenerator、UISelectionFeedbackGenerator、または UINotificationFeedbackGenerator を使用します
- カスタムパターンの場合:CHHapticEngine を作成し、CHHapticEvents を定義して、CHHapticPattern を構築します
- トリガーする前に準備する:
prepare()を呼び出して遅延を減らします - デザイン原則を適用する:因果性(タイミング)、調和(マルチモーダル)、有用性(意味があること)を確保します
システム要件
- UIFeedbackGenerator には iOS 10 以降
- Core Haptics(CHHapticEngine)には iOS 13 以降
- Core Haptics のハードウェアサポートには iPhone 8 以降
- 実機が必要です - Simulator ではハプティクスをテストできません
よくある間違い
-
すべての操作で触覚フィードバックを発生させる — すべてのボタンにハプティクスが必要なわけではありません。ハプティクスは重要な操作の確認(購入、削除、設定変更)に限って使用してください。ハプティクスを多用すると煩わしくなり、バッテリーも消耗します。
-
メインスレッドをブロックしてハプティクスをトリガーする — 長いハプティクスパターンは、UI を一時的にフリーズさせることがあります。カクつきを防ぐため、Core Haptics の
prepare()呼び出しにはバックグラウンドスレッドまたは非同期処理を使用してください。 -
オーディオ/視覚的なフィードバックなしでハプティクスを使う — ハプティクスだけに頼ると、耳の聞こえない方や盲ろうの方はフィードバックを受け取れません。必ずハプティクスを音声または視覚的な応答と組み合わせてください。
-
ハプティクスの設定を無視する — システム全体でハプティクスを無効にしているユーザーもいます。トリガーする前に
UIFeedbackGenerator.isHapticFeedbackEnabledを確認してください。適切な機能縮退が必要です。 -
AHAP ファイルのエラーを見落とす — 無効な AHAP ファイルは、エラーが表示されずに失敗します。リリース前に Xcode のハプティクスデザイナーでテストし、ファイル構文を検証してください。
-
バッテリーへの影響を忘れる — 継続的なハプティクスパターン(プログレスバー、読み込み状態)は、バッテリーを急速に消耗します。ハプティクスは状態の変化にのみ使用し、継続的なフィードバックには使用しないでください。