Slide 1

Slide 1 text

Overview of Google I/O 2019 for Android あんざいゆき (@yanzm)

Slide 2

Slide 2 text

Yuki Anzai • Android App Developer (2009~) • CEO of uPhyca Inc. (2011~) • Google Developer Expert for Android • Organizer of GTUG Girls and droid girls • Twitter : @yanzm

Slide 3

Slide 3 text

Google I/O

Slide 4

Slide 4 text

Google I/O • 年1回開催される Google の技術者向けイベント • 会場はカリフォルニア州の Mountain View にある Shoreline Amphitheatre • Mountain View : いわゆるシリコンバレーにある街の⼀つ • Shoreline Amphitheatre : 屋外コンサート会場 • 今年はサングラスをくれなかった!

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Android

Slide 8

Slide 8 text

Kotlin • Kotlin first!

Slide 9

Slide 9 text

Kotlin • Androidの公式サポート⾔語の⼀つ(他は Java, C++) • Google I/O 2017で発表 • Java と相互運⽤性がある • 標準ライブラリで⽤意されている関数群がリッチ • Null 安全性(Nullable 型と NonNull 型が別)

Slide 10

Slide 10 text

What's new in Android (Google I/O'19) https://www.youtube.com/watch?v=td3Kd7fOROw

Slide 11

Slide 11 text

Kotlin Sessions • What's New in Kotlin on Android, 2 Years In (Google I/O'19) • https://www.youtube.com/watch?v=ldM6QZy9e0s • Kotlin Under the Hood: Understand the Internals (Google I/O'19) • https://www.youtube.com/watch?v=Ta5wBJsC39s • Understand Kotlin Coroutines on Android (Google I/O'19) • https://www.youtube.com/watch?v=BOHK_w09pVA

Slide 12

Slide 12 text

Android Q • 次の OS version いまここ

Slide 13

Slide 13 text

Android Q • Share sheet • Bubbles • Notification Action • Dark Theme • Magnifier • Privacy • ...

Slide 14

Slide 14 text

Q の機能を試す android { compileSdkVersion "android-Q" defaultConfig { targetSdkVersion "Q" } }

Slide 15

Slide 15 text

Share sheet • 共有機能の改善 • Sharing Shortcuts • https://developer.android.com/preview/features/sharing

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Share sheet session • What's new in the Android OS User Interface (Google I/O'19) • https://www.youtube.com/watch?v=nWbW58RMteI

Slide 18

Slide 18 text

Bubbles • 新しい multitasking way • 画⾯にアイコンが floating で表⽰され、タップすると expand する • 使えるとき • Messaging, Calling, User initiated • https://developer.android.com/preview/features/bubbles

Slide 19

Slide 19 text

What's new in Android (Google I/O'19) https://www.youtube.com/watch?v=td3Kd7fOROw

Slide 20

Slide 20 text

What's new in the Android OS User Interface (Google I/O'19) https://www.youtube.com/watch?v=nWbW58RMteI

Slide 21

Slide 21 text

Bubbles session • What's new in the Android OS User Interface (Google I/O'19) • https://www.youtube.com/watch?v=nWbW58RMteI

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Dark Theme

Slide 24

Slide 24 text

