10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-02-19
  • @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 として切り出すといいかも
10
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?