読者です 読者をやめる 読者になる 読者になる

inFablic

Fablic開発者ブログ

「おもてなし」の実践によるアプリの改善

こちらはFablic Advent Calendar 2015の12/2の記事です。

こんにちは。自称おもてなしエンジニアの shobyです。

僕は現在、ユーザーファーストチームというアプリの使いやすさを向上させるチームに所属しています。 今日は、このチームで培った「おもてなし」精神によるアプリの改善Tipsをお伝えします。

時間のない方はこちらをどうぞ。要点をまとめた#potatotipsでの発表資料です。

アプリにおける 「おもてなし」Tips // Speaker Deck

おもてなしとは

「おもてなしとは客に対して心のこもった待遇や歓待やサービスをすることを言う」 Wikipediaより

僕はこの言葉を、「ユーザーのことを考えた、思いやりのあるサービス」という文脈で使っています。

以下に、「おもてなし」を実践して、アプリを改善する際に気をつけることを書いていきます。

概要

  • エラーでビックリさせない
  • ボタンを押す恐怖を和らげる
  • 待ち時間のイライラを減らす
  • 頑張って入力されたデータを守る
  • 前の画面にも変更を反映させる
  • 連打しても壊れないようにする
  • 可能な限り入力の手間を省く

エラーでビックリさせない

エラーは伝え方を間違えるとユーザーをビックリさせる原因になります。

ユーザー:「何か怒られたから、これは押しちゃダメなボタンだと思ってた」

これは実際にあったユーザーの意見です。エラーには優しさを込めましょう。

優しいエラーとは?

  • 可能な限り表示しない
  • アラート以外の表示形式にする
  • 「エラー」「失敗」等の激しい言葉を使わない
  • 解決方法を伝える
  • 短く端的に伝える

可能な限り表示しない

そのエラー、本当に必要ですか?

エンジニアが頑張れば、エラーを表示しなくても、うまくハンドリングができるケースがあります。 例えば、通信エラー。

更新頻度が少ないデータの場合、キャッシュしておいて、起動時にリフレッシュするような作りにすれば、 通信に失敗した場合でも、キャッシュデータを返すことで、エラーにしなくても済みます。

アラート以外の表示形式にする

深刻なエラーではない場合や、ユーザーに情報を伝えたいだけの場合には、アラートを使うのはやめましょう。

例えば、通信の失敗などは、頻繁に起きうる深刻でないエラーです。 Viewを埋め込み、簡単にリロードできるようにすれば、アラートを使わなくても済みます。

f:id:shoby:20151201193519p:plain:h500

「エラー」「失敗」等の激しい言葉を使わない

「エラー」「失敗」等の激しい言葉ではなく、「◯◯できませんでした」「◯◯がありません」などの優しい言葉を使いましょう。

  • Bad「◯◯の取得に失敗しました」
  • Good「◯◯できませんでした」

解決方法を伝える

どうやったらそのエラーを解決できるか伝えましょう。 解決手段へのリンクがあるとなお親切です。

f:id:shoby:20151201193559p:plain:h500

短く端的に伝える

基本的にエラーメッセージは読んでもらえません

見て一瞬で理解できるレベルでないと、確実に読み飛ばされます。 長いメッセージで丁寧に説明するのはやめて、短く端的に伝えましょう。

  • Bad 「ネットワークに接続できませんでした。解決するには、通信状態の良い場所に移動し、再読み込みをしてください」
  • Good 「接続できませんでした。時間をおいて再度お試しください」

ボタンを押す恐怖を和らげる

何が起こるかわからないボタンは怖くて押せません。 押したら何が起こるか、ユーザーの言葉で伝えましょう。

  • 例:「シェア」ではなく「友達に教える」
  • 例:「検索」ではなく「ブランド一覧からさがす」

f:id:shoby:20151201193635p:plain:h500

また、分かりづらい機能はガイドを出してあげるとより親切です。

f:id:shoby:20151201194541p:plain:h500

待ち時間のイライラを減らす

何もフィードバックがないまま待たされるとイライラします。 操作には迅速にフィードバックを返しましょう。

例えば「いいね」ボタンの場合、押されたタイミングでUIに反映し、裏でAPIと通信することで、迅速にフィードバックを返せます。

頑張って入力されたデータを守る

丹精込めて入力したデータが消えると悲惨です。 通信に失敗してもデータは消えないようにしましょう。 強制終了やクラッシュでも消えないならより親切です。

前の画面にも変更を反映させる

データに変更があった場合、前の画面にも変更を反映させるべきです。 前の画面に戻った際に、状態が反映されていない場合、混乱を招きます。

例えば、詳細画面でいいねをした場合、リスト画面でもいいね状態が反映されているべきです。

f:id:shoby:20151201193725p:plain:h500 f:id:shoby:20151201193804p:plain:h500

エンジニアは「リロードすれば直る」と言いがちですが頑張りましょう…!

連打しても壊れないようにする

ユーザーはボタンを予想以上に連打します。連打しても壊れないように機能を作ると良いです。 通信中はボタンをdisableにするのが簡単です。

可能な限り入力の手間を省く

情報入力はいつも面倒な作業です。できれば無くしたい…。

データにも寄りますが、毎回ほぼ同じ情報を入力するような箇所は、プレースホルダーとして、ユーザーが過去に入力した情報を埋めておくと無駄な入力が省けます。

例として、フリルの場合、配送情報は毎回ほぼ同じなため、新規出品時には前回出品時の配送情報を埋めています。

f:id:shoby:20151201193853p:plain:h500

入力補完に関してはWebの方が進んでいるため、郵便番号からの住所入力や、検索欄の入力補完など、Webで良くある機能をアプリにも導入してあげると喜ばれるはずです。

参考: こんなにあった!シニア対応を本気で進める『皇潤』の入力フォームが使いやすい理由

f:id:shoby:20151201193924p:plain:h500

まとめ

  • エラーでビックリさせない
    • 可能な限り出さない。激しい言葉を使わない。解決方法を伝える
  • ボタンを押す恐怖を和らげる
    • ユーザーの言葉で何が起こるか説明する
  • 待ち時間のイライラを減らす
    • 見た目はすぐに反映して、裏側で通信する
  • 頑張って入力されたデータを守る
  • 前の画面にも変更を反映させる
  • 連打しても壊れないようにする
  • 可能な限り入力の手間を省く
    • ユーザーの入力情報を元に埋めておく

これらの「おもてなし」Tipsを考慮すると、使いやすい機能を作る手助けになると思います。

Fablicではさらに、ユーザーインタビューや、ユーザビリティテストを組み合わせながら、より使いやすいアプリを目指して開発を行っています。

in.fablic.co.jp

明日は、ninjinkun さんが何かを書いてくれるそうです。お楽しみに。