Slide 1

Slide 1 text

Saúl Molinero Leaks introducer and Android Developer Android dev tools & workflows MAD · NOV 22-23 · 2019 @_saulmm

Slide 2

Slide 2 text

Vigo, Galicia Saúl Molinero Saúl Molinero @_saulmm

Slide 3

Slide 3 text

MAD · NOV 22-23 · 2019 @_saulmm

Slide 4

Slide 4 text

Runtime tools MAD · NOV 22-23 · 2019 @_saulmm

Slide 5

Slide 5 text

https://github.com/JakeWharton/pidcat Pidcat

Slide 6

Slide 6 text

https://github.com/Genymobile/scrcpy APK dragger Drag & drop apks to install Video recorder scrcpy --record file.mp4 SCRPY MAD · NOV 22-23 · 2019 @_saulmm

Slide 7

Slide 7 text

Stetho Database inspector Preferences inspector Network inspector View hierarchy http://facebook.github.io/stetho/ MAD · NOV 22-23 · 2019 @_saulmm

Slide 8

Slide 8 text

Flipper Crash reporter Logcat Leak Canary Plugin Sandbox plugin Standalone app Network plugin iOS compatible https://fbflipper.com/ MAD · NOV 22-23 · 2019

Slide 9

Slide 9 text

@_saulmm MAD · NOV 22-23 · 2019

Slide 10

Slide 10 text

DeepLink plugin Flipper https://fbflipper.com/ MAD · NOV 22-23 · 2019 @_saulmm

Slide 11

Slide 11 text

Flipper Databases https://fbflipper.com/ MAD · NOV 22-23 · 2019 @_saulmm

Slide 12

Slide 12 text

Flipper Preferences https://fbflipper.com/ MAD · NOV 22-23 · 2019 @_saulmm

Slide 13

Slide 13 text

Profilers & Developer Options MAD · NOV 22-23 · 2019 @_saulmm

Slide 14

Slide 14 text

CPU

Slide 15

Slide 15 text

MEMORY

Slide 16

Slide 16 text

cpu Network

Slide 17

Slide 17 text

Charles Map local Map remote Breakpoints Throttling MAD · NOV 22-23 · 2019 @_saulmm

Slide 18

Slide 18 text

Developer tiles MAD · NOV 22-23 · 2019 @_saulmm @_saulmm

Slide 19

Slide 19 text

MAD · NOV 22-23 · 2019 @_saulmm Layout bounds

Slide 20

Slide 20 text

MAD · NOV 22-23 · 2019 @_saulmm Don’t keep activities

Slide 21

Slide 21 text

Smallest Width MAD · NOV 22-23 · 2019 @_saulmm

Slide 22

Slide 22 text

GPU Rendering MAD · NOV 22-23 · 2019 @_saulmm

Slide 23

Slide 23 text

Overdraw Better Improvable https://developer.android.com/studio/profile/inspect-gpu-rendering MAD · NOV 22-23 · 2019

Slide 24

Slide 24 text

cpu Emulator snapshots https://developer.android.com/studio/run/emulator $ emulator @Nexus5 -snapshot db_v13 MAD · NOV 22-23 · 2019 @_saulmm

Slide 25

Slide 25 text

Emulator Location MAD · NOV 22-23 · 2019 @_saulmm

Slide 26

Slide 26 text

cpu A. S. Layout Inspector cmd + a ‘Layout inspector’ MAD · NOV 22-23 · 2019 @_saulmm

Slide 27

Slide 27 text

Android Studio 4.0 Jetpack Compose Support Motion Editor Smart ProGuard editor Kotlin DSL script (kts) IntelliJ 2019.3 MAD · NOV 22-23 · 2019 @_saulmm

Slide 28

Slide 28 text

New layout inspector cmd + a ‘Layout inspector’ MAD · NOV 22-23 · 2019 @_saulmm

Slide 29

Slide 29 text

Passive tools MAD · NOV 22-23 · 2019 @_saulmm

Slide 30

Slide 30 text

Intellij Plugins: ADB idea uninstall clear app and restart kill app revoke permissions start app with debugger https://plugins.jetbrains.com/plugin/7380-adb-idea MAD · NOV 22-23 · 2019 @_saulmm

Slide 31

Slide 31 text

Intellij Plugins: Presentation assistant https://plugins.jetbrains.com/plugin/7345-presentation-assistant MAD · NOV 22-23 · 2019

Slide 32

Slide 32 text

Intellij Plugins: Nyan cat https://plugins.jetbrains.com/plugin/8575-nyan-progress-bar MAD · NOV 22-23 · 2019 @_saulmm