Dark Theme • Dark Theme & Gesture Navigation (Google I/O'19) • https://www.youtube.com/watch?v=OCHEjeLC_UY&t=22s

Slide 25

Slide 25 text

Dark Theme

Slide 26

Slide 26 text

Dark Theme • theme を Dark/Light に切り替える System theme setting が追加された • デバイスがバッテリーセーバーモードに⼊ったら、システム UI は⾃動で Dark Theme になる • Dark Theme のサポートは強く推奨されている • Material Design : https://material.io/design/color/dark-theme.html https://developer.android.com/preview/features/darktheme

Slide 27

Slide 27 text

Force Dark • ⾃動でアプリを dark theme に変換する • opt-in するには • Force Dark よりも Custom の Dark Theme を⽤意したほうがよい • とりあえず force dark の⾒た⽬を確認したい → developer options の force dark を有効にする <item name="android:forceDarkAllowed">true</item>

Slide 28

Slide 28 text

AppCompat and MDC • DayNight ... ...

Slide 29

Slide 29 text

class MyApplication : Application() { override fun onCreate() { super.onCreate() AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) // MODE_NIGHT_YES // MODE_NIGHT_NO // MODE_NIGHT_FOLLOW_SYSTEM // MODE_NIGHT_AUTO_BATTERY // MODE_NIGHT_UNSPECIFIED } } class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM } }

Slide 30

Slide 30 text

アプリ内設定 • ユーザーがアプリのテーマを選べるようにすべき • Dark → MODE_NIGHT_YES • Light → MODE_NIGHT_NO • System default → MODE_NIGHT_FOLLOW_SYSTEM • Auto battery → MODE_NIGHT_AUTO_BATTERY

Slide 31

Slide 31 text

Dark Theme 対応まとめ • AppCompat or MDC の DayNight を利⽤し、ユーザーが設定できるよう にする • AppCompat と MDC を v1.1.0 にアップデートする • Force Dark でとりあえずの dark theme 対応ができる • ⾊の直接指定をやめ、Theme attribute を利⽤する

Slide 32

Slide 32 text

https://developer.android.com/guide/topics/text/magnifier の内容は現時点(2019/6/1)で古いので注意

Slide 33

Slide 33 text

Privacy • パーミッション関係の変更 • Mac address のランダム化 • foreground service に関する変更 • Shared Storage アクセスに関するの変更 • ...

Slide 34

Slide 34 text

Privacy • Overview of Privacy Changes in Android Q (Google I/O'19) • https://www.youtube.com/watch?v=bFp2n5OxYEE

Slide 35

Slide 35 text

Overview of Privacy Changes in Android Q (Google I/O'19) https://www.youtube.com/watch?v=bFp2n5OxYEE Location のパーミッションに、アプリが foreground にある間だけ許可、というのが増えた

Slide 36

Slide 36 text

Overview of Privacy Changes in Android Q (Google I/O'19) https://www.youtube.com/watch?v=bFp2n5OxYEE 不変なデバイス識別⼦(IMEIとか)が READ_PHONE_STATE パーミッションで取得でき なくなった

Slide 37

Slide 37 text

Overview of Privacy Changes in Android Q (Google I/O'19) https://www.youtube.com/watch?v=bFp2n5OxYEE MAC アドレスのランダム化がデフォルトになった (P ではオプション)

Slide 38

Slide 38 text

Overview of Privacy Changes in Android Q (Google I/O'19) https://www.youtube.com/watch?v=bFp2n5OxYEE MAC アドレスのランダム化がデフォルトになった (P ではオプション)

Slide 39

Slide 39 text

Overview of Privacy Changes in Android Q (Google I/O'19) https://www.youtube.com/watch?v=bFp2n5OxYEE foreground service になるときにタイプを指定 しなくてはいけなくなった

Slide 40

Slide 40 text

Overview of Privacy Changes in Android Q (Google I/O'19) https://www.youtube.com/watch?v=bFp2n5OxYEE Shared Storage へのアクセスに変更が⼊った

Slide 41

Slide 41 text

Shared Storage • external storage として知られているもの • storage permission によって管理される storage pool • What’s New in Shared Storage (Google I/O'19) • https://www.youtube.com/watch?v=3EtBw5s9iRY

Slide 42

Slide 42 text

Shared Storage in Q • MediaStore にデータを追加するときや、以前追加したデータにアクセス するときは permission が不要になった • MediaStore の他のアプリが追加したデータにアクセスするときは permission が必要 • MediaStore 外のファイルにアクセスするときは system picker 経由でな ければならない

Slide 43

Slide 43 text

Android Studio

Slide 44

Slide 44 text

Android Studio sessions • What's New in Android Studio UI Design and Debugging Tools (Google I/ O'19) • https://www.youtube.com/watch?v=oWTG5g5rT4s • What's New in the Android Studio Build System (Google I/O'19) • https://www.youtube.com/watch?v=LFRCzsD7UhY • Android Studio: Tips and Tricks (Google I/O'19) • https://www.youtube.com/watch?v=ihF-PwDfRZ4

Slide 45

Slide 45 text

Android Studio sessions • What's New in Android Studio UI Design and Debugging Tools (Google I/ O'19) • https://www.youtube.com/watch?v=oWTG5g5rT4s • What's New in the Android Studio Build System (Google I/O'19) • https://www.youtube.com/watch?v=LFRCzsD7UhY • Android Studio: Tips and Tricks (Google I/O'19) • https://www.youtube.com/watch?v=ihF-PwDfRZ4 ↓ 便利機能とか、ショートカットキーとかがたくさん紹介されている   オススメ

Slide 46

Slide 46 text

Resource Manager • Android Studio 3.4 • リソース管理の新しい window • Batch import • Bulk import SVG and convert them to VectorDrawable • Preview all layouts • Integration with Layout Editor

Slide 47

Slide 47 text

What's New in Android Studio UI Design and Debugging Tools (Google I/O'19) https://www.youtube.com/watch?v=oWTG5g5rT4s

Slide 48

Slide 48 text

What's New in Android Studio UI Design and Debugging Tools (Google I/O'19) https://www.youtube.com/watch?v=oWTG5g5rT4s

Slide 49

Slide 49 text

What's New in Android Studio UI Design and Debugging Tools (Google I/O'19) https://www.youtube.com/watch?v=oWTG5g5rT4s

Slide 50

Slide 50 text

What's New in Android Studio UI Design and Debugging Tools (Google I/O'19) https://www.youtube.com/watch?v=oWTG5g5rT4s

Slide 51

Slide 51 text

What's New in Android Studio UI Design and Debugging Tools (Google I/O'19) https://www.youtube.com/watch?v=oWTG5g5rT4s

Slide 52

Slide 52 text

What's New in Android Studio UI Design and Debugging Tools (Google I/O'19) https://www.youtube.com/watch?v=oWTG5g5rT4s

Slide 53

Slide 53 text

Emulator • Foldables • Headless emulator build • UIなしでエミュレータを起動 • CIでエミュレータを利⽤する場合に適している • https://androidstudio.googleblog.com/2019/02/emulator-2818- canary.html

Slide 54

Slide 54 text

Emulator • Best Practices in Using the Android Emulator (Google I/O'19) • https://www.youtube.com/watch?v=Up3hyBSDAMA

Slide 55

Slide 55 text

AndroidX

Slide 56

Slide 56 text

CameraX • alpha • Camera2 ベース • Android 5.0 (API Level 21) 以降をサポート • ML Kit など機械学習との連携が簡単 • Extension という optional add-on 機能で、ポートレイトモードやHDR などデバイス独⾃の機能をサポート

Slide 57

Slide 57 text

CameraX • Android Jetpack: Understand the CameraX Camera-Support Library (Google I/O'19) • https://www.youtube.com/watch?v=kuv8uK-5CLY

Slide 58

Slide 58 text

Android Jetpack: Understand the CameraX Camera-Support Library (Google I/O'19) https://www.youtube.com/watch?v=kuv8uK-5CLY 動画の撮影は対応していない そこまで優先度⾼くなさそう...

Slide 59

Slide 59 text

CameraX • https://developer.android.com/training/camerax • Codelab: https://codelabs.developers.google.com/codelabs/ camerax-getting-started/

Slide 60

Slide 60 text

Jetpack

Slide 61

Slide 61 text

No content

Slide 62

Slide 62 text

Jetpack Security Library • ファイル・SharePreferences の暗号化 • Android 6.0 (API Level 23) 以降をサポート • 保管時のデータの読み書き、キーの作成と検証に関連するセキュリティの ベストプラクティスの実装 • security best practices : https://developer.android.com/topic/ security/best-practices

Slide 63

Slide 63 text

Jetpack Security Library • Security on Android: What's Next (Google I/O'19) • https://www.youtube.com/watch?v=0uG_RKiDmQY • https://developer.android.com/topic/security/data.md • https://developer.android.com/jetpack/androidx/releases/security

Slide 64

Slide 64 text

Jetpack Benchmarking Library • Android Studio から Kotlin ベースまたは Java ベースのコードをすばや くベンチマークすることができるライブラリ • https://developer.android.com/studio/profile/benchmark.html androidTestImplementation "androidx.benchmark:benchmark:1.0.0-alpha01"

Slide 65

Slide 65 text

Jetpack Benchmarking Library • Improving App Performance with Benchmarking (Google I/O'19) • https://www.youtube.com/watch?v=ZffMCJdA5Qc

Slide 66

Slide 66 text

ConstraintLayout 2.x • Flexibility • Virtual Layouts • Helpers & Decorators • Programming APIs • Optimizer • MotionLayout • Design Tools: UI Builder, Motion Editor

Slide 67

Slide 67 text

ConstraintLayout 2.x • What's New in ConstraintLayout (Google I/O'19) • https://www.youtube.com/watch?v=29gLA90m6Gk implementation "androidx.constraintlayout:constraintlayout:2.0.0-beta1"

Slide 68

Slide 68 text

Virtual Layouts • Flow mode • FlexBox 的なレイアウトができる • https://developer.android.com/ reference/androidx/constraintlayout/ helper/widget/Flow

Slide 69

Slide 69 text

Constraint Helpers • アニメーションなどを View と分離して定義 • 再利⽤しやすい

Slide 70

Slide 70 text

Programming APIs • ConstraintProperties val properties = ConstraintProperties(findViewById(R.id.text)) properties.visibility(View.INVISIBLE) .apply() val set = ConstraintSet() set.clone(constraintLayout) set.setVisibility(R.id.textView, View.INVISIBLE) set.applyTo(constraintLayout)

Slide 71

Slide 71 text

MotionLayout • ConstraintLayout のサブクラス • constrains (制約) を xml file に分離 • 最初と最後の ConstraintSet を指定することで、その間を⾃動でアニメー ションをさせることができる • KeyPosition, KeyAttribute, KeyTimeCycle

Slide 72

Slide 72 text

Documentation • Reference : https://developer.android.com/reference/androidx/ constraintlayout/classes • Medium : Introduction to MotionLayout part I ~ IV • Sample : https://github.com/googlesamples/android- ConstraintLayoutExamples

Slide 73

Slide 73 text

Jetpack Compose • https://developer.android.com/jetpack/compose • 宣⾔的にUIを構築するためのツールキット • リアクティブプログラミングモデル と Kotlin Coroutines の suspend の 仕組みに影響を受けている • pre-alpha stage

Slide 74

Slide 74 text

Jetpack Compose • Declarative UI Patterns (Google I/O'19) • https://www.youtube.com/watch?v=VsStyq4Lzxo

Slide 75

Slide 75 text

Architecture Components

Slide 76

Slide 76 text

Architecture Components • 堅牢で、テストしやすく、保守しやすいアプリを作るのを助けるライブラ リ集 • Data Binding, Lifecycle, Navigation, Paging, Room, WorkManager

Slide 77

Slide 77 text

Architecture Components • What's New in Architecture Components (Google I/O'19) • https://www.youtube.com/watch?v=Qxj2eBmXLHg

Slide 78

Slide 78 text

Kotlin First! • ktx • Kotlin だけの機能 • Kotlin 向けの API デザイン • coroutines サポート • ...

Slide 79

Slide 79 text

Data Binding • コンパイルが⾼速化 • Distributed build cache をサポート • Incremental annotation processing • experimental 機能 : android.databinding.incremental = true • Android Studio 3.5 でより⾼機能な Refactoring support • Better error message

Slide 80

Slide 80 text

What's New in Architecture Components (Google I/O'19) https://www.youtube.com/watch?v=Qxj2eBmXLHg Elegance + Compile Time Safety + Build Speed Impact

Slide 81

Slide 81 text

What's New in Architecture Components (Google I/O'19) https://www.youtube.com/watch?v=Qxj2eBmXLHg

Slide 82

Slide 82 text

What's New in Architecture Components (Google I/O'19) https://www.youtube.com/watch?v=Qxj2eBmXLHg

Slide 83

Slide 83 text

Lifecycle • ViewModel は configuration の変更(例えば画⾯回転)による再⽣成を 超えてインスタンスが保持される • ViewModel はプロセスを超えて保持されない

Slide 84

Slide 84 text

SavedStateHandle • ViewModel のデータをプロセスが kill されても保持する仕組み • onSaveInstanceState() と同じ • Parcelable data • data size 制限

Slide 85

Slide 85 text

What's New in Architecture Components (Google I/O'19) https://www.youtube.com/watch?v=Qxj2eBmXLHg

