Slide 1

Slide 1 text

Sebastiano Poggi java 8 and android and you

Slide 2

Slide 2 text

java 8

Slide 3

Slide 3 text

java 8?

Slide 4

Slide 4 text

yes, but… java 8?

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

java 8 added in android 7.0 no more harmony switched to openjdk partial support* *varies by os version

Slide 7

Slide 7 text

java 8 best case scenario (api 24+) lambdas and method references java.util.function streaming and reflection apis repeatable annotations default and static interface methods

Slide 8

Slide 8 text

java 8 on pre-24 lambdas and method references java.util.function runtime crash! streaming and reflection apis repeatable annotations default and static interface methods

Slide 9

Slide 9 text

jack

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

jack new compiling toolchain no javac/dx, one tool to rule them all .jack bytecode as intermediate language jill handles legacy .class files supports java 8 language features

Slide 12

Slide 12 text

jack? yes, but…

Slide 13

Slide 13 text

jack no .class means no java tooling no *guard, no mockito, no jacoco... no instant run support in alpha since announced and most importantly…

Slide 14

Slide 14 text

DEPRECATED

Slide 15

Slide 15 text

very cool!

Slide 16

Slide 16 text

very cool! yes, but…

Slide 17

Slide 17 text

what does that mean?

Slide 18

Slide 18 text

the future likely to match jack java 8 support language features: partial backport new api: no backport basically like using retrolambda we can keep our tooling

Slide 19

Slide 19 text

under the hood desugarer from bazel backports java 8 features bytecode manipulation anon inner classes for lambdas again, just like retrolambda (ish)

Slide 20

Slide 20 text

source: https://realm.io/news/360andev-jake-wharton-java-hidden-costs-android/

Slide 21

Slide 21 text

…questions