Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Slicesに触ってみよう!

 Slicesに触ってみよう!

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

jollyjoester

June 13, 2018
Tweet

More Decks by jollyjoester

Other Decks in Technology

Transcript

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

    • try! Swift Tokyoオーガナイザー • Mercari, Inc.(2017/08〜) • Engineering Operations Team • 開発組織を強くするチーム • ソフトウェアエンジニアの採用 • 技術広報戦略立案・実行 • Mercari Tech Conferenceなどのイベントの企画・実行 • 育成制度や社内研修の設計・運用 • エンジニアリング組織の仕組み作り・運用 • ・・・
  2. 注目したセッション • What's new in Android • Android系のいろんなセッションへのindex。復習にぜひ • Best

    practices for text on Android • 地味に面白いtextのお話。本当はこれでお話したかったけど重かった • SlicesAndroid Slices: build interactive results for Google Search • Slicesの話。今日お話します。
  3. • 情報表示 • 天気 • 株価 • 仮想通貨の価格 • Google

    I/Oでテンション上がったSlicesの話 by amyuさん • 乗り換えとかももしかしたら • 簡単な操作系 • Wi-Fiのオンオフ • スマートキー • 家電の操作 Slicesの用途(雰囲気)
  4. 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>
  5. 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を実装
  6. 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を作る!
  7. Slice Viewerをインストール slice-viewer.apkを配置したディレクトリで $ adb install -r -t slice-viewer.apk *

    daemon not running; starting now at tcp:5037 * daemon started successfully Success
  8. 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 }
  9. 資料 • 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さん)