Slide 1

Slide 1 text

@soulesidibe Android App Bundle

Slide 2

Slide 2 text

App Release Process

Slide 3

Slide 3 text

App Release Process • Coding

Slide 4

Slide 4 text

App Release Process • Coding • Build a signed APK

Slide 5

Slide 5 text

App Release Process • Coding • Build a signed APK • Upload to Google Play console

Slide 6

Slide 6 text

App Release Process • Coding • Build a signed APK • Upload to Google Play console • Deploy to users

Slide 7

Slide 7 text

App Release Process • Coding • Build a signed APK • Upload to Google Play console • Deploy to users • !

Slide 8

Slide 8 text

App Release Process • Coding • Build a signed APK • Upload to Google Play console • Deploy to users • ! This works for years!

Slide 9

Slide 9 text

App Release Process + Developer Friendly + Secure + Easy distribution - Lose signing key - Apk size bigger

Slide 10

Slide 10 text

App Release Process + Developer Friendly + Secure + Easy distribution - Lose signing key - Apk size bigger

Slide 11

Slide 11 text

Multiple APKs to the rescue • Upload multiple apk • 1 configuration 1 apk • Same Package name and same signing key • Must have different versionCode • A configuration should be unique

Slide 12

Slide 12 text

Multiple APKs to the rescue • Upload multiple apk • 1 configuration 1 apk • Same Package name and same signing key • Must have different versionCode • A configuration should be unique But not developer friendly

Slide 13

Slide 13 text

Android App Bundle The solution

Slide 14

Slide 14 text

“An Android App Bundle is a new upload format that includes all your app’s compiled code and resources, but defers APK generation and signing to Google Play.”

Slide 15

Slide 15 text

App Bundle “Fat” APK

Slide 16

Slide 16 text

New App Release Process Android App Bundle format

Slide 17

Slide 17 text

Base APK • Common code and resources • Basic features of you app • Downloaded first (be careful about the size)

Slide 18

Slide 18 text

Dynamic feature APKs • Code and resources for a Feature • Google Play generates split APKs • Installed on demand (Play Core Library) • Depends on base APKs

Slide 19

Slide 19 text

Configuration APKs • 1 device configuration !=> 1 APK • A configuration? Screen size API level CPU Architecture Language

Slide 20

Slide 20 text

Configuration APKs • 1 device configuration !=> 1 APK • A configuration? Screen size API level CPU Architecture Language Google Play automatically generates configuration APKs for you.

Slide 21

Slide 21 text

App Bundle Split APKs

Slide 22

Slide 22 text

New App Release Process • Coding • Build a signed Android App bundle

Slide 23

Slide 23 text

New App Release Process • Coding • Build a signed Android App bundle • You must use App Sign in by Google

Slide 24

Slide 24 text

New App Release Process • Coding • Build a signed Android App bundle • You must use App Sign in by Google • Upload the AAB file to Play Store Console

Slide 25

Slide 25 text

New App Release Process • Coding • Build a signed Android App bundle • You must use App Sign in by Google • Upload the AAB file to Play Store Console • Google Play generates split APKs for you

Slide 26

Slide 26 text

New App Release Process • Coding • Build a signed Android App bundle • You must use App Sign in by Google • Upload the AAB file to Play Store Console • Google Play generates split APKs for you • Dynamic delivery

Slide 27

Slide 27 text

Why?

Slide 28

Slide 28 text

Why? • Easy to switch to app bundle

Slide 29

Slide 29 text

Why? • Easy to switch to app bundle • ./gradlew assembleRelease becomes ./gradlew bundleRelease

Slide 30

Slide 30 text

Why? • Easy to switch to app bundle • ./gradlew assembleRelease becomes ./gradlew bundleRelease • Small APK size

Slide 31

Slide 31 text

Why? • Easy to switch to app bundle • ./gradlew assembleRelease becomes ./gradlew bundleRelease • Small APK size • Secure

Slide 32

Slide 32 text

Why? • Easy to switch to app bundle • ./gradlew assembleRelease becomes ./gradlew bundleRelease • Small APK size • Secure • Dynamic Features

Slide 33

Slide 33 text

HOW? • ./gradlew bundleDebug

Slide 34

Slide 34 text

HOW? • ./gradlew bundleRelease • generate …build/out/release/app.aab

Slide 35

Slide 35 text

HOW? • ./gradlew bundleDebug • generate …build/out/debug/app.aab • Bundletool

Slide 36

Slide 36 text

That’s it! @soulesidibe

Slide 37

Slide 37 text

Links •Official doc !=> https:!//bit.ly/2Knmc28 •What a new publishing format means for the future of Android !=> https:!//bit.ly/2QZuSjc •Android developer blog !=> https:!//bit.ly/2PYM8F2 •Play Core library !=> https:!//bit.ly/2Pjpla3 •Google IO 18 !=> https:!//bit.ly/2OQgaOM •All About android !=> https:!//bit.ly/2PSf41f