Help us understand the problem. What is going on with this article?

Keynote: サポートライブラリのススメ

More than 3 years have passed since last update.
  • @yuichi_araki さんのスライドが上がるまでの参考にどうぞ

発表者

はじめに:バグを見つけたら...

  • b.android.com へご報告を!
  • できるだけスクリーンショットを1枚でいいので送ってください

Support Library

Support Library?

  • 古いバージョンの端末もサポートし続けるためのライブラリが必要
  • 互換性
  • 最近のだと互換性だけでなく、Design Support Libraryみたいなものも
  • 現在20個程度存在
  • 後ろについている -v7 とははなに?
    • そのライブラリがサポートする最小のAPIレベル
    • Not ライブラリ自体のバージョン
    • 複数使う場合は、全部同じバージョンで使って欲しい

support-v4

  • プラットフォーム基本機能のバックポート(後方互換性)
  • 置き換え
    • Fragment, Loaderなど
  • なんとか Compat 系
    • ViewCompat, NotificationCompat など
    • static methodで互換性を保つ
  • Resource を使う機能は入っていない
  • 今のほとんどのライブラリの始祖になっているライブラリ(ほぼ必須のライブラリといえる)
  • どっちのFragmentを使えばいい?
    • android.app.Fragment
    • android.support.v4.app.Fragment
      • こっちのほうを使ったほうがよい
      • bug fix されてる

appcompat-v7

  • バックポート専門
  • Lolipop 以前の端末でもMaterial Designを使うためのライブラリ
  • プラットフォームの進化とともにアップデートされていく
  • 最初から使い続けると互換性的においしい
  • App Compat なんとか、な View を使うべき?
    • AppCompatTextView
    • AppCompatButton
    • ...
    • 使わなくていい
    • ただし、カスタム View を使うときの継承元としては使う

recyclerview-v7

  • ListView や GridViewの置き換えとして有名
  • ListView vs RecyclerView?
    • いま動いてるなら別にListViewを使い続けていいのでは

CardView

  • CardView のマージンがAPIレベルによって違う?
    • Lolipop は elevetion だけど
    • KitKat 以前では 地道な影を付ける努力が...!
    • value と value-v21 で margin/padding を分ける
    • app:cardUseCompatPadding="true" を使う

percent

  • パーセント指定で View をレイアウトできる
  • PercentFrameLayout, PercentRelativeLayout

preference-v7/v14

  • 設定画面を作るためのバックポート
  • PreferenceFragmentComprt
  • たいていは -v7 を使えばいい

palette-v7

  • この色はこの色と使うといいよ、みたいな配色を決めるやつ

customtabs

  • アプリ内ブラウザ→WebView?
  • not WebView
  • Chrome がアプリ内で動く
  • Chrome のメニューカスタマイズなどが可能で、そのアプリのブラウザとして使うことができる

その他

  • サポートライブラリをバージョンアップしたら動かなくなった
    • compileSdkVersion とサポートライブラリのバージョンが揃っているか確認

Design Support Library

Design Support Library?

  • マテリアルデザインで使われるコンポーネント群
  • こちらは追加機能
  • -v7対応

NavigationView

  • DrawerLayout の中で使う
  • ListView や RecyclerView でもいいけど、マテリアルデザインの細かいパディングなどを実装するのが結構面倒
  • NavigationViewがその辺を補完してくれる

TabLayout

  • ViewPager(support-v4) と連携することを想定して作られている

FloatingActionButton

  • 小話:FABの背景の影を付けるのに1週間くらいかかりました...

Snackbar

  • Toast の進化版
  • 最後の show() つけ忘れに注意してね!笑
  • snackbar が出ると自動的にFABが上に逃げる

コーディネーターレイアウト

  • すごい FragmeLayout みたいな
  • あとで詳しく

AppbarLayout, CollapsingToolbarLayout

  • スクロールに合わせてヘッダーを可変させる

ButtomSheetBehavior

  • 新しい!まだリリースされてない!
  • マテリアルデザインのボトムシート コンポーネントの実装
  • Google サンタトラッカー 2015 で実用化されている
  • スライド参照。(すみません、このあたりから駆け足だったのでメモが追いつきませんでした...)

Support Library Internals

サポートライブラリを作る

  • 導入はあとでスライドを参照.(すみません)
  • 開発は IntelliJ で
  • ディレクトリ構造がAndroid Stuioと違うので

CoordinatorLayoutの話

  • あとでスライドを(ry
  • カスタム View で共通の挙動などは Behavior として切り出すといいかも
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away