Slide 86

Slide 86 text

What's New in Architecture Components (Google I/O'19) https://www.youtube.com/watch?v=Qxj2eBmXLHg

Slide 87

Slide 87 text

What's New in Architecture Components (Google I/O'19) https://www.youtube.com/watch?v=Qxj2eBmXLHg

Slide 88

Slide 88 text

lifecycle-livedata-ktx liveData.observe(lifecycleOwener, Observer { newValue -> ... }) implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha01" liveData.observe(lifecycleOwener) { newValue -> ... }

Slide 89

Slide 89 text

lifecycle-livedata-ktx Transformations.map(liveData) { user -> user.name } implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha01" liveData.map { user -> user.name }

Slide 90

Slide 90 text

by viewModels() class MainActivity : AppCompatActivity() { private lateinit var viewModel: MainViewModel override fun onCreate(savedInstanceState: Bundle?) { ... viewModel = ViewModelProviders.of(this) .get(MainViewModel::class.java) implementation "androidx.activity:activity-ktx:1.0.0-alpha08" implementation "androidx.fragment:fragment-ktx:1.1.0-alpha09" class MainActivity : AppCompatActivity() { private val viewModel: MainViewModel by viewModels()

Slide 91

Slide 91 text

WorkManager • On-demand initialization • 必要になったときだけ WorkManager を初期化 • WorkManage 2.1.0 alpha • Google Play Services integration • totally optional, No API changes • Coming soon

Slide 92

Slide 92 text

WorkManager • Robolectric support • stable • Worker unit testing • TestWorkerBuilder, TestListenableWorkerBuilder • 2.1.0 alpha

Slide 93

Slide 93 text

Room • Coroutines support

Slide 94

Slide 94 text

No content

Slide 95

Slide 95 text

Room • Coroutines support • Full Text Search

Slide 96

Slide 96 text

No content

Slide 97

Slide 97 text

No content

Slide 98

Slide 98 text

Room • Coroutines support • Full Text Search • DatabaseView

Slide 99

Slide 99 text

No content

Slide 100

Slide 100 text

No content

Slide 101

Slide 101 text

次の version の Paging では... • エラー処理含めた built in のネットワークサポート • headers & footers • RxJava & Coroutines 対応の改善 • Soon in EAP, alpha this summer

Slide 102

Slide 102 text

次の version の Navigation では... • ViewModels scoped Navigation Graphs • Navigated by URI • Dialog destinations • Future: Better support for dynamic features

Slide 103

Slide 103 text

Google Play

Slide 104

Slide 104 text

• What's New in Google Play (Google I/O'19) • https://www.youtube.com/watch?v=o_oUeciBknU • Customizable Delivery with the App Bundle and Easy Sharing of Test Builds (Google I/O'19) • https://www.youtube.com/watch?v=flhib2krW7U Google Play sessions

Slide 105

Slide 105 text

App Bundle • apk とは別の publishing format • 拡張⼦は .aab • デバイスが必要とするリソースだけをアプリにダウンロード&インストー ル • Google のアプリも多くが App Bundle に移⾏した

Slide 106

Slide 106 text

What's New in Google Play (Google I/O'19) https://www.youtube.com/watch?v=o_oUeciBknU

Slide 107

Slide 107 text

What's New in Google Play (Google I/O'19) https://www.youtube.com/watch?v=o_oUeciBknU

