Browsing articles in "ユーザインターフェース"

Android開発者が知るべき10のこと

3月 1, 2011   //   by @mhidaka   //   アプリケーション, ユーザインターフェース  //  6 Comments

本記事はAndroid DevelopersのDesigning for Seamlessnessを意訳、加筆したものです。Androidアプリをシームレスに連携させるためのノウハウを紹介します。

特性を理解する

アプリケーションが高速に動作し、レスポンスが良くても、アプリケーション遷移やダイアログ表示を乱用した無計画なUI、不用意なデータの喪失、意図しないタイミングでの操作妨害など知らず知らずのうちにUXの良くない設計になっているかもしれません。これらの問題はどのように避ければ良いでしょう?

  • アプリケーションが動作するコンテキスト
  • Androidフレームワークの特性(アプリケーションへどんな影響を与えるか)

を理解することが開発の手助けになります。

ユーザ操作を妨げない

Original Update by mujitra
Original Update by mujitra

ユーザ操作のシームレス性で問題になるケースとしてよくあるのが、他のアクティブなアプリケーションを無視して、自分のダイアログを表示してしまう場合です。つまり、内部動作としてはアプリケーションのバックグラウンドで動作するプロセス(サービス、ブロードキャストレシーバー)が何らかのイベントに反応してダイアログ表示するケースです。

とくにエミュレータ上でアプリケーションを開発、テストしていると他の要素が排除されているため、上記は無害に感じるでしょう。しかし実際のデバイス上で実行される場合では、バックグラウンドで実行中のプロセスがダイアログを表示しようとした場合、必ずしもアクティブではありません(ユーザーフォーカスを持っていないかもしれません)。
ユーザーが何をしていても、ダイアログをポップアップするのは良くありません。

この問題を避けるためには、アプリケーションはユーザーに通知するための適切なフレームワーク(Notification)を使うべきです。Notificationによりアプリケーションは、(バックグラウンドで検知したイベントのため)現在のユーザー操作を遮ることなくステータスバーにアイコンを表示して通知できます。

また別の課題としてonPause()や他のライフサイクルメソッドを正しく実装していないために起こる作業中データの破棄や状態不正があります。
アプリケーションで使用するデータを公開するなら、標準規格の生データやデータベース経由で行うよりも、ContentProviderを利用したほうがAndroidらしく、連携しやすいでしょう。

これら例が共通して示すことはシステムと他のアプリケーションと協調することの重要さです。
Androidシステムはブラックボックスのソースコードの集合より、疎結合したコンポーネントの集合としてアプリケーションを扱うように設計されています。

アプリケーションを「疎結合したコンポーネントの集合」として扱うことで、
他のアプリケーションとシームレスかつ美しく統合することができる利点があります

Android開発者が知るべき10のこと

つづきをどうぞ

Read more >>

NumberPickerを使用して数値を入力する

2月 27, 2011   //   by kei_i_t   //   ユーザインターフェース  //  No Comments

Android3.0からNumberPickerという数値入力用のViewが追加されました。

サンプルはこちらに用意していますので、SVNなどでダウンロードして下さい。

詳細内容は以下から。
Read more >>

Fragmentを動的に変化させる

2月 26, 2011   //   by UpDown-G   //   アプリケーション, ユーザインターフェース  //  1 Comment

PreferenceFragmentを使って2Paneな設定画面を作成する」「Fragmentを使ってMenuを動的に作成する」にて、Android3.0で追加された、Fragmentについて紹介してきました。

今回も、Fragmentの機能を紹介していきます。
FragmentはActivityなどと同じ様に、ライフサイクルを持ちます。
それらを確認した上で、Button操作による、Fragmentの追加/編集を行っていきましょう。

Read more >>

ActionBarにMenuを表示する

2月 22, 2011   //   by @mhidaka   //   ユーザインターフェース  //  2 Comments

