Slicesに触ってみよう!

 Slicesに触ってみよう!

Google I/O 2018 わいわい報告会 in 福岡の発表資料
Androidの新機能、Slicesに触ってみよう!
https://mercari.connpass.com/event/88979/

7d709dd44f86dc8f2b7ddb4c48145dfc?s=128

jollyjoester

June 13, 2018
Tweet

Transcript

  1. Google I/O 2018 わいわい報告会 in 福岡 2018/06/13 Hideyuki Nanashima (@jollyjoester)

    Slicesに触ってみよう!
  2. 自己紹介 • 七島偉之(@jollyjoester)a.k.a かんぱいやー • いちおうiOS / Androidアプリ開発エンジニア • Swift愛好会、Kotlin愛好会を運営

    • try! Swift Tokyoオーガナイザー • Mercari, Inc.(2017/08〜) • Engineering Operations Team • 開発組織を強くするチーム • ソフトウェアエンジニアの採用 • 技術広報戦略立案・実行 • Mercari Tech Conferenceなどのイベントの企画・実行 • 育成制度や社内研修の設計・運用 • エンジニアリング組織の仕組み作り・運用 • ・・・
  3. Google I/O楽しかった

  4. 注目したセッション • What's new in Android • Android系のいろんなセッションへのindex。復習にぜひ • Best

    practices for text on Android • 地味に面白いtextのお話。本当はこれでお話したかったけど重かった • SlicesAndroid Slices: build interactive results for Google Search • Slicesの話。今日お話します。
  5. Slicesとは?

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

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

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

  9. • 情報表示 • 天気 • 株価 • 仮想通貨の価格 • Google

    I/Oでテンション上がったSlicesの話 by amyuさん • 乗り換えとかももしかしたら • 簡単な操作系 • Wi-Fiのオンオフ • スマートキー • 家電の操作 Slicesの用途(雰囲気)
  10. 前職で通知系周りに深く携わっていた 通知系の進化として「アプリを開かずに多くのことができるように なるのでは?」と考えていた※ 通知という受動的な手段ではなく検索で能動的にそれができる Slices面白そう! ディープリンクと絡めてアプリの起動経路にもなりそうだし ※主にiOSの話だったけど@iOSDC https://speakerdeck.com/jollyjoester/lai-mukaraputusiyutong-zhi-falseshi-ifang-wo-orosokanisinaidekure なんでSlicesに注目したか?

  11. Slicesに触ってみよう!

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

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

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

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

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

  17. 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'

    }
  18. SliceProviderを追加 AndroidManifest.xml <application ... <!-- To provide slices you must

    define a slice provider --> <provider android:authorities="com.android.example.slicecodelab" android:name=".MySliceProvider" android:grantUriPermissions="true" android:exported="true"> </provider> ... </application>
  19. SliceProviderを追加

  20. 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を実装
  21. 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を作る!
  22. Slicesを表示してみる

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

  24. Slice Viewerをインストール slice-viewer.apkを配置したディレクトリで $ adb install -r -t slice-viewer.apk *

    daemon not running; starting now at tcp:5037 * daemon started successfully Success
  25. 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 }
  26. Slicesが表示された! 最初こんな許可ダイアログが出る

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

  28. Slicesで温度を変えてみる

  29. Slicesの未来?(妄想)

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

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

  32. Slicesをもっと知るために

  33. 資料 • 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さん)
  34. Thank you!