Slide 108

Slide 108 text

No content

Slide 109

Slide 109 text

In-app update • アプリからアップデートをトリガーする • アプリから離れることなくアップデート可能 • https://developer.android.com/guide/app-bundle/in-app-updates • update flow : Immediate or Flexible

Slide 110

Slide 110 text

Customizable Delivery with the App Bundle and Easy Sharing of Test Builds (Google I/O'19) https://www.youtube.com/watch?v=flhib2krW7U

Slide 111

Slide 111 text

Customizable Delivery with the App Bundle and Easy Sharing of Test Builds (Google I/O'19) https://www.youtube.com/watch?v=flhib2krW7U

Slide 112

Slide 112 text

Conditional delivery • dynamic feature modules を指定した条件を満たすデバイスにのみ配信 する機能 • Country(国), minSDK version, Device の機能(カメラがあるかな ど)で指定できる • https://developer.android.com/studio/projects/dynamic-delivery/ conditional-delivery

Slide 113

Slide 113 text

On-demand delivery • 特定の dynamic feature module を on-demand にインストール・削除 する機能 • https://developer.android.com/studio/projects/dynamic-delivery/ on-demand-delivery • 例)Contact support 機能を必要になってからインストールする • 例)オンボーディング処理が終わったら、オンボーディング機能を削除す る

Slide 114

Slide 114 text

Customizable Delivery with the App Bundle and Easy Sharing of Test Builds (Google I/O'19) https://www.youtube.com/watch?v=flhib2krW7U

Slide 115

Slide 115 text

Internal app sharing • apk や App Bundle を Google Play にアップロードすることで、リンク 経由で社内チームやテスターがダウンロード&インストールできる機能 • https://support.google.com/googleplay/android-developer/ answer/9303479 New Tools to Optimize Your App's Size and Boost Installs on Google Play (Google I/O'19) https://www.youtube.com/watch?v=rEuwVWpYBOY

Slide 116

Slide 116 text

Internal app sharing • アップロードする⼈は Play Console のメンバーでなくてもよい • production key で署名しなくてもよい = デバッグビルドでもよい • version code 制限がない • メーリングリストで配信先を制限 or リンクを知っている⼈は誰でもダウ ンロード可能

Slide 117

Slide 117 text

Internal app sharing • https://play.google.com/apps/publish/internalappsharing/ にビルド した apk/aab をアップロード • ⽣成されたリンクからアプリをインストールできる • インストールする側は PlayStore アプリで開発者モードになり、 Internal app sharing を有効にする必要がある

Slide 118

Slide 118 text

Customizable Delivery with the App Bundle and Easy Sharing of Test Builds (Google I/O'19) https://www.youtube.com/watch?v=flhib2krW7U

Slide 119

Slide 119 text

What's New in Google Play (Google I/O'19) https://www.youtube.com/watch?v=o_oUeciBknU 似たアプリを選択して、Google Play Console でベンチマークを⽐較できるようになった

Slide 120

Slide 120 text

What's New in Google Play (Google I/O'19) https://www.youtube.com/watch?v=o_oUeciBknU metrics が新しくなった

Slide 121

Slide 121 text

What's New in Google Play (Google I/O'19) https://www.youtube.com/watch?v=o_oUeciBknU 新しい平均 rating は、より最近の rating に重みを持たせるようになる

Slide 122

Slide 122 text

What's New in Google Play (Google I/O'19) https://www.youtube.com/watch?v=o_oUeciBknU レビューへの返信⽂をサジェストしてくれる

