web-dev-qa-db-ja.com

偶発的なアクションを防ぐために、iOSアプリで摩擦を設計する方法は?

ユーザーが意図せずにアラームをトリガーするのを防ぐ必要があるiOS用のアプリを設計しています(緊急事態を呼び出すアクションに簡単にアクセスできると同時に、偶発的な起動を防ぐ必要があります)。

確認ダイアログを使用したくないのは、ユーザーが別の位置にあるボタンを読んで探す必要があるためです(反対側の摩擦が多すぎるようです)。

「スライドする」アクションボタンを使用することは、iPhoneの画面のロックを解除するために使用されたものと同様に、最初は良いアイデアとして思いつきましたが、このトピックに遭遇しました:- iOSのスライダーのように「スライドして電源を切る」を作成する、基本的にAppleはこれらの種類のコンポーネントの使用を妨げ、そのようなアプリをストアで公開することを拒否します。

このようなユーザーシナリオの経験はありますか?または、Appleがそのような理由でアプリの公開を拒否することの経験がありますか?

44
enn

まず、あなたがリンクした回答に関して、Appleで問題があったのは、スライドと同じUIを使用して電源をオフにすることであり、そのUX /インタラクションの使用ではないことです。ユーザーを混乱させないために、電源オフスライダーに似たスタイルにしたくないだけです。たとえば、小さな青いスライダーや、円形のパターンで動くスライダーを作成する場合は、問題ないと思います。

ただし、安全にプレイしたい場合は、このように押し続けるとどうでしょう。

"press to hold"
MapMyRunアプリからの画面記録

.gifで、ユーザーは「ホールドトゥフィニッシュ」ボタンを押しています。これにより、約2秒の「finshing」状態がトリガーされ、ユーザーは手放してアクションをキャンセルできます。2秒後にアクション、この場合は「finshing "、トリガー。アクションを実行していることと、アクションが完了するまでの時間をユーザーに示す視覚的な進行状況インジケータがあります。また、時間を増やしたり、触覚や音声によるフィードバックを提供して、誤った押しを防ぐこともできます。これは、他の場所を読んだりクリックしたりする必要がないというニーズにも対応します。

43
DasBeasto

銀行アプリで送金するには、ターゲットにシンボルをドラッグする必要があります。誤って行うのは難しいですが、すぐに実行できます。器用さが限られている人や気が散っている人にとっては難しいかもしれません。

enter image description here

35
jejorda2

私はこれまで考えていませんでしたが、物理的に同等のものを検討することでマイレージがあるかもしれません。発電所や航空機などの多くのコントロールパネルでは、ボタンを使用する前にスイッチカバーを持ち上げる必要があるため、特に危険なアクションが発生します。

私の提案は、通常「ロックされた」状態にあり、ロックを解除するア​​クションをとるコントロールです(おそらく、そのコントロールを押すだけで、おそらくスライドです)。ロックを解除すると使用できます。適切な時間内に使用されなかった場合、または他のコントロールが最初に使用された場合、カバーは自動的に「スライドして戻ります」。

機能的には「確認」ボタンやポップアップメニューによる確認と同じですが、メタファーは多少異なり、別の視覚的形式で表示できます。

22
Toby Speight

この記事からの追加のアイデア: https://www.smashingmagazine.com/2018/01/friction-ux-design-tool/

  1. アクションを遅延させ、ユーザーが「元に戻す」ためのウィンドウ時間を許可する
  2. 指紋を要求するなど、セキュリティのための追加の手順
  3. パスワードの再要求や2要素認証など、他の種類の認証。

同じトピックを扱う他の記事:

13
Nicolas Hung

話しましょうユーザーフローとナビゲーション

ユーザーフローは、ユーザーが意味のある目標を達成するために行う一連のステップです 1

From Mark MillerによるScience of Great UI -ユーザーがタスクをナビゲートするとき、ユーザーがタスクを実行するためにたどるパスは、各コンテキストシフトの個別のステップに分割できます。

  • パス-タスクを完了するために必要な一連のステップ
  • Step-サブタスクを完了するための努力

また、各ステップには2つのプロパティがあります。

  • 長さ-完了するまでの時間
  • -完了する必要のある難易度。

難易度は次のように分類できます。

  • 精神的な難しさ-情報、計算、決定を思い出す
  • 物理的な難易度-正確に増加します
    • フィッツの法則 を参照してください。領域のサイズが小さいほど、マウスカーソルをその領域に移動するのに時間がかかります。

したがって、ナビゲーションeasierを作成する場合は、次の操作を実行できます。

  1. ステップ数を減らす-ex。郵便番号に基づく都市の自動入力
  2. 拡張ステップ(簡単にする)-ex。一般的なアクションのボタンサイズを大きくする
  3. 短いステップ(時間を短縮)-ex。 Googleのオートコンプリートの提案
  4. 代替ステップを追加-ex。メールまたは電話でアカウントを見つける

対照的に、ナビゲーションharderを作成する場合は、反対のことができます。

  1. ステップ数を増やす-ex。 「よろしいですか」モーダルダイアログ
  2. 狭いステップ(難しくする)-ex。クリックするのではなくスライドさせてロックを解除する
  3. ステップの長さ(時間の増加)-ex。クリックではなく長押しが必要

したがって、これらのツールはすべて自由に使用できます。また、ユースケースと、間違ったアクションを実行する重大度、およびLast Known Good状態への復元の難しさによっては、任意の組み合わせが必要になる場合があります。

たとえば、アラームが 全国規模のミサイルアラート をトリガーする場合、たくさんの難易度、時間、および有益なコンテンツを導入することができます。ポケットからの偶発的なクリックを防ぐだけの場合は、難易度/精度を上げるだけで十分でしょう。ユーザーがアラームを設定することのリスクを認識していない場合、導入される摩擦には、ユーザーに知らせるためのコピーを含める必要があります

これは、GitHubの例であり、重大度をうまく紹介していると思います

摩擦はフラストレーションに等しい必要はありませんなので、ユーザーに質問して、いくつかの優れたテレメトリを取得します

参考文献データの損失を防ぐ破壊的なアクションを設計する方法

5
KyleMit

私はGitHubのアプローチのファンで、リポジトリを削除するときに確認としてリポジトリの名前を入力する必要があります。

enter image description here

ユーザーが「911」などの入力を求められることがありますが、これは誤って行うのが非常に困難です。文字列はロケールと必要な難易度に合わせて調整できます。

0
tom