TweetiPhoneのそれと比較して、よくかっこわるいと評価されてしまうAndroidですが、正しくは「標準UI同士で比べた際にイケてない」のが真実だと思っています。今現実として、Androidアプリにイケてないものが多いのですが、そもそもデザインを考慮するプロセスが省略されてしまっていたり、時間(コスト)が無いとかそういうこともあったと思いますが、流石にこれだけメジャーなデバイスになってしまうとそれが許される時代は終わってしまいました。ドットコム全盛期の様なGeocities+IBMホームページビルダーのデザインがはるか昔にキャハハされた様に、もうそろそろ標準UIで未カスタマイズのAndroidアプリもキャハハされる時代です。そんな中、効率よくかっこいいUIを構築するために頭の片隅で把握しておくとちょっと幸せになれる、独断と偏見で捻りあげた10個のAndroidのUIルールを紹介します。ステータスバー(通知バー)を消すのは簡単ですが、Androidのいいところを色々不自由にしてしまうため、全画面動画/カメラプレビュー等の再生、次いでゲームでのみやむをえず許容されるべきで、なるべく避けてください。ステータスバー(通知バー)を消す。」の順番に検討してください。標準UI部品は機能そのままカスタマイズが可能。Widgetsと呼ばれる標準のUI部品は、機能そのまま画像や、フォントサイズ等をカスタマイズすることが可能です。ホーム画面に配置することができるウィジェット(AppWidget)とは別物です。上記キャプチャはいずれも同一コードの標準UI。左からGingerbread(2.3.x)、Honeycomb(3.x)、IceCreamSandwich(4.x)。・画像は基本的に置き換えが可能。・「押した際/離した際」「ToggleButton:ONの時/OFFの時」「有効な時/無効な時」それぞれの状態別の画像を、組み合わせごとに指定することが可能。Wiki:ボタンの画像変更(CheckBox,RadioButton)http://wikiwiki.jp/android/?%A5%DC%A5%BF%A5%F3%A4%CE%B2%E8%C1%FC%CA%D1%B9%B9(CheckBox%2CRadioButton)・ProgressBarは標準で2段階のゲージに対応。・SeekBarの背景やツマミ部分の画像ももちろん置き換えが可能。アニメーションはそこそこできるけど部位によって使い勝手がバラバラでちょっと面倒。(Activity遷移時)アニメーションはデフォルト設定があって、それを変更することができる。透明から非透明にだんだん変化」とかそんな感じの画面遷移アニメーションは実現が可能です。(非力なAndroidデバイスを考慮して)設定でアニメーションそのものをオフにすることができるので過信は禁物です。有機的アニメーションの過剰導入は慎重に。※UIを持つアプリの構成要素のことをActivityと言います。「≒画面」と考えてもらえればだいたいあってます。アニメーションがつけられる。【エフェクトとしてのアニメーションは昔からきちんと揃っている】@IT:Androidアプリで"アニメーション"するための基礎知識http://www.atmarkit.co.jp/fsmart/articles/android20/android20_1.htmlただし、古いAnimation機能はあくまでエフェクトでしかなく、例えばButtonに設定してもヒット判定は別だったりします。3.0で導入されました。・gifアニメの様なコマ送りアニメーションもある。Animationって言います。Tweenと組み合わせると良いローディング画面ができたりするよ。Animation」って公式ドキュメントで書かれているけど名称と実態とクラス名があってないので分かりにくい。スクロールバーはカスタマイズが可能、ただし画面端のびよーんは端末・バージョン差がけっこうある。・スクロールバーは「常時表示するか」「レール部を含むサイズ・色」をカスタマイズ可能。・分かりにくいけど、標準UIのスクロールの端には「ここから先まだスクロールができるよ」ということを示すフェード(影)が表示されている。HTCやSamsungは独自にそれ以前から対応している。使う簡単な方法http://y-anz-m.blogspot.com/2011/01/androidoverscroll.html・iOSにある「ゴムをある程度引っ張って戻したら」というのは標準UIにはない。マルチタッチ・ピンチインアウト・左右フリックに基づく機能はちょっと特別なことをしようとすると泥臭い実装が必要で調整にはノウハウが居る。・抽象的なジェスチャ動作の検出までは標準でサポートされているけど、これとUIがセットになってる便利な標準ライブラリはないハードキーや長押しをメインとする操作ポリシーに後付けで対応したせいか、今でも重要視されておらず、標準ギャラリー(OpenGLでがっつり書かれている)の様な3DのUIを実現するのは結構困難です。ダイアログはカスタマイズが可能。・標準のAlertDialogはそこそこ種類があり、独自のレイアウトを挟み込むことも可能。ソフトウェア技術ドキュメントを勝手に翻訳:ダイアログの作成http://www.techdoctranslator.com/android/guide/ui/dialogs・見た目を変えたい際にはTheme・Styleを変更すればいい。Androidメモ:カスタムボタンとカスタムダイアログhttp://www.saturn.dti.ne.jp/~npaka/android/CustomDialogEx/index.html・イマイチいうことを聞かなかったら「見た目ダイアログの別画面」でいい。MENUキーメニューはアイコン・文言だけ変えるのはカンタン、それ以上は自前でやった方がいい。・MENUキーで下からヒョコっと出てくるOptionメニューはアイコン・文字の変更、もうちょっとカスタマイズして背景の変更まではさほど難しくない。・配置や表示するものを大幅に変えたい際にはMENUキーをフックして自前で実装することになる。ウィジェット・LiveWallpaper(動く壁紙)はユーザに近い(すぐ目に届く位置に配置できる)が、制限されている。・ホーム画面に配置することができるウィジェットとLiveWallpaperは、通常のアプリほど自由ではない。・ウィジェット:設計思想として頻繁な画面更新には向かない。使えるUI部品が限られている。ボタンは配置できるが操作をUIに書き戻すリアクトは苦手。・LivewallPaper:描画能力は高い。タッチイベントは座標で取れる。OpenGLやpixel単位のDraw系APIによる表示領域いっぱいのベタ書きに向いている。どちらも複雑なものを安定させるほど作ったことがないのであんまり詳しくないです。ホームアプリは暴君になったつもりで傲慢にやるべし。ユーザは自由に革命する。・まれによく「HOMEキーを押したとしても勝手に終了されないアプリにしたい」と言われるが、必然的にホームアプリになる。ホームアプリは「アプリランチャー」「設定へのジャンプ」「ウィジェット」「LiveWallpaper(動く壁紙)」を取り扱う機能を安定して提供する必要があるため、これらを満たした上で+αの快適さ・機能が無いと当然の様にクビにされます。コンセプトデモとして作成する際にもそのあとのマーケティングにはご留意を...。Androiderが他のプラットフォームを嫌うことは稀である。自分の恋人が魅力的で、しかし、じゃじゃ馬過ぎて他を見ている余裕が無くなるだけである。2011.12.14サービスを自社開発するのではなく、受託ベースのビジネスの際など、「そうそう都合よくAndroidのプロフェッショナルが揃っているはずはないよね」という前提のもと、プログラマとデザイナの意識あわせのための資料を別エントリで作成しております。よろしければ合わせて参考にしてください。プログラマとデザイナが共有すべきUIに関するAndroidの10の機能http://greety.sakura.ne.jp/redo/2011/08/uiandroid10.htmlプログラマとデザイナが共有すべきUIに関するAndroidの10の機能・改http://dl.dropbox.com/u/22653168/file/20111001_android_ui_dp10info_kai.pdf※発表用資料としての修正版。内容は変わっています。commentAuthor:youtenTwitter:@youten_redo詳細はProfileを参照願います。