Slide 123

Slide 123 text

Installs on Google Play • Google Play でのインストールに関する改善 • Uninstall Wizard • Optimized downloads • Optimized native libraries • Peer-to-peer • Data at no cost

Slide 124

Slide 124 text

Installs on Google Play • New Tools to Optimize Your App's Size and Boost Installs on Google Play (Google I/O'19) • https://www.youtube.com/watch?v=rEuwVWpYBOY

Slide 125

Slide 125 text

アプリをインストールしようとして容量が⾜りなくて失敗したときに、アプリ のサイズや使⽤履歴に応じてアンインストールする他のアプリをサジェスト

Slide 126

Slide 126 text

No content

Slide 127

Slide 127 text

ゲームエンジンなど共通する native libraries を共有して、アプリ固有の部分 だけダウンロード

Slide 128

Slide 128 text

https://android-developers.googleblog.com/2018/10/offline-p2p- installs-beta.html

Slide 129

Slide 129 text

No content

Slide 130

Slide 130 text

App size • App upload size • App download size → インストール率に影響する • App size on device [new] → アンインストール率に影響する

Slide 131

Slide 131 text

Google Play の統計に app download size と app size on device が含まれる ようになった

Slide 132

Slide 132 text

Google Play console に app download size と app size on device に関する 情報が含まれるようになった

