Slide 1

Slide 1 text

Google I/O Extended Tokyo 2018

Slide 2

Slide 2 text

藤田 琢磨 @magie_pooh / FOLIO Co., Ltd. 志甫 侑紀 @shihochandesu / AbemaTV, Inc. 副島 茂大 @highballegg / DeNA Co., Ltd. About us

Slide 3

Slide 3 text

ハッシュタグ #io18extendedJp

Slide 4

Slide 4 text

What's New in Android Android P Preview

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

P Preview ● Wi-Fi RTT による屋内位置測定 ● ディスプレイの切り欠きのサポート ● 通知 ● マルチカメラのサポートとカメラ機能のアップデート ● ビットマップとドローアブルに便利な ImageDecoder ● Neural Networks API 1.1 ● Autofill API の改善 ● and more… https://developer.android.com/preview/features

Slide 7

Slide 7 text

Indoor Positioning

Slide 8

Slide 8 text

屋内位置測定のWi-Fi RTTとは Indoor Positioning with Wi-Fi RTT (Round-Trip-Time, IEEE 802.11mc Wi-Fi protocol) RTTをサポートしているアクセスポイント(AP)からの距離で屋内でも位置情報を利用 可能にします。3つ以上のAPがある場合は三点測位で1~2mの精度で位置の特定 が可能。 端末のハードウェアサポートが必要で、アプリの実装には利用するAPIに合わせてロ ケーションやWi-Fi周りの許可が必要。

Slide 9

Slide 9 text

屋内位置測定のWi-Fi RTTとは

Slide 10

Slide 10 text

Display Cutout

Slide 11

Slide 11 text

ディスプレイの切り欠きのサポート (Display Cutout)

Slide 12

Slide 12 text

ディスプレイの切り欠きのサポート (Display Cutout)

Slide 13

Slide 13 text

Notifications

Slide 14

Slide 14 text

通知 SMS仕様の改善  Android N (7.0)で追加されたメッセージへの返信機能の強化 チャネル設定、ブロードキャスト、マナーモード  Android O(8.0)で追加された通知チャネルの強化

Slide 15

Slide 15 text

Animation & ImageDecoder

Slide 16

Slide 16 text

ImageDecoder これまでGlide等のサードパーティを利用していた GIFアニメーションをAndroidフレームワークだけで扱える ようになります。サポートライブラリには(まだ?)ないので P以降の端末が必要です。 val uri = drawableToUri(R.drawable.animated_gif) val animatedGifSrc = ImageDecoder.createSource(contentResolver, uri) ImageDecoder.decodeDrawable(animatedGifSrc, listener)?.apply { imageView.setImageDrawable(this) if (this is Animatable2) { start() } } 描画する画像は PostProcessor を実装して、角丸にしたりと加工も可能。 ※DP1の時点でエミュレータでは表示できない(デコード情報は取得可)。 ※listener = ImageDecoder.OnHeaderDecodedListener

Slide 17

Slide 17 text

Autofill Framework improvements input sanitization

Slide 18

Slide 18 text

input sanitization ● TextValueSanitizer ○ new TextValueSanitizer(Pattern.compile("^(\\d{4})\\s?(\\d{4})\\s?(\\d{4})\\s?(\\d{4})$", "$1$2$3$4") ● Credit Card ○ 1234 5678 9012 3456 ○ Sanitize => 1234567890123456 ○ 不要なスペースを取り去って保存可能

Slide 19

Slide 19 text

Android P Behavior Changes

Slide 20

Slide 20 text

その他の細かい変更点1(仮) ● FLAG_ACTIVITY_NEW_TASK 要件の適用 ○ 非アクティビティ コンテキストからは明示的に FLAG_ACTIVITY_NEW_TASKを渡さないと、アク ティビティ開始不可 ● 画面回転の変更 ○ 名前の変更:ポートレート⇒回転ロック ○ 現在の画面の状態(縦・横)でロック可 ● バックグラウンド アプリにおける入力およびデータ プライバシー ○ アプリはマイクやカメラにアクセス不可 ○ 加速度計やジャイロスコープなど、継続的な報告モードを使用する Sensor はイベントを受信不 可 ○ 変化時またはワンショットの報告モードを使用する Sensor はイベントを受信不可 ● 暗号化の変更 ○ 暗号化アルゴリズムの実装と操作方法が一部変更

Slide 21

Slide 21 text

その他の細かい変更点2(仮) ● フォアグラウンド サービス ○ FOREGROUND_SERVICEのパーミッションが必要 ● 端末のシリアル番号へのアクセスの制限 ○ P では Build.SERIAL は常に "UNKNOWN" に設定 ○ READ_PHONE_STATEのパーミッションを得れば取得可。 ● View のフォーカス ○ 幅または高さが 0 の View はフォーカス不可 ○ Activity はタッチモードで暗黙的に初期フォーカスを指定不可 ● WebView周り ○ P から CSS 色にアルファの指定可。 P 以前はそのまま。 ○ スクロール要素(document.body.scrollXXX)の挙動の変更

Slide 22

Slide 22 text

その他の細かい変更点3(仮) ● SDK インターフェースと非 SDK インターフェースを区別する ○ ドキュメント化されていない APIへのアクセスの制限 ○ Previewの間はログに警告が出るが、リリース版からは例外、値なし、 nullが返る ● android.app.Fragment deprecated ○ support libraryのFragmentに切り替え ○ DialogFragment, PreferenceFragmentも同様。 ○ WebViewFragmentは代替がない+onResume(), onPause()が自動で呼ばれなくなるので実 装の見直しが必要なケースも ● 統合された指紋認証ダイアログ ○ システムが指紋認証ダイアログを提供するので、アプリ独自の UIを消せる ○ android.hardware.fingerprint.FingerprintDialog

Slide 23

Slide 23 text

Google I/O 2017 -> 2018

Slide 24

Slide 24 text

セッション比較 2017 2018 Android 84 122(Android & Play) Machine Learning AI 13 26 Firebase 31 26 Flutter 2 11 IoT 14 13 ※ 全体的にOfficeHourの時間が増えていそう

Slide 25

Slide 25 text

I/O 2018 予想

Slide 26

Slide 26 text

Material Design 2

Slide 27

Slide 27 text

Material Design 2 ● 新しい色、図形、タッチに焦点を当てて改良 ● 2月初旬に Chromium Gerrit リポジトリで、 Chrome のタブストリップに Material Design 2 UI のタブ 実装がコミットされる ○ タブ自体の高さの変更、コンテンツレイアウト、タッチ領域の変更など ○ 今はプライベートに変更 ● 参照:”Google’s Material Design UI is Getting Revamped with New Colors, Iconography, and a Focus on Touch” https://www.xda-developers.com/chromium-gerrit-material-design-2-colors/

Slide 28

Slide 28 text

Material Design 2

Slide 29

Slide 29 text

Material Design 2 - Google I/O 2018

Slide 30

Slide 30 text

Material Design 2 - Tasks