Transcript
Page 1: Be productive with Android Dev

Be productive with

Androiddevelopment

Alexandre THOMAS - @AleksThomas

jeudi 20 juin 13

Page 2: Be productive with Android Dev

Java/Android@AleksThomas

AndroidKickstartrAndroidAnnotations

jeudi 20 juin 13

Page 3: Be productive with Android Dev

jeudi 20 juin 13

Page 4: Be productive with Android Dev

LazyBe

with Android dev.

jeudi 20 juin 13

Page 5: Be productive with Android Dev

"Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do

something."

Robert Heinlein.jeudi 20 juin 13

Page 6: Be productive with Android Dev

jeudi 20 juin 13

Page 7: Be productive with Android Dev

#1 TIP

jeudi 20 juin 13

Page 8: Be productive with Android Dev

Write lessCode!

#1 TIP

jeudi 20 juin 13

Page 9: Be productive with Android Dev

+Snippets+LIbraries

jeudi 20 juin 13

Page 10: Be productive with Android Dev

+Snippetsjeudi 20 juin 13

Page 11: Be productive with Android Dev

Use existing code

http://www.androidsnippets.com/

jeudi 20 juin 13

Page 12: Be productive with Android Dev

Use existing code

http://www.androidsnippets.com/

androidsnippets

jeudi 20 juin 13

Page 13: Be productive with Android Dev

+LIbrariesjeudi 20 juin 13

Page 14: Be productive with Android Dev

How many

libraries exist?

jeudi 20 juin 13

Page 15: Be productive with Android Dev

jeudi 20 juin 13

Page 16: Be productive with Android Dev

More than

25.000jeudi 20 juin 13

Page 17: Be productive with Android Dev

jeudi 20 juin 13

Page 18: Be productive with Android Dev

jeudi 20 juin 13

Page 19: Be productive with Android Dev

>30.000 = Java

jeudi 20 juin 13

Page 20: Be productive with Android Dev

jeudi 20 juin 13

Page 21: Be productive with Android Dev

jeudi 20 juin 13

Page 22: Be productive with Android Dev

InjectionDagger

AndroidAnnotationsButter-Knife

Roboguice

jeudi 20 juin 13

Page 23: Be productive with Android Dev

InjectionAndroidAnnotations

jeudi 20 juin 13

Page 24: Be productive with Android Dev

HTTP clientOkHttp

Spring RestTemplate

Android HTTP AsyncRetrofit

AndroidAsync

jeudi 20 juin 13

Page 25: Be productive with Android Dev

HTTP clientSpring RestTemplate

jeudi 20 juin 13

Page 26: Be productive with Android Dev

UIActionBarSherlockViewPagerIndicatorNineOldAndroidAndroid-PullToRefresh (x2)MenuDrawerStickyListHeaders

Sliding Menu

jeudi 20 juin 13

Page 27: Be productive with Android Dev

UIActionBarSherlockViewPagerIndicatorNineOldAndroid

jeudi 20 juin 13

Page 28: Be productive with Android Dev

TestsRobolectricRobotium

Event BUsEventBusOtto

jeudi 20 juin 13

Page 29: Be productive with Android Dev

TestsRobolectricRobotium

Event BUsEventBus

jeudi 20 juin 13

Page 30: Be productive with Android Dev

For funAndroidQueryScalaoid

jeudi 20 juin 13

Page 31: Be productive with Android Dev

USE THEM

jeudi 20 juin 13

Page 32: Be productive with Android Dev

ExampleRANDOM

jeudi 20 juin 13

Page 33: Be productive with Android Dev

jeudi 20 juin 13

Page 34: Be productive with Android Dev

nnotationsAndroid

Do more with less CODE.

jeudi 20 juin 13

Page 35: Be productive with Android Dev

nnotationsAndroid

jeudi 20 juin 13

Page 36: Be productive with Android Dev

nnotationsAndroid

Get rid oFboilerplate code.replace itby annotations.

jeudi 20 juin 13

Page 37: Be productive with Android Dev

USUAL WAYUSUAL WAY

view injection.

jeudi 20 juin 13

Page 38: Be productive with Android Dev

USUAL WAYEditText login, pwd;TextView date;ImageView img;...login = (EditText) findViewById(R.id.login);pwd = (EditText) findViewById(R.id.pwd);date = (TextView) findViewById(R.id.date);img = (ImageView) findViewById(R.id.img);USUAL WAY

view injection.

jeudi 20 juin 13

Page 39: Be productive with Android Dev

LAZY WAYLAZY WAYview injection.

jeudi 20 juin 13

Page 40: Be productive with Android Dev

LAZY WAYLAZY WAY

@ViewByIdEditText login, pwd;@ViewByIdTextView date;@ViewByIdImageView img;

view injection.

jeudi 20 juin 13

Page 41: Be productive with Android Dev

USUAL WAYUSUAL WAY

click events.

jeudi 20 juin 13

Page 42: Be productive with Android Dev

USUAL WAYUSUAL WAYButton btn = (Button) findViewById(R.id.btn);

btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {

// do something }

});

click events.

jeudi 20 juin 13

Page 43: Be productive with Android Dev

LAZY WAYLAZY WAYclick events.

jeudi 20 juin 13

Page 44: Be productive with Android Dev

LAZY WAYLAZY WAY

