つ部 Android 勉強会 2013年9月 発表資料

2,229 views

Published on

Published in: Technology

つ部 Android 勉強会 2013年9月 発表資料

  1. 1. AppCompat 使ってみました 2013/9/14 つ部 Android 勉強会 2013年9月 @nagakenjs
  2. 2. 自己紹介 Twitter ID:@nagakenjs(ながけん) お仕事:ソフト屋さんです。 Java屋さんのはずですがCやC++もよく書きま す。 Androidの中の人になることが多いです。 たまに.NET Micro Frameworkで遊んでます。 年末にかけて何かするかも。
  3. 3. あなたのアプリに ActionBarはありますか?
  4. 4. ActionBar こいつです Honeycombより追加されたメニュー構造 アイコン、検索ボックス、ドロップダウンメニ ューなどを配置可能
  5. 5. Andriodのシェア http://developer.android.com/about/dashboards/index.html 2.2/2.3のシェアが3割 まだまだサポート捨てられない
  6. 6. ActionBar Sherlok Andriod 2.xでActionBarが利用可能 サードパーティ製ライブラリ http://actionbarsherlock.com/
  7. 7. v7 appcompat library Android 2.1以降で使えるActionBarライブラリ Android Support Library Rev.18で導入 Google謹製!
  8. 8. 導入方法(Eclipse) Action Bar用のサブプロジェクトを作成 <SDK>/extras/android/support/v7/appcompat をインポート アプリからサブプロジェクトを参照
  9. 9. 導入方法 (Android Studio) プロジェクトを作る時のウィザードで「Action Bar」にチェックを付ける(0.2.7から) またはbuild.gradleに以下を設定 dependencies { compile 'com.android.support:appcompat-v7:18.0.0' compile 'com.android.support:support-v4:18.0.0' }
  10. 10. どうやって使うの?
  11. 11. 利用方法(その1) Activity を ActionBarActivityに置き換える テーマをAndroidManifest.xmlに設定する Theme.AppCompat Theme.AppCompat.Light Theme.AppCompat.Light.DarkActionBar public class MainActivity extends ActionBarActivity
  12. 12. 利用方法(その2) メニューは標準APIが使用可能 ActionBarで拡張された部分はMenuItemCompatを 使用 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { MenuItem item = menu.add(0, MENU_ID, Menu.NONE, "menu"); MenuItemCompat.setShowAsAction( item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM); super.onCreateOptionsMenu(menu, inflater); }
  13. 13. 利用方法(その3) XMLファイルでメニューを扱う場合 ActionBar拡張部分は別途名前空間を定義する <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/menu_settings" android:icon="@drawable/ic_menu_preferences" android:title="@string/menu_settings" yourapp:showAsAction="ifRoom" /> </menu>
  14. 14. 利用方法(その4) android.support.v7.app.ActionBar appcompatで追加 android.app.ActionBarとAPIの互換性あり // ActionBarActivityのメソッド内 ActionBar actionBar = getSupportActionBar();
  15. 15. つまずく点 ListActivityの代替クラスがない ListFragmentを使うべき? Andriod Studioでテーマが使えない 0.2.7にバージョンアップする
  16. 16. ActionBar Sherlockとの 違いは?
  17. 17. ActionBarSherlockとの 違い 各ライブラリのクラス数・リソース数 クラス数 リソース数 (png + xml) AppCompat ActionBar Sherlock 56ファイル 291ファイル 87ファイル 341ファイル
  18. 18. ActionBarSherlockとの 違い AppCompat ActionBarSherlock • ActionBar基本機能 • タブバー • ポップアップメニュー • 検索ビュー • 共有 • ActionBar基本機能 • 各種Activityの拡張 • 各種Fragmentの拡張 • タブバー • メニューの拡張 • ポップアップメニュー • 検索ビュー • 共有
  19. 19. ActionBarSherlockとの 違い apkのサイズ • Android StudioでHello Worldプロジェクトを作成 • build.gradleにDebug版とRelease版のapkを作るよう設定 Debug Release AppCompat ActionBar Sherlock 651,819 byte 635,201 byte 731,848 byte 708,439 byte
  20. 20. まとめ Android 2.1からActionBarが利用可能 Activityやテーマを置き換えて使う ActionBar Sherlockと比べるとコンパクト 標準提供されているので導入が容易

×