Start Developing iOS Apps Today(sup.7)〜ユーザを意識したデザイン

2012. 12. 27
iOSアプリの成功は主にユーザインターフェイスの品質に依存します。
ユーザが魅力的で使い易いアプリを見つけられない場合でも、最も速く、強力で、完全な機能を持つアプリはApp Storeで生き長らえることができます。

最初のインスピレーションから人気のあるアプリにする方法はたくさんありますが、成功を保証する道は一つではありません。
しかし全ての成功したアプリの開発が依存している1つの指示があります。
それはユーザを意識したデザインです。
以下の計画とベストプラクティスの概要は全てこの指示に基づいており、これらは貴方がアプリを設計する際に従う必要がある多くの原則とガイドラインのいくつかを表しています。
作業を始める準備ができたら、構想を完全なものにするために『iOSヒューマンインターフェイスガイドライン』を必ず読んでください。



●人々のデバイス使用法の理解

貴方がiOSに不慣れな場合、最初の行程は自身がiOSユーザになることです。
その後、開発者としてではなくユーザとして、可能な限りiOSプラットフォームの特性を調べます。
貴方が最初からiOSベースのデバイスを使用していたか、または以前から所持していなかったかどうかによって、貴方の期待とデバイス使用時の行動の分析を明確にするために時間がかかります。

IntroUserInterface_2x.jpg

例えば、以下に述べるデバイスとソフトウェアの機能がユーザ体験にどのような影響を及ぼすかを検討します。

  • iPhone、iPad、そしてiPod touchは、人々が外出先で使用することを可能および推奨するハンドヘルドデバイスです。
    人々はアプリの起動が速く、様々な環境で容易に使用できることを期待しています。

  • 全てのiOSベースのデバイスは、サイズに関係無くディスプレイが最も重要になります。
    比較的小さなデバイスでは、人々がアプリを使用して作業している間、ディスプレイ周辺の余白はほとんど見えなくなります。

  • マルチタッチインターフェイスは、マウスなどの他のデバイスが介在すること無しに人々がコンテンツを操作することができます。
    人々は画面上にある要素の操作にタッチを使用することができるので、アプリ体験の制御をより感じる傾向があります。

  • 最前面には同時に1つだけアプリがあります。
    ユーザはマルチタスクバーを使用することでアプリ間の切り替えを迅速かつ容易にすることができますが、コンピュータのディスプレイ上で複数のアプリを同時に開いて見るような体験とは異なります。

  • 通常は、ウィンドウを分割してアプリを同時に開くことはできません。
    代わりに、ユーザがコンテンツの画面間を移行して、複数のビューをそれぞれ含めることができます。

  • 組み込みの『設定』アプリは、デバイスおよびその上で実行するいくつかのアプリの両方のユーザ設定を含みます。
    『設定』を開くには、ユーザは現在使用しているアプリからは慣れて切り替える必要があるので、これらは『設定は一度、かつ変更は稀』な種類のユーザ設定にします。
    ほとんどのアプリは『設定』にユーザ設定を追加するのを避けていて、代わりに人々がアプリのメインユーザインターフェイス内で選択できるようにしています。

優秀なiOSアプリは実行しているプラットフォームを利用し、デバイスとプラットフォームの機能がシームレスに統合された体験を提供していることを覚えておいてください。



●基本的なヒューマンインターフェイスの原則を学ぶ

ユーザとして、貴方の入力を受信したかどうか、またはポップオーバーが明確な理由無しに画面上の異なる領域から現れるなど、アプリの伝え方が難解なことがあることに貴方は気付くでしょう。
このような場合、アプリがヒューマンインターフェイス設計の基本的な原則に従っていないと理解してください。

この文脈でのヒューマンインターフェイスという用語は、人々とデバイス間(それらの上で実行されるソフトウェアも含めて)の相互作用を表します。
アプリ(またはデバイス)は、人々が実際に想定した振る舞いの方法でヒューマンインターフェイスを構築すると、人々にとって使い易く楽しめるものになります。

