Slide 1

Slide 1 text

Overview of Google I/O 2019 for Android ͋Μ͍͟Ώ͖ (@yanzm) Google I/O Extended in Shinshu

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 fi rst!

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 • Noti fi cation Action • Dark Theme • Magni fi er • 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 • ը໘ʹΞΠίϯ͕ fl oating Ͱදࣔ͞Εɺλοϓ͢Δͱ 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/magni fi er ͷ಺༰͸ݱ࣌఺ʢ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/pro fi le/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 fi le ʹ෼཭ • ࠷ॳͱ࠷ޙͷ 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 ͸ con fi guration ͷมߋʢྫ͑͹ը໘ճసʣʹΑΔ࠶ੜ੒Λ ௒͑ͯΠϯελϯε͕อ࣋͞ΕΔ • 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= fl hib2krW7U 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 fl ow : 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= fl hib2krW7U

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= fl hib2krW7U

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= fl hib2krW7U

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= fl hib2krW7U

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/of fl ine-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 ͕ of fi cial 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