Slide 133

Slide 133 text

Google Play console でアプリのサイズ (app download size と app size on device) の時間変化が⾒れるようになった

Slide 134

Slide 134 text

Google Play console でアプリのサイズの構成が⾒れるようになった

Slide 135

Slide 135 text

Google Play Billing

Slide 136

Slide 136 text

Play Billing • What's New with Google Play Billing (Google I/O'19) • https://www.youtube.com/watch?v=N4004Set4F8

Slide 137

Slide 137 text

Play Billing Library 2.0 • Kotlin と C++ 版は coming soon • Billing Library が official way に • AIDL/Billing Library 1.x は deprecated • https://developer.android.com/google/play/billing/ billing_library_releases_notes

Slide 138

Slide 138 text

What's New with Google Play Billing (Google I/O'19) https://www.youtube.com/watch?v=N4004Set4F8 コンビニ払いや銀⾏振込など

Slide 139

Slide 139 text

What's New with Google Play Billing (Google I/O'19) https://www.youtube.com/watch?v=N4004Set4F8 Install 時に Subscribe(フリートライアル → Subscribe) するプランが追加された

Slide 140

Slide 140 text

Acknowledge all purchases • ⾮消費型アイテムの購⼊確認がとれたら、Google Play 側に acknowledge を送らないといけなくなった • 3⽇以内に acknowledge を送らないと返⾦される