Appleのヒューマンインターフェイスの設計原則は、ユーザ体験の視覚効果を持つ、いくつかの高レベルのヒューマン-デバイスの相互作用の側面を成文化しています。
貴方がアプリを設計する際、以下のヒューマンインターフェイス設計の原則に留意してください。

  • 審美的整合性
    審美的整合性は、アプリがどのように美しいかの尺度ではなく、アプリの外観と機能がどのように統合されているかの尺度です。

  • 一貫性
    インターフェイスの一貫性は、人々があるアプリから別のアプリへ知識や技能を移行できることです。
    アプリがiOSの標準とアプリ自身、そして自身の以前のバージョンと調和しているのが理想的です。

  • 直接操作
    人々が操作に独立したコントロールを使用する代わりに画面上のオブジェクトを直接操作する場合、行為の結果がよりタスクとかみ合い、容易に理解することができます。

  • フィードバック
    フィードバックは人々の行為を認識し、処理が行われていることを保証するものです。
    例えば、人々はコントロールを操作した時に、時間のかかる操作をしている間は状態の更新が理解できるように、即時フィードバックされることを期待しています。

  • メタファー
    アプリ内の仮想オブジェクトとアクションが現実世界のオブジェクトとアクションのメタファーである場合、ユーザはアプリをどのように使用するかをすぐに理解することができます。
    最も適切なメタファーは、現実世界に基づいてオブジェクトやアクションの制約を強制すること無く、慣例や体験を提示することです。

  • ユーザコントロール
    アプリは危険な結果について手段や警告を提示することができますが、通常はアプリがユーザの手から離れて解決を決定するのは誤りです。
    最善なアプリは、危険な結果を回避するために人々が必要とする機能と手助けとの間に、訂正する決定を確認することです。


●ガイドラインに従う

iOSヒューマンインターフェイスガイドライン』は、iOS技術の処理と画面上の要素を管理する、推奨されるユーザ体験から具体的な規約に及ぶ指針です。
この項は『iOSヒューマンインターフェイスガイドライン』の要約としては機能しませんが、成功したアプリを設計するのに役立つガイドラインの典型を体感できます。

優秀なiOSアプリは、人々にコンテンツへの合理的なアクセスを与えるように気を配っています。
これを行うには、下記に示すユーザ体験のガイドラインをアプリに組み込みます。

  • 主要なタスクに焦点を合わせる
  • 使用法は簡単で明快にする
  • ユーザ中心の用語を使用する
  • ターゲットは指先のサイズにする
  • 設定は強調しない
  • 一貫したユーザインターフェイス要素を使用する
  • 通信には繊細なアニメーションを使用する
  • 必要な場合のみ人々に保存するか尋ねる

ユーザはアプリに対してマルチタスクやiCloud、VoiceOver、そして印刷などのプラットフォームの機能を組み込むことを期待しています。
たとえこれらの機能が自動的に利用できるとユーザが考えているとしても、彼らはそれらを統合する作業が必要であることをアプリ開発者は知っています。
アプリがこれらの機能への対応を期待されるユーザ体験を提供することを確認するには、開発者は以下のようなiOSのテクノロジーガイドラインに従ってください。

  • 簡単で明快なiCloudストレージのサポート
  • マルチタスクに関連した中断と復帰準備への備え
  • ローカルとプッシュ通知の処理における、ユーザの通知センターの設定の準拠
  • VoiceOverユーザが利用し易いアプリにするための説明的な情報の提供
  • 印刷が可能であるとユーザが理解できるように、システムが提供する印刷UIに依存する
  • サウンドが全ての状況でユーザの期待に応えて聴こえることを保証する

アプリがボタンやタブバーなどのUI要素を正確に使用している場合、ユーザはアプリが期待通りに動作するだけだとおそらく分かるでしょう。
しかしアプリが間違ったUI要素を使用している場合、ユーザは大抵即座に不満を口にするでしょう。
優秀なiOSアプリは次のようなUI要素の使用法のガイドラインに気をつけています。
例えば、

  • ナビゲーションバーのバックボタンには、前の画面のタイトルを表示することを保証してください。
  • その機能が利用できない場合に、タブバーからタブを削除しないでください。
  • 『Popoverを却下する』ボタンの提供は避けてください。
  • テーブルビューに表示されている項目をユーザが選択した場合、常にフィードバックを提供してください。
  • iPadにおいて、Popover内でのみピッカーを提示してください。
  • システムが提供するボタンやアイコンは、文書化されている意味に従って使用してください。
  • カスタムのアイコンや画像を設計する場合、全てのユーザが理解でき、AppleのUI要素や製品の模写を避けた、一般的なイメージを使用します。