@Clickvoid btnClicked() {

// do something}

click events.

jeudi 20 juin 13

Page 45: Be productive with Android Dev

LAZY WAYLAZY WAY

rest client.

jeudi 20 juin 13

Page 46: Be productive with Android Dev

LAZY WAYLAZY WAY

@Rest(rootUrl = "http://example.com")interface MyRestClient {

@Get("/stuff/{name}") Stuff getStuffByName(String name);

@Post("/stuff") Stuff addStuff(Stuff stuff);

}

rest client.

jeudi 20 juin 13

Page 47: Be productive with Android Dev

See moreandroidannotations.org

jeudi 20 juin 13

Page 48: Be productive with Android Dev

See moreandroidannotations.org

Parleyz.comjeudi 20 juin 13

Page 49: Be productive with Android Dev

jeudi 20 juin 13

Page 50: Be productive with Android Dev

#2 TIP

jeudi 20 juin 13

Page 51: Be productive with Android Dev

Don’t wasteTIME !

#2 TIP

jeudi 20 juin 13

Page 52: Be productive with Android Dev

YourBootstrap

Projectjeudi 20 juin 13

Page 53: Be productive with Android Dev

jeudi 20 juin 13

Page 54: Be productive with Android Dev

BootstrapAndroid

jeudi 20 juin 13

Page 55: Be productive with Android Dev

jeudi 20 juin 13

Page 56: Be productive with Android Dev

ARchetypesMaven

jeudi 20 juin 13

Page 57: Be productive with Android Dev

jeudi 20 juin 13

Page 58: Be productive with Android Dev

KickstartrAndroid

>10.000jeudi 20 juin 13

Page 59: Be productive with Android Dev

KickstartrAndroid

>10.000jeudi 20 juin 13

Page 60: Be productive with Android Dev

Proguard

jeudi 20 juin 13

Page 61: Be productive with Android Dev

Eclipse

Proguard

jeudi 20 juin 13

Page 62: Be productive with Android Dev

Eclipse

ProguardPROGUARD

jeudi 20 juin 13

Page 63: Be productive with Android Dev

Eclipse

ProguardPROGUARD

SAmple COde*jeudi 20 juin 13

Page 64: Be productive with Android Dev

Eclipse

ProguardPROGUARD

SAmple COde*Maven

jeudi 20 juin 13

Page 65: Be productive with Android Dev

jeudi 20 juin 13

Page 66: Be productive with Android Dev

jeudi 20 juin 13

Page 67: Be productive with Android Dev

jeudi 20 juin 13

Page 68: Be productive with Android Dev

+LIBRARIES

jeudi 20 juin 13

Page 69: Be productive with Android Dev

+LIBRARIES+ROBOLECTRIC

jeudi 20 juin 13

Page 70: Be productive with Android Dev

+LIBRARIES+ROBOLECTRIC+Gradle

jeudi 20 juin 13

Page 71: Be productive with Android Dev

+LIBRARIES+ROBOLECTRIC+Gradle+AndroidStudio

jeudi 20 juin 13

Page 72: Be productive with Android Dev

jeudi 20 juin 13

Page 73: Be productive with Android Dev

#3 TIP

jeudi 20 juin 13

Page 74: Be productive with Android Dev

Don’t do itYOURSELF!

#3 TIP

jeudi 20 juin 13

Page 75: Be productive with Android Dev

jeudi 20 juin 13

Page 76: Be productive with Android Dev

Android Asset STUDIO

jeudi 20 juin 13

Page 77: Be productive with Android Dev

jeudi 20 juin 13

Page 78: Be productive with Android Dev

jeudi 20 juin 13

Page 79: Be productive with Android Dev

jeudi 20 juin 13

Page 80: Be productive with Android Dev

jeudi 20 juin 13

Page 81: Be productive with Android Dev

Colorcombos.com

jeudi 20 juin 13

Page 82: Be productive with Android Dev

jeudi 20 juin 13

Page 83: Be productive with Android Dev

Android niceties

jeudi 20 juin 13

Page 84: Be productive with Android Dev

jeudi 20 juin 13

Page 85: Be productive with Android Dev

#4 TIP

jeudi 20 juin 13

Page 86: Be productive with Android Dev

Type less!#4 TIP

jeudi 20 juin 13

Page 87: Be productive with Android Dev

For Mac Users

System preferences

jeudi 20 juin 13

Page 88: Be productive with Android Dev

jeudi 20 juin 13

Page 89: Be productive with Android Dev

EclipseTime

jeudi 20 juin 13

Page 90: Be productive with Android Dev

DOn’t touch the mouseRulesDOn’t touch the mouseDOn’t touch the mouseDOn’t touch the mouseDOn’t touch the mouse

jeudi 20 juin 13

Page 91: Be productive with Android Dev

jeudi 20 juin 13

Page 92: Be productive with Android Dev

#5 TIP

jeudi 20 juin 13

Page 93: Be productive with Android Dev

source code !Get the

#5 TIP

jeudi 20 juin 13

Page 94: Be productive with Android Dev

jeudi 20 juin 13

Page 95: Be productive with Android Dev

Android XREF

jeudi 20 juin 13

Page 96: Be productive with Android Dev

jeudi 20 juin 13

Page 97: Be productive with Android Dev

GREP CODE

jeudi 20 juin 13

Page 98: Be productive with Android Dev

jeudi 20 juin 13

Page 99: Be productive with Android Dev

#6 TIP

jeudi 20 juin 13

Page 100: Be productive with Android Dev

Have fun.Enjoy coding&

#6 TIP

jeudi 20 juin 13

Page 101: Be productive with Android Dev

Thank you ;)

jeudi 20 juin 13