Slide 1

Slide 1 text

Insert date here Droidcon 2021 summary @bkosarzycki

Slide 2

Slide 2 text

Droidcon Berlin 2021 2

Slide 3

Slide 3 text

Women in Computer Science 3

Slide 4

Slide 4 text

Women in Computer Science Margaret Hamilton She was director of the Software Engineering Division of the MIT Instrumentation Laboratory, which developed on-board flight software for NASA's Apollo program. Kathleen Booth Kathleen Booth wrote the first assembly language and designed the assembler and autocode for the first computer systems at Birkbeck College, University of London Barbara Liskov Liskov has led many significant projects, including the Venus operating system, a small, low-cost timesharing system; the design and implementation of CLU; The syntax of CLU was based on ALGOL, Argus, the first high-level language to support implementation of distributed programs and to demonstrate the technique of promise pipelining; and Thor, an object-oriented database system. Ada Lovelace Methematician. Ada Lovelace emphasised the difference between the Analytical Engine and previous calculating machines, particularly its ability to be programmed to solve problems of any complexity Grace Hopper Hopper's belief that programs should be written in a language that was close to English (rather than in machine code or in languages close to machine code, such as assembly languages) was captured in the new business language, and COBOL went on to be the most ubiquitous business language to date. 4

Slide 5

Slide 5 text

5 Droidcon superstar Chet Haase

Slide 6

Slide 6 text

6

Slide 7

Slide 7 text

build cache 7

Slide 8

Slide 8 text

Gradle profile 8

Slide 9

Slide 9 text

Gradle doctor 9 Nelson Osacky, Soundcloud -

Slide 10

Slide 10 text

Gradle doctor 10

Slide 11

Slide 11 text

Gradle doctor 11 What about our 16 GB mackbooks?

Slide 12

Slide 12 text

Gradle doctor 12

Slide 13

Slide 13 text

Gradle doctor 13 Check how many daemons you’re using:

Slide 14

Slide 14 text

Gradle doctor 14 Check how many daemons you’re using:

Slide 15

Slide 15 text

Gradle doctor 15 Check Java home:

Slide 16

Slide 16 text

build cache 16

Slide 17

Slide 17 text

build cache 17

Slide 18

Slide 18 text

Gradle doctor 18 More about Gradle doctor here:

Slide 19

Slide 19 text

build cache 19 MORE INFO: https://speakerdeck.com/runningcode/what-is-the-android-cache-fix-plugin-and-why-do-i-need-t o-solve-my-own-cache-misses?slide=14 https://medium.com/@cesarmcferreira/using-gradle-build-cache-server-73d7680baf2a https://stackoverflow.com/questions/60528123/how-to-disable-gradles-local-build-cache-but-keep -remote-cache-enabled

Slide 20

Slide 20 text

Idiomatic Unit Testing - Kotlin Similar to: https://phauer.com/2018/best-practices-unit-testing-kotlin/#recap-what-is-idiomatic-kotlin-c ode TLDR: don’t use static variables; favour val instead of var and try to write common logic between test suites 20

Slide 21

Slide 21 text

Jetpack Compose 21

Slide 22

Slide 22 text

Jetpack Compose 22

Slide 23

Slide 23 text

Jetpack Compose - samples 23 https://github.com/android/compose-samples

Slide 24

Slide 24 text

Jetpack Compose - testing 24 - don’t have to put Id’s - jetpack preview performance has been greatly improved

Slide 25

Slide 25 text

Jetpack Compose - testing 25

Slide 26

Slide 26 text

Jetpack Compose - testing - we can add additional tags for testing 26

Slide 27

Slide 27 text

Jetpack Compose - useUnmergedTree - then we can ui-test using these tags more here: https://developer.android.com/jetpack/compose/semantics 27

Slide 28

Slide 28 text

Jetpack Compose - testing 28

Slide 29

Slide 29 text

ATD - Automated Test Devices 29

Slide 30

Slide 30 text

ATD - Automated Test Devices API for Android Emulators: 30 Gradle Managed Devices (GMD) - more info here

Slide 31

Slide 31 text

ATD - Automated Test Devices 31

Slide 32

Slide 32 text

Jetpack compose - lottiefiles ? Do you know any alternative to lottiefiles which can be used with Compose? > you don’t need one - Lottie already supports Compose LINK 32 dependencies { implementation 'com.airbnb.android:lottie-compose:1.0.0-alpha02' }

Slide 33

Slide 33 text

Josef Raska - Module Rules [gradle] Reference: https://github.com/jraska/modules-graph-assert/blob/master/presentation/REFERENCES.md GRAPH ASSERT plugin 33

Slide 34

Slide 34 text

Josef Raska - Module Rules [gradle] 34

Slide 35

Slide 35 text

Josef Raska - Module Rules [gradle] 35 SAMPLE

Slide 36

Slide 36 text

Josef Raska - Module Rules [gradle] 36

Slide 37

Slide 37 text

Flutter: Animation examples 37

Slide 38

Slide 38 text

Flutter: Animation examples 38

Slide 39

Slide 39 text

Flutter: Animation examples 39

Slide 40

Slide 40 text

Flutter: Animation examples 40

Slide 41

Slide 41 text

Flutter: Animation examples Emily Fortuna - Animation - Flutter Europe https://www.youtube.com/watch?v=wnARLByOtKA 41

Slide 42

Slide 42 text

Flutter: Animation examples Web app: https://roszkowski.dev/animations/ Pdf: https://github.com/orestesgaolin/ animations_samples/blob/master/docs/ presentation.pdf 42

Slide 43

Slide 43 text

Don’t kill my app 43

Slide 44

Slide 44 text

Don’t kill my app - benchmark 44

Slide 45

Slide 45 text

Android 12 - Exoplayer 45 https://github.com/google/ExoPlayer/releases/tag/r2.16.0

Slide 46

Slide 46 text

Android 12 - Exoplayer 46

Slide 47

Slide 47 text

THANK YOU @bkosarzycki