繰り返しになりますが、この項で記載しているガイドラインのリストは、『iOSヒューマンインターフェイスガイドライン』に含まれている指針の一部を表しています。
このドキュメント全体読むことは、アプリ開発の工程で重要なステップです。



●いくつかの実証された設計戦略を利用する

最も成功したiOSアプリは、多くの場合設計の思索を反復した結果です。
開発者が主要なタスクに集中し、機能リストの洗練を継続した時、上質なユーザ体験を生成することができます。
この項の戦略の要約は、貴方のアイデアの洗練や、オプションの設計を再考、そして人々が歓迎するようなアプリに収束させるのに役立てることができます。

機能リストの純化
設計行程のできるだけ早い時期に、アプリが何を行うのかと、ターゲットとする顧客は誰かを明確に定義します。
不必要な機能を取り除き、アプリの様式を導くには(アプリケーション定義ステートメントと呼ばれる)この定義を使用します。
機能が多い方がより良いアプリになると考えがちですが、多くの場合は逆と言えます。
最高のアプリは主要なタスクに能力を集中し、ユーザが必要とするタスクを遂行する機能のみを提供する傾向があります。

デバイスのための設計
更にiOSのユーザインターフェイスとユーザ体験の様式を統合して、貴方のアプリがそのデバイスに対応していることを確認してください。
(つまりiPhoneとiPadの両方で実行できるアプリ)を開発する予定の場合、各デバイス用に異なるUIを設計する必要があることを意味しますが、基本となるコードはほとんど同じにすることができます。
同様に、ウェブベースのコンテンツで開始する予定の場合、ネイティブアプリのような外観と操作法のコンテンツに設計し直すことが重要です。

