Slide 1

Slide 1 text

Agenda • How to be a better Android developer • Working Remotely

Slide 2

Slide 2 text

How to be a better Android developer

Slide 3

Slide 3 text

Topics • Work with legacy code - Refactor • Write new code - Architecture • Re-inventing Wheels - Open Source Library • Learn and grow - Nevin’s Choice

Slide 4

Slide 4 text

Not rewrite Refactor

Slide 5

Slide 5 text

Refactor • For - Performance, Maintenance , Flexibility • When - Fix bug, add feature, code review • How - Write Test First • Books : working effetely with legacy code & Refactor

Slide 6

Slide 6 text

Refactor • Long Method • Highly Coupled

Slide 7

Slide 7 text

Bad smell • Long Method • if condition • switch statement • too many comment • for loop

Slide 8

Slide 8 text

Testing • Unit Test • Instrumentation / Integration Test

Slide 9

Slide 9 text

Espresso • https://caster.io/episodes/episode-1-android- testing-getting-started-with-espresso-2-0/ • Test Runner • Rule • TDD

Slide 10

Slide 10 text

Adding a indirect layer Architecture

Slide 11

Slide 11 text

Architecture • Why extra layer? • Find bugs easily • Fix bug easily • Add feature easily • Reduce bug / regression

Slide 12

Slide 12 text

Architecture • To enable sharing of logic • To explain intention and implementation separately • To isolate change

Slide 13

Slide 13 text

Architecture • No architecture • MVP • Clean Architecture • Redux

Slide 14

Slide 14 text

Package Structure • Package by component • Activity / Fragment • Network • Utils.. • Package by feature • Add note • List note • View note detail

Slide 15

Slide 15 text

MVP • Model View Presenter • Model • View • Presenter

Slide 16

Slide 16 text

MVP • Class Diagram • Sequence Diagram • Case Study - Code Review Live

Slide 17

Slide 17 text

Clean Architecture

Slide 18

Slide 18 text

Redux / Flux

Slide 19

Slide 19 text

Architecture • MVP • Clean Architecture • Redux / Flux

Slide 20

Slide 20 text

Joy to the world Open Source Library

Slide 21

Slide 21 text

Re-Inventing Wheel • Design support / AppCompat library • Butterknife • Dagger • Retrofit • Picasso • rxJava (rxRelay,rxAndroid) • Retrolambda • Realm

Slide 22

Slide 22 text

Re-Inventing Wheel • Install Code Snippet • Usage

Slide 23

Slide 23 text

In your commute, when you do the dishes Nevin’s Choice

Slide 24

Slide 24 text

Learn & Grow • Android Weekly • Fragmented Podcast • Testing • Refactoring • Paid Training • Classic books

Slide 25

Slide 25 text

Sample Repo • u2020 • android-testing • ioschec

Slide 26

Slide 26 text

Classic Books • Refactoring • Effective Java • The Mythical Man Month • Apprenticeship Patterns • Joel On Software / More … • Rework

Slide 27

Slide 27 text

Bonus: Things I wish I knew • Learn a different language / paradigm • Read Android Source Code instead of SO • Join Conferences and Meetups • Conduct Public Speaking ( Conference oriented learning)

Slide 28

Slide 28 text

犢অమ蚤य़疑藯扖 犢మᥝ藯 ̿౯অమ褛౯ᇁᇁૡ֢̀ 薥ৼ݋珿絑ह 籧蝨Top Developer 磧మᥝ蝱݄ጱૡ֢肬䁰

Slide 29

Slide 29 text

Working Remotely and make your family happy http://fragmentedpodcast.com/episodes/036/

Slide 30

Slide 30 text

Benefit - for employee • Remote developers love their job (Stackoverflow developer survey 2016 ) • Commute - Free • More control in life

Slide 31

Slide 31 text

Benefit - for employer • Bigger talent pool • You help the world • 37 Signal

Slide 32

Slide 32 text

Tips • Communicate 4 times harder • Networking • Growth • Source : remoteok.io , angelist.co

Slide 33

Slide 33 text

How? • Its all mental.

Slide 34

Slide 34 text

Nevin Chen http://nevinchen.com