Slide 1

Slide 1 text

UNDERSTANDING ANDROID BUILD VARIANTS

Slide 2

Slide 2 text

Donn Felker @donnfelker 4 Time Android Book Author Co-Host of Fragmented Podcast donnfelker.com | caster.io

Slide 3

Slide 3 text

BUILD VARIANTS ALL UP IN YOUR GRILL

Slide 4

Slide 4 text

Create Flexible Runtime Environments LIKE WHOA

Slide 5

Slide 5 text

No, for real, what are they? Build variants allow you to quickly create different versions of your app from the same source code. Kinda.

Slide 6

Slide 6 text

Build variants facilitate composability within the Android build system.

Slide 7

Slide 7 text

Yo, wheres the CODE?!?! here: github.com/casterio

Slide 8

Slide 8 text

simple example Creating a debug package branch: debug-suffix

Slide 9

Slide 9 text

Crazy, I know. Ok, it's not really that impressive.

Slide 10

Slide 10 text

app-debug.apk more like lame-debug.apk lets fix that branch: change-app-name

Slide 11

Slide 11 text

WickedCool-debug.apk Much better. Moving on ...

Slide 12

Slide 12 text

Mmm Product Flavors Free and Pro Versions

Slide 13

Slide 13 text

Why do I need free and pro versions?

Slide 14

Slide 14 text

Some people like to watch their money

Slide 15

Slide 15 text

Nah, I'm kidding. Its about exposure and conversions

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

We all love free stuff. If you like it, first ones on the house. AKA: Trials (aka: drug dealer model)

Slide 18

Slide 18 text

Free and Paid Versions branch: product-flavors

Slide 19

Slide 19 text

I know, right? Ok, maybe just a little

Slide 20

Slide 20 text

Android Manifest Values Update the manifest at build time with the manifest merger branch: manifest-placeholders

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

Release / Debug Composability

Slide 23

Slide 23 text

Say what? Debug only logging/etc Release only Crashlytics Logging

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Custom Resources! Different layouts, icons, etc at runtime branch: custom-resources

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

There is a lot more, but that should get you going in the right direction.

Slide 28

Slide 28 text

@donnfelker thanks