Slide 141

Slide 141 text

Consistent Offers • Play の購⼊フローで promotion 価格を表⽰し、それで購⼊できるように なる

Slide 142

Slide 142 text

What's New with Google Play Billing (Google I/O'19) https://www.youtube.com/watch?v=N4004Set4F8 購⼊カートが出てくるまでの 時間が短くなった

Slide 143

Slide 143 text

What's New with Google Play Billing (Google I/O'19) https://www.youtube.com/watch?v=N4004Set4F8 in-app での購⼊に任意の data を添付できるようになった A/B テストや、ユーザーの identify に便利

Slide 144

Slide 144 text

What's New with Google Play Billing (Google I/O'19) https://www.youtube.com/watch?v=N4004Set4F8

Slide 145

Slide 145 text

Subscription • Subscribe & Install • Install 時に Subscribe(フリートライアル → Subscribe) するプランが追加された

Slide 146

Slide 146 text

Subscription • Subscribe & Install • one time promotion codes •

Slide 147

Slide 147 text

Google Play Console から Subscribe ⽤の promotion code を発⾏できるようになった

Slide 148

Slide 148 text

Subscription • Subscribe & Install • one time promotion codes • Pause subscription • Subscription を Pause できるようになっ た(今まではキャンセルのみ)

Slide 149

Slide 149 text

Subscription • Subscribe & Install • one time promotion codes • Pause subscription • Cancel Survey report on console •

Slide 150

Slide 150 text

Subscription がキャンセルされた時のレポートが Google Play Console 上で⾒えるようになった(いままでは API 経由のみ)

Slide 151

Slide 151 text

Subscription • Subscribe & Install • one time promotion codes • Pause subscription • Cancel Survey report on console • Longer Grace Period 課⾦処理の失敗で Subscription が⽌まった ときの猶予期間を⻑くできるようになった (今までは 3 - 7⽇)

Slide 152

Slide 152 text

トレンドは Modularize ?

Slide 153

Slide 153 text

Modularize sessions • Build a Modular Android App Architecture (Google I/O'19) • https://www.youtube.com/watch?v=PZBg5DIzNww • Build Testable Apps for Android (Google I/O'19) • https://www.youtube.com/watch?v=VJi2vmaQe6w

Slide 154

Slide 154 text

Thank you