Slide 1

Slide 1 text

November 2nd,, 2016 Improving Productivity while developing in Android @MedellinAndroid MeetUp

Slide 2

Slide 2 text

Improving productivity while developing in Android Carlos Daniel Munoz I. - Android Dev at Huge @MedellinAndroid November 2, 2016

Slide 3

Slide 3 text

1. Developing in Android 2. About the method count 3. Inspections to analyze traces 4. Optimizations 5. Assets 6. Builds 7. Keymaps 8. Libs & plugins Agenda

Slide 4

Slide 4 text

The only way to fast is to go well ( The higher the quality, the faster you go )

Slide 5

Slide 5 text

5 Developing in Android • It is like waves • How many projects • Continuously learning • A few things I have learned • Working with team members: Code Reviews! Android Labs! • Having proper toolset Resources: ● Android Developers Official ● Stack Overflow ● Medium

Slide 6

Slide 6 text

6 Method Count • Methods Count ● APK method count

Slide 7

Slide 7 text

7 Inspections • Stheto → Debug → BuildTypes → JS ● Leak Canary

Slide 8

Slide 8 text

8 Assets • Android Asset Studio → Action Bar → App icon → SVG → Nine patch ● Material Design Icons ● Material Palette → XML → Png

Slide 9

Slide 9 text

9 Builds ● Buck → High performance build tool ● Gradle please ● Proguard → Optimizing bytecode

Slide 10

Slide 10 text

10 Emulators ● Genymotion ○ External and fast ○ Virtualbox ○ Free ○ Optimized resources

Slide 11

Slide 11 text

11 Some optimizations ● Merged Manifiest Viewer ○ This tool will show how our AndroidManifest merges with our project dependencies based on build types, flavors, and variants.

Slide 12

Slide 12 text

12 Some optimizations ● Instant Run ○ Run/debug ○ Rerun ○ Run > Clean and Rerun ● JRebel ● Build gradle is too slow? → ./gradlew --stop ● Measure Execution Time

Slide 13

Slide 13 text

13 UI optimizing ● Pixel Perfect - Youtube ● Hierarchy Viewer

Slide 14

Slide 14 text

14 UI optimizing ● Layout Bounds ○ Developer Options ● Surface Updates

Slide 15

Slide 15 text

15 Give a shit!

Slide 16

Slide 16 text

16 Other good practices ● Crashlytics → Crash reporting solution ○ Spend less time finding crashes ○ When app is getting bigger ○ Dependency in build + API Key + Call in Application/Base Activity class + watch the report → Done! ● Keep testing on various OS versions ○ Min SDK? ○ Max SDK? ○ Backgrounds, shadows, SVGs ■ IN Android Kitkat 4.4.4 no SVGs but a picture ● Formatting code for a better reading - Android Square (Code Style) ● Lint tool Genymotion :)

Slide 17

Slide 17 text

17 Keymaps / Shortcuts ● Cmd + Shift A (Mega power!) ● Commit** ● Alt+Enter ● Command+Shift+k ● Ctrl+Enter (Generate) ● Alt+Enter (Suggestions) ** We can map keys combination to a behavior

Slide 18

Slide 18 text

18 Some Dev libraries & plugins ● Picasso or Glide ● RxJava for Async Tasks or Keep each async task as a separate class :( ● Use ConstraintsLayout to flatten your view hierarchy.* ● Use plugins like Parcelable: ○ Android Studio -> Preferences -> Plugins -> "Parcelable" (Repositori - Install * Currently in beta 2 version

Slide 19

Slide 19 text

...I’m not the best software developer, I’m a good software developer with good practices...

Slide 20

Slide 20 text

Questions?

Slide 21

Slide 21 text

September 2016 45 Main St #220 BKLN / 718 625 4843 / hugeinc.com