【勉強会メモ】Osaka Mix Leap Study #16 - Android Jetpack 勉強会
- 日時:2018/06/14(木) 19:00 〜 21:30
- 場所:ヤフー株式会社 大阪グランフロントオフィス
AndroidJetpack概要&旧AACの紹介
中谷 克紀 (GDG神戸)さん
- 開発速度を上げましょう
- ボイラープレートを減らしましょう
- アプリを高品質にしましょう
Jetpack一覧
パッケージ名の変更
- androidxのパッケージ名に変更
LiveData
- Lifecycleを考慮してデータ反映
- Activityと同じ生存期間のため画面回転などで破棄される
ViewModel
- Activityより長い生存期間
- LiveDataとViewModelを組み合わせると回転を気にしなくて良くなる
- ViewModelでViewやContextを参照しない
- 低メモリ状態で破棄されることはありうる
Room
LiveData+ViewModel+Room
- LiveData:ライフサイクルを意識せずにUIに反映
- ViewModel:画面の回転時の処理を気にせずに実装
- Room:データベースへ簡単にアクセス
まとめ
- 自分のやりたい作業に集中できる
- Googleが提供するライブラリなので最新バージョンへの追従も早いはず
- バックポートも提供できるはず
Navigation Architecture Component
河本 泰孝(株式会社tech vein(テックベイン))さん
www.slideshare.net
Navigationとは
- 画面遷移の実装をシンプルにするライブラリ
- 現在1.0.0 alpha02
Navigationで何が嬉しいのか?
⇒今まで何が大変だったことをシンプルにする
- Fragment管理が複雑
- DeepLinkが複雑
- データの受け渡しが型安全でない
- 画面遷移のテストは大変
Navigation Graph
- ある画面から別の画面に遷移するのを視覚的に表現
- 画面のことをDestinationと呼ぶ
- FlagmentとActivity
Navigation Editor
- Android Studio 3.2が必要
- 新しいリソースタイプ
navigation
を作成 - 適当な名前でxmlを作成
navigation-ui
- ハンバーガーメニューから開いて切り替えみたいな処理がいらない
データの受け渡し方
- Bundleオジェクトを使う
- Sefe Arge Gradleプラグインを使う
- 型安全にデータ受け渡し
DeepLink
- プッシュ通知やURLスキームから画面遷移が容易になる
今後追加されそうな機能
- startActivityForResultがサポート?
- DialogFragmentへの遷移
- 複数のアクティビティ間でUpボタンのサポート
- Shared Elementサポート
Deep Dive into Slice
森 洋之 (ヤフー株式会社)さん
Sliceについて
- テンプレート化されたUI
- ある程度形のきまった統一感のあるUI
- インタラクティブ
- アップデート可能
- テンプレートの追加などが可能
Sliceの仕組み
- SliceProviderを作る(ContentProviderを継承)
- URIをもとにSliceを要求
- UIを構造化されたデータで表現
実装方法
- Android Studio 3.2のメニューから一発
- SliceProviderを継承
- マニフェストに追加
どこで使われるか?
- Google Search
- 検索時に自分のアプリのSliceを表示してくれる
by App Name
by General Terms
3rd party to 3rd party
- アプリ間で連携
- 例)Yahooメールの内容をYahooアプリ内に表示
- サードパーティに開放するかは未定
Sliceめいたものをつくるなら
ContentProviderClient | Android Developers
まとめ
いつも聞いてビール飲んで帰るだけというのも申し訳ないので今回はLTにチャレンジしてみた。
先日参加したGoogle I/Oの報告会でも紹介されたML Kitを使ってみたレポートです。