適切なカスタマイズ
全てのアプリにはApp Storeのアイコンだけでも、いくつかのUIのカスタマイズが含まれます。
iOS SDKは全てのUIの様相をカスタマイズ機能を提供していますが、〜まで(果たすように、〜できる 決定 どの程度のカスタマイズが適切かを決定するのは貴方の責任です。
最高のアプリは目的の明瞭さと使い易さの調和のとれたカスタマイズです。
理想的には、貴方のアプリの独自性をユーザに認識してもらいつつ、同時に一貫性を保った直感的に認識できて使い易いアプリを作成します。

プロトタイプと反復適用
どのような機能を含めるかを決定した直後、テスト可能なプロトタイプの生成を開始します。
初期のプロトタイプは、実際のUIまたは絵の表示や、実際のコンテンツでの処理は必要ありませんが、アプリがどのように動作するかの精密なアイディアはテスターに提供する必要があります。
テスト中、テスターが試みて実行しなかったものは、アプリが期待に沿わない動作をする恐れがあるので、そのような試みの箇所を明らかにすることができるように特に注意を払う必要があります。
アプリがどのように動作し、全ての機能をどう操作するのかをユーザが容易に把握できるように、貴方が納得できるまでテストを継続します。



参考文献

Apple/Start Developing iOS Apps Today

Apple/Design with the User in Mind

0 CommentsPosted in 資料





Bose Solo 5 TV sound system
0 Comments
Leave a comment
管理者にだけ表示を許可する
Top
0 Trackbacks
Top
Calendar
07 | 2017/08 | 09
Sun Mon Tue Wed Thu Fri Sat
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
Recent Articles
iTunes


Swift
Categories
Tips
Profile

水月杏香

Author:水月杏香
永遠の初心者プログラマ。

Wish List
WACOM


ARC
Technical Q&A
情報プロパティリストキー
Start Developing iOS Apps Today
BOSE

ボーズ・オンラインストア
Reference
NSApplicationDelegateプロトコル
NSArrayクラス
NSAutoreleasePoolクラス
NSBundleクラス
NSBundle UIKit追加分
NSCalendarクラス
NSCoderクラス
NSCodingプロトコル
NSCopyingプロトコル
NSDataクラス
NSDateクラス
NSDateFormatterクラス
NSDictionaryクラス
NSEntityDescriptionクラス
NSEnumeratorクラス
NSErrorクラス
NSExceptionクラス
NSFetchRequestクラス
NSFileHandleクラス
NSFileManagerクラス
NSIndexPathクラス
NSIndexPath UIKit追加分
NSKeyedArchiverクラス
NSKeyedUnarchiverクラス
NSKeyValueCodingプロトコル
NSLocaleクラス
NSManagedObjectクラス
NSManagedObjectContextクラス
NSManagedObjectModelクラス
NSMutableArrayクラス
NSMutableCopyingプロトコル
NSMutableDictionaryクラス
NSMutableSetクラス
NSNotificationクラス
NSNotificationCenterクラス
NSNullクラス
NSNumberクラス
NSObjectクラス
NSObject UIKit追加分
NSObjectプロトコル
NSPersistentStoreクラス
NSPersistentStoreCoordinatorクラス
NSPredicateクラス
NSPropertyListSerializationクラス
NSRunLoopクラス
NSSetクラス
NSStringクラス
NSString UIKit追加分
NSTimerクラス
NSTimeZoneクラス
NSURLクラス
NSURLProtectionSpaceクラス
NSURLRequestクラス
NSUserDefaultsクラス
NSValueクラス

UIActionSheetクラス
UIActionSheetDelegateプロトコル
UIActivityIndicatorViewクラス
UIAlertViewクラス
UIAlertViewDelegateプロトコル
UIApplicationクラス
UIApplicationDelegateプロトコル
UIBarButtonItemクラス
UIBarItemクラス
UIButtonクラス
UIColorクラス
UIControlクラス
UIDatePickerクラス
UIDeviceクラス
UIEventクラス
UIFontクラス
UIGestureRecognizerクラス
UIImageクラス
UIImageViewクラス
UIKit Function
UILabelクラス
UINavigationControllerクラス
UINavigationItemクラス
UIPickerViewクラス
UIPickerViewDataSourceプロトコル
UIPickerViewDelegateプロトコル
UIPinchGestureRecognizerクラス
UIResponderクラス
UIScreenクラス
UIScrollViewクラス
UISearchBarクラス
UISearchBarDelegateプロトコル
UISegmentedControlクラス
UISliderクラス
UISwipeGestureRecognizerクラス
UISwitchクラス
UITableViewクラス
UITableViewCellクラス
UITableViewControllerクラス
UITableViewDataSourceプロトコル
UITableViewDelegateプロトコル
UITapGestureRecognizerクラス
UITextFieldクラス
UITextFieldDelegateプロトコル
UITextInputTraitsプロトコル
UITextViewクラス
UITextViewDelegateプロトコル
UIToolbarクラス
UITouchクラス
UIViewクラス
UIViewControllerクラス
UIWebViewクラス
UIWebViewDelegateプロトコル
UIWindowクラス

AVAudioPlayerクラス
AVAudioPlayerDelegateプロトコル

CADisplayLinkクラス
CAEAGLLayerクラス
CALayerクラス

CGAffineTransform
CGBitmapContext
CGColor
CGColorSpace
CGContext
CGGeometry
CGImage
CGPath

EAGLContextクラス
EAGLDrawableプロトコル

Foundation Constants
Foundation Data Types
Foundation Functions

MPMediaItemクラス
MPMediaItemArtworkクラス
MPMediaPlaylistクラス
MPMediaPropertyPredicateクラス
MPMediaQueryクラス
MPMusicPlayerControllerクラス

Randomization Services

System Sound Services
Amazon


OpenGL ES
SQLite
Monthly Archives
Recent Comments
Recent TrackBacks
RSS Link
Visitors
QR Code
QR