Android3.0(Honeycomb)から画面上部のタイトルバーの機能が拡張され、ActionBar(アクションバー)として利用できるようになりました。ActionBarにはメニューを表示したり、Tabを表示したりとタブレットに適したUIを構築できます。今回はMenuの表示、使用上の注意点について紹介します。
fragmentとActionBarを組み合わせたより高度な使い方については、Fragmentを使ってMenuを動的に作成するを参照してください。

Action BarにMenuを表示する際の注意点

  • タブレットデバイスではメニューボタンを押してから個別要素(詳細な選択肢)を表示するUIが多い。Action Barにメニューを出しすぎない点に注意。
  • ActionBar上へ、一度に出るメニュー項目は最大2つが目安
  • 2つ以上の場合は、Moreボタンによってまとめる(プラットフォーム側で自動でまとめてくれる)

※現在公開されているHoneycombのSDKはプレビュー版の為、正式版では実装が異なる可能性があります。

サンプルコードは続きから。
Read more >>

SearchViewを使用してListViewのアイテムにフィルターをかける

2月 13, 2011   //   by kei_i_t   //   ユーザインターフェース  //  No Comments

Android3.0(Honeycomb)からSearchViewという検索ボックス風のViewが追加されました。

このViewは検索機能を実装するための非常に便利な機能が備わっています。

今回はこれを使用してListViewのアイテムにフィルターをかける方法を紹介します。

※現在公開されているHoneycombのSDKはプレビュー版の為、正式版では実装が異なる可能性があります。

詳細は以下から。

Read more >>

ステータス通知(Notification)を変化させる

2月 8, 2011   //   by @mhidaka   //   ユーザインターフェース  //  No Comments

Notificationを使ってステータス通知するではステータスへメッセージを表示するための方法を紹介しました。今回は、応用としてステータス通知をアニメーションさせる方法を紹介します。
Notificationでは時間差でIntentを発行するPendingIntentも利用しています。AppWidgetの作成(2) + PendingIntentも参考にどうぞ。

ステータスに♪表示 ステータス通知(♪) ステータス通知(▲)

Read more >>

折り畳み可能なリストを作る

2月 6, 2011   //   by kseto   //   ユーザインターフェース  //  No Comments

今回は折り畳みが可能なリストの作り方をご紹介します。
図のように親リストの項目を選択すると子のリストが表示されます。

詳細は続きからどうぞ。

Read more >>

AutoCompleteを使う

2月 1, 2011   //   by @mhidaka   //   ユーザインターフェース  //  No Comments

AutoCompleteTextViewを使うと、オートコンプリート機能でテキスト入力を支援することができます。Widgetの1つで、名前の通り、TextViewの付加機能として実装されています。

AutoCompleteTextViewクラスのメソッドのうち

  • setAdapter(T adapter) ドロップダウンに表示するリストを設定
  • setCompletionHint(Char) ドロップダウンリスト最下段に表示されるヒント
  • setThreshold(int) オートコンプリート開始までの文字数(0以下は指定できない)

などを使うことで細かい制御が可能です。
Read more >>

PopupMenuを使う

1月 30, 2011   //   by kseto   //   ユーザインターフェース  //  1 Comment

Android 3.0(Honeycomb)では新しいUIコンポーネントとしてPopupMenuが追加されました。
PopupMenuではその名の通り、メニュー項目がポップアップ状に表示されます。

PopupMenuの詳細な使い方は続きからご覧下さい。

Read more >>

AnimationListenerを使ってアニメーションのイベントを拾う

1月 26, 2011   //   by kkato   //   ユーザインターフェース  //  No Comments

今回はアニメーションの開始、終了時などのタイミングで何か処理を行いたい時に使うAnimationListenerを紹介します。

アニメーションのさせ方自体は以下の記事を参考にしてください。

画像をアニメーションさせる
ViewFlipperでアニメーションする(ViewAnimator)
Viewにアニメーションを付与する(Tweenアニメーション)
AnimationDrawableでアニメーションを作る

それでは続きへどうぞ。

Read more >>

ページ:«12345678910»

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です