Hatena::ブログ(Diary)

@thorikiriのてょりっき このページをアンテナに追加 RSSフィード Twitter

2012-04-20

Android UI勉強会―デザインから実装まで― #androui419 に行って来ました。

Android UI勉強会―デザインから実装まで― on Zusaar

遅こ(ry

オープニングあたりは聞けなかったです。メモとかまとめとか

タダだったので、懇親会も出たかったのですが、諸事情によりすぐ帰りました。

エクストリームフラグメントUIプログラミング

資料
メモとか

TED - Google Play の Android アプリInstagram - Google Play の Android アプリを題材にフラグメントの使い方とか設計とかを考えます。

  • TED
    • タブの切替をスワイプで行います。TabHost+ViewPager+Fragmentのパターン。スワイプするとFragmentが切り替わるようにします。
    • さらに入れ子になっているタブも切り替わります。
    • ListFragment+TabHostでタブ部分もスクロール出来るようになります。タブはListViewのaddHeaderViewでやる。addHeaderViewかどうかを見分けるのは、スクロールバーが動くかどうかでわかります。
    • Fragmentで画面を切り替えることによって、Activityを少なくすることが出来ます。Activityの画面遷移よりFragmentでの画面遷移の方が早いのでユーザビリティ的に良いです。
    • Fragmentを使いまわすようにしていると、レイアウトを変更したい場合に、修正する箇所が少なくなるので、色々試行錯誤するのも簡単になります。StepByStepでやりましょう。
  • Instagram
    • 下タブの切り替えをFragmentで行なっています。Activity1つでほとんどの画面に対応しています。唯一プロフィール編集だけが別Activtyになっています。
    • Fragmentを使いまわすと統一感が出ます。
    • 特にListFragmentは使いまわしやすいです。使い回しのパターンは2通りで、Loaderを切替えて使いまわすパターンと、URLを切替えて使いまわすパターンです。Loaderを切り替えるのは、同じデータ・表現だが、取得元が異なる場合に使うのが良いです。例えば、コンテントプロバイダから取得するのと、ネットワークの外から取得する場合などです。URLを切り替えるのは、同じネットワーク越しでもパラメータ等が異なる場合、例えばTwitterのタイムラインと検索とかそういうのだと思います。
  • まとめ
    • Fragmentを使うのが最近の傾向です。乗り遅れるなかれ。
    • ActivityとFragmentの使い分けは難しいですが、TEDがやっているように、ナビゲーションに1つのActivityと複数のFragmentで画面遷移をして、コンテンツそのものを表示するActivityは分けると言った感じになるかと思います。
    • 使い回しはListFragmentからやっていきましょう、やりやすいです。その時に、Loaderを使うと良いです。

スモールスクリーンむけUIデザインパターン

資料
メモとか

AndroidとかたぶんHTML5モバイルアプリでも使えるUIのデザインパターンについてです。デザインパターンとガイドラインは別のものです。

iOSのネイティブアプリのガイドラインはかなりガラパゴスです。ボタンがひとつしかないからだと思いますが、戻るボタンとかを自分で入れていかないといけないのは結構つらいですね。

感想

面白かった!取り入れられるとこから取り入れたいと思います。

Android UI Cookbook for 4.0 ICS(Ice Cream Sandwich)アプリ開発術

Android UI Cookbook for 4.0 ICS(Ice Cream Sandwich)アプリ開発術

Android Layout Cookbook アプリの価値を高める開発テクニック

Android Layout Cookbook アプリの価値を高める開発テクニック

電子版も出ました。

インプレスジャパンダイレクト営業終了のご案内

4/23 追記

たぶん同じ内容(修正等あるかと思いますが)の勉強会が開催されるようです。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/t-horikiri/20120420/1334911581