Slide 1

Slide 1 text

Google I/O 2018 わいわい報告会 in 福岡 2018/06/13 Hideyuki Nanashima (@jollyjoester) Slicesに触ってみよう!

Slide 2

Slide 2 text

自己紹介 • 七島偉之(@jollyjoester)a.k.a かんぱいやー • いちおうiOS / Androidアプリ開発エンジニア • Swift愛好会、Kotlin愛好会を運営 • try! Swift Tokyoオーガナイザー • Mercari, Inc.(2017/08〜) • Engineering Operations Team • 開発組織を強くするチーム • ソフトウェアエンジニアの採用 • 技術広報戦略立案・実行 • Mercari Tech Conferenceなどのイベントの企画・実行 • 育成制度や社内研修の設計・運用 • エンジニアリング組織の仕組み作り・運用 • ・・・

Slide 3

Slide 3 text

Google I/O楽しかった

Slide 4

Slide 4 text

注目したセッション • What's new in Android • Android系のいろんなセッションへのindex。復習にぜひ • Best practices for text on Android • 地味に面白いtextのお話。本当はこれでお話したかったけど重かった • SlicesAndroid Slices: build interactive results for Google Search • Slicesの話。今日お話します。

Slide 5

Slide 5 text

Slicesとは?

Slide 6

Slide 6 text

Slicesとは Slices あなたのアプリからリッチで動的でインタラクティブなコンテンツを Google Searchとかの中に出せるUIテンプレートだよ Android Jetpackに組み込まれていてAndroid4.4以上(ユーザーの95%以上に届けることができるよ ドキュメントを意訳

Slide 7

Slide 7 text

Slicesとは https://developer.android.com/guide/slices/

Slide 8

Slide 8 text

Slicesでできること ここを見ると感触わかるかも(さぼり) Slice templates(ドキュメント) • 情報をリスト状に表示したり • ボタンとかトグルとかでアクションしたり

Slide 9

Slide 9 text

• 情報表示 • 天気 • 株価 • 仮想通貨の価格 • Google I/Oでテンション上がったSlicesの話 by amyuさん • 乗り換えとかももしかしたら • 簡単な操作系 • Wi-Fiのオンオフ • スマートキー • 家電の操作 Slicesの用途(雰囲気)

Slide 10

Slide 10 text

前職で通知系周りに深く携わっていた 通知系の進化として「アプリを開かずに多くのことができるように なるのでは?」と考えていた※ 通知という受動的な手段ではなく検索で能動的にそれができる Slices面白そう! ディープリンクと絡めてアプリの起動経路にもなりそうだし ※主にiOSの話だったけど@iOSDC https://speakerdeck.com/jollyjoester/lai-mukaraputusiyutong-zhi-falseshi-ifang-wo-orosokanisinaidekure なんでSlicesに注目したか?

Slide 11

Slide 11 text

Slicesに触ってみよう!

Slide 12

Slide 12 text

Codelabsをやってみよう Creating Android Slices サンプルプロジェクトを下記からクローン https://github.com/googlecodelabs/slices-basic-codelab Step-00のプロジェクトを使っていくよ (2018/6/13時点のやつ。Javaです)

Slide 13

Slide 13 text

やってみた環境 Android Studio 3.2 Canary 18

Slide 14

Slide 14 text

compileSdkVersionを書き換え build.gradle(Module: app) compileSdkVersion ‘android-P’ ↓ compileSdkVersion 28

Slide 15

Slide 15 text

ボタンぽちぽちしたら温度の数字が変わるだけアプリ サンプルプロジェクト

Slide 16

Slide 16 text

Slicesを提供するアプリの実装

Slide 17

Slide 17 text

Sliceライブラリをgradleに追加 build.gradle(Module: app) dependencies { ... implementation 'androidx.slice:slice-core:1.0.0-alpha1' implementation 'androidx.slice:slice-builders:1.0.0-alpha1' }

Slide 18

Slide 18 text

SliceProviderを追加 AndroidManifest.xml ...

Slide 19

Slide 19 text

SliceProviderを追加

Slide 20

Slide 20 text

MySliceProvider.java public class MySliceProvider extends SliceProvider { @Override public boolean onCreateSliceProvider() { // Sliceが作られたときに呼ばれる return true; } @Override public Slice onBindSlice(Uri sliceUri) { // Sliceが表示されるときに呼ばれる switch(sliceUri.getPath()) { case "/temperature": return createTemperatureSlice(sliceUri); } return null; } @Nullable private Slice createTemperatureSlice(Uri sliceUri) { // ここでSliceを作るよ return null; } } SliceProviderを実装

Slide 21

Slide 21 text

MySliceProvider.java private Slice createTemperatureSlice(Uri sliceUri) { // 親ビルダーを作成 ListBuilder listBuilder = new ListBuilder(getContext(), sliceUri, ListBuilder.INFINITY); // 行ビルダーを作成 ListBuilder.RowBuilder temperatureRow = new ListBuilder.RowBuilder(listBuilder); // 行ビルダーにタイトルとかをセット temperatureRow.setTitle(MainActivity.getTemperatureString(getContext())); // あとでアクションとかを追加していく // 行ビルダーを親ビルダーに追加 listBuilder.addRow(temperatureRow); // Sliceをビルド return listBuilder.build(); } Sliceを作る!

Slide 22

Slide 22 text

Slicesを表示してみる

Slide 23

Slide 23 text

Slice Viewerをダウンロード ここからslice-viewer.apkをダウンロードして適当な場所に配置す る

Slide 24

Slide 24 text

Slice Viewerをインストール slice-viewer.apkを配置したディレクトリで $ adb install -r -t slice-viewer.apk * daemon not running; starting now at tcp:5037 * daemon started successfully Success

Slide 25

Slide 25 text

Slicesを表示するIntentを投げる $ adb shell am start -a android.intent.action.VIEW -d slice-content://com.android.example.slicecodelab/temperatur e Starting: Intent { act=android.intent.action.VIEW dat=slice-content://com.android.example.slicecodelab/tempe rature }

Slide 26

Slide 26 text

Slicesが表示された! 最初こんな許可ダイアログが出る

Slide 27

Slide 27 text

Slicesにアクションを追加する (実装は割愛。Codelabsで続きやってみてね)

Slide 28

Slide 28 text

Slicesで温度を変えてみる

Slide 29

Slide 29 text

Slicesの未来?(妄想)

Slide 30

Slide 30 text

そのうち他のアプリが公開しているSliceをアプリに組み込めるよ うになったりしないものかな • ログインとか • 支払いとか Slicesはそのうち・・・?

Slide 31

Slide 31 text

みんな実際に動かして Slicesに触ってみよう!

Slide 32

Slide 32 text

Slicesをもっと知るために

Slide 33

Slide 33 text

資料 • Slices(公式ドキュメント) • Slice templates(公式ドキュメント) • Creating Android Slices(Codelabs) • Android Slices: build interactive results for Google Search (Google I/Oのセッション動画) • I/O Recap : Slices(yanzmさんのブログ) • How to develop Slices apps(wasabeefさんの資料) • Google I/Oでテンション上がったSlicesの話(amyuさん)

Slide 34

Slide 34 text

Thank you!