Slide 33

Slide 33 text

IntelliJ Plugin, Material theme UI MAD · NOV 22-23 · 2019

Slide 34

Slide 34 text

VS Code, Github Extension MAD · NOV 22-23 · 2019 @_saulmm

Slide 35

Slide 35 text

VS Code, Night Owl MAD · NOV 22-23 · 2019

Slide 36

Slide 36 text

VS Code, Logcat color Extension MAD · NOV 22-23 · 2019

Slide 37

Slide 37 text

Command line Autojump tool https://github.com/zsh-users/zsh-autosuggestions https://github.com/wting/autojump iTerm2 Oh my zsh with autosuggestions MAD · NOV 22-23 · 2019 @_saulmm

Slide 38

Slide 38 text

Developer tools Screen MAD · NOV 22-23 · 2019

Slide 39

Slide 39 text

Troubleshooting @_saulmm MAD · NOV 22-23 · 2019

Slide 40

Slide 40 text

Firebase Remote Lab. MAD · NOV 22-23 · 2019 @_saulmm

Slide 41

Slide 41 text

MAD · NOV 22-23 · 2019 @_saulmm

Slide 42

Slide 42 text

Crashlytics, logs Lifecycle events Background work results Important user actions MAD · NOV 22-23 · 2019 @_saulmm

Slide 43

Slide 43 text

Crashlytics Logs MAD · NOV 22-23 · 2019 @_saulmm

Slide 44

Slide 44 text

Crashlytics Logs MAD · NOV 22-23 · 2019 @_saulmm

Slide 45

Slide 45 text

Crashlytics, data MAD · NOV 22-23 · 2019 @_saulmm

Slide 46

Slide 46 text

Crashlytics, data MAD · NOV 22-23 · 2019 @_saulmm

Slide 47

Slide 47 text

MAD · NOV 22-23 · 2019 Crashlytics, data @_saulmm

Slide 48

Slide 48 text

Activity shown Network state Free heap Locale Permissions granted … Crashlytics, keys MAD · NOV 22-23 · 2019 @_saulmm

Slide 49

Slide 49 text

Crashlytics Report keys MAD · NOV 22-23 · 2019 @_saulmm

Slide 50

Slide 50 text

Samsung Remote Lab

Slide 51

Slide 51 text

Samsung Remote Lab

Slide 52

Slide 52 text

Samsung Remote Lab

Slide 53

Slide 53 text

Code reviews, Github & Pull Requests @_saulmm MAD · NOV 22-23 · 2019

Slide 54

Slide 54 text

Detekt MAD · NOV 22-23 · 2019

Slide 55

Slide 55 text

Bitrise MAD · NOV 22-23 · 2019 @_saulmm

Slide 56

Slide 56 text

Github As an author - I told how to test and the key parts to review - I made all checks to pass, validators & CIs As a reviewer - As I comment what can be improved I comment what is well done - Our goal is to provide value and learn Code reviews MAD · NOV 22-23 · 2019 @_saulmm

Slide 57

Slide 57 text

Priority low, or high Title validator Starts with feature/ bug/ Description validator #fixes #closes an issue Pull Request validator Assignee and reviewer At least one MAD · NOV 22-23 · 2019 @_saulmm

Slide 58

Slide 58 text

Github labels priority Can’t this PR wait for review? status: Why is this PR stuck? type: feature, bug, refactoring enhancement… MAD · NOV 22-23 · 2019

Slide 59

Slide 59 text

Open on Github cmd + A ‘Open on Github’ // Reference code with ease from A.S / IntelliJ status: {waiting for design, translations} // Why is this PR stuck? type: {feature, bug, refactoring} // What’s the outcome of this PR? MAD · NOV 22-23 · 2019 @_saulmm @_saulmm

Slide 60

Slide 60 text

Git flow feature branches develop & master https://danielkummer.github.io/git-flow-cheatsheet https://nvie.com/posts/a-successful-git-branching-model/ release & hotfix branches MAD · NOV 22-23 · 2019 @_saulmm

Slide 61

Slide 61 text

$ git town hack // Creates an up to date branch from main $ git town sync // Updates ongoing branch with main ongoing changes and push $ git town new-pull-request // Pushes latest changes and creates a pull request git town MAD · NOV 22-23 · 2019 @_saulmm

Slide 62

Slide 62 text

Fork MAD · NOV 22-23 · 2019 @_saulmm @_saulmm

Slide 63

Slide 63 text

Thanks! @_saulmm