AppleのiOSヒューマン・デザイン・ガイドライン読んだ! iPhone App開発者必読!


Appleが出しているiOSのデザインのガイドライン資料『iOSヒューマンインターフェイスガイドライン』を読みました!

公式のドキュメントだけど、端的でわかりやすいのでiPhoneアプリケーションを開発する人にはぜひ読んでほしいドキュメントです。

この資料に書かれているところで特に参考になる点を俺得メモで書きました!


🐡 iOSのUI設計の方針

iOS 7以降のAppleのUIを見るとたしかに納得できます。

* UIはユーザーに内容を的確に伝わるようにする。ただしそれ自身が目立ち過ぎのはダメ
* 文字は読みやすく、アイコンは的確明瞭で、その機能を明確に表すこと
* 奥行きを持つことで、視覚的な重なりや、楽しさ、わかりやすさを向上させる

🎉 標準的なUI要素を使う

OSのアップデートへの追従や、ユーザーがiOSの中で見慣れているUIを使うメリットを考えると、できるだけ
標準的なUIを使うことが推奨されています。もし、必要な場合はユーザーによる「設定」によってUIの変更
を行えるようにすることが望ましいとされています。

👽 UIのカスタマイズにおけるガイドライン

* UIのカスタマイズによってユーザーの体験が強化されること
* ユーザーは標準UI要素になれているため、その状態を阻害することなく、操作ができること
* コンテンツを主役として考えて、カスタマイズしたUIが目立ち過ぎないように注意すること
* カスタムUIは徹底的にユーザーテストを行うこと

🐠 起動と停止

起動と停止は瞬時に行い、ログイン処理や設定処理などユーザーの操作を妨げる処理はできるだけ行わないようにする。
いつ停止しても、アプリケーションの挙動に影響を与えないように、適切な頻度でデータを保存するようにする。

🐹 ナビゲーション

ナビゲーションのスタイルは大きく階層型、平坦型、内容型(体験型)の3つの種類がある。
ナビゲーションで大切なことは、現在アプリケーション内のどの位置にいて、次に目標とする画面には
どうすれば到達できるか、いつでも分かるようにする必要がある。

🎂 設計における原則

一貫性

アプリケーションのUIに一貫性があれば、あるエリアで得た知識や技能を別のエリアでもそのまま活かすことができます。

直接操作

画面上のオブジェクトを、ほかのコントロール部品を介さずに直接操作できれば、操作の意味や得られる結果を把握しやすくする。

フィードバック

UIのフィードバックには、アクションを受けた旨を知らせ、結果を見せ、進捗を更新するなどの動きがあります。
直感的でわかりやすいフィードバックを心がけましょう。

メタファ

アプリケーションの仮想オブジェクトが、現実世界やデジタル世界におけるオブジェクトやアクションのメタファになる。
代表的なのは、書籍や雑誌めくりのインタラクションや、スイッチの切替、スライダーによる操作などです。

🐰 概念を実装する手順

アプリケーションの主な目的や対象ユーザーを簡潔かつ具体的に記述した「アプリケーション定義ステートメント」を作り、
統一感をとれた商品を実装することが大切です。以下主な流れです。

1) ユーザーに好まれる可能性のあるすべての機能の洗い出し
2) 対象ユーザーの決定
3) 対象ユーザーを特定して機能を絞り込む
4) 機能・コントロール・用語の整合性をとり、統一感を作り出す
5) アプリケーションが実現したい機能に合わせてカスタマイズを行う
  5-1) 常にカスタマイズを行う理由を考える(whyを繰り返す)
  5-2) アプリケーション内の一貫性を保つ
  5-3) コンテンツを重視して、コンテンツに合わせたUIを作る
  5-4) 標準コントロールの修正は最小限に留める。熟考すること。
  5-5) カスタムUI要素は徹底的にユーザーテストを行う
6) プロトタイプ作成と評価の繰り返し

😸 アプリケーションの拡張機能

iOSで作成できるアプリケーションの拡張機能のタイプは以下のとおり。

「Today」ウィジェット: 通知センタの「Today」ビューに置いて、表示内容を即座に更新、あるいは簡単なタスクが実行できる
Share: 情報投稿サイトに記事を投稿して他のユーザーと共有する
Action: 他のアプリケーションのコンテキストで、情報を操作し、あるいは表示する
Photo Editing: 「Photos」アプリケーションで写真や動画を編集する
ドキュメントプロバイダ: ファイルのリポジトリにアクセスして管理する
Custom keyboard: iOSのシステムキーボードをカスタムキーボードに置き換える

🗻 ユーザーデータへのアクセス

位置情報やコンタクトリスト、カレンダーやリマインダー、Photo Libraryなど
ほかのシステム・サービスが保存したデータに、他のアプリケーションがアクセスできます。
ただしガイドラインにしたがって、個人データを利用してよいかを問い合わせるようにしてください。

個人データの共有が必要な理由をユーザーが理解できるように明記する
ユーザーデータがなければ、アプリケーションの主要な機能を実行できない場合のみアラートを表示
アラートを出す前には、ユーザーデータを使うようなプログラムを実行しない
アラートが不必要に表示されないように、必要とするタイミングのみアラートを出す

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)