Slide 1

Slide 1 text

Lazy Android Developers: Be Productive Paresh Mayani

Slide 2

Slide 2 text

Paresh Mayani Sr. Software Engineer @ InfoStretch, India Manager, GDG Ahmedabad

Slide 3

Slide 3 text

Are you lazy #AndroidDev?

Slide 4

Slide 4 text

No Googling…

Slide 5

Slide 5 text

Writing boilerplate code

Slide 6

Slide 6 text

Let’s be Productive While being lazy

Slide 7

Slide 7 text

But……How?

Slide 8

Slide 8 text

Tip: #1 Productive Development Environment

Slide 9

Slide 9 text

IDE

Slide 10

Slide 10 text

Emulator

Slide 11

Slide 11 text

Tip: #2 Write less code, Solve more problems

Slide 12

Slide 12 text

{Less code} {Less Mistakes} {Faster Development}

Slide 13

Slide 13 text

{Code Snippets} + {Open source libraries}

Slide 14

Slide 14 text

Open source libraries Source: http://www.blackducksoftware.com/

Slide 15

Slide 15 text

More than 100,000 results

Slide 16

Slide 16 text

68 repositories

Slide 17

Slide 17 text

Android Libraries Portal

Slide 18

Slide 18 text

Android Libraries Portal

Slide 19

Slide 19 text

Code snippets portal

Slide 20

Slide 20 text

UI & Custom Views Custom Views • Crouton • Staggered GridView • GoogleProgressBar • Sticky List Headers • Card UI • Fading ActionBar • Swipe ListView

Slide 21

Slide 21 text

Networking REST Clients • Spring for Android • Retrofit Async Requests • OKHttp • Volley Image source: http://instructure.github.io/blog/2013/12/09/volley-vs-retrofit/

Slide 22

Slide 22 text

Asynchronous Image Loading • Picasso • Universal Image loader (Nostra) • UrlImageViewHelper & ion (Koush) http://www.technotalkative.com/lazy-productive-android-developer-part-5-image-loading-library/

Slide 23

Slide 23 text

Database • OrmLite • Green DAO • SQL Cipher

Slide 24

Slide 24 text

Dependency Injection Class • Dagger View Injection • Butter Knife Universal • RoboGuice • Android Annotations (AA)

Slide 25

Slide 25 text

Example //Before using Android annotation library public class ActivityWithoutAA extends Activity{ Button button1; ImageView imgView1; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1 = (Button) findViewById(R.id.button1); imgView1 = (ImageView) findViewById(R.id.imageView1); button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub imgView1.setImageResource(R.drawable.ic_launcher);} }); } }

Slide 26

Slide 26 text

Example //After using Android annotation library, result is less code. @EActivity(R.layout.activity_main) public class MainActivity extends Activity { @ViewById Button button1; @ViewById ImageView imageView1; @Click void button1() { imageView1.setImageResource(R.drawable.ic_launcher); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } } View Initialization Click Listener

Slide 27

Slide 27 text

Tip: #3 Use Available Tools

Slide 28

Slide 28 text

Mockup design tool

Slide 29

Slide 29 text

Shrink icon/image size

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Device Art Generator http://developer.android.com/distribute/promote/device-art.html

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

http://gradleplease.appspot.com/

Slide 36

Slide 36 text

http://angrytools.com/android/button/

Slide 37

Slide 37 text

http://goo.gl/j8lBgH

Slide 38

Slide 38 text

http://coh.io/adpi/

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

http://jsonlint.com/

Slide 42

Slide 42 text

http://jsonviewer.stack.hu/

Slide 43

Slide 43 text

Tip: #4 Don’t Waste Time!

Slide 44

Slide 44 text

How?

Slide 45

Slide 45 text

Bootstrap your project Did you heard about Twitter Bootstrap? How?

Slide 46

Slide 46 text

http://www.androidbootstrap.com/

Slide 47

Slide 47 text

http://androidkickstartr.com/

Slide 48

Slide 48 text

Tip: #5 Learn from Open Source Projects

Slide 49

Slide 49 text

iosched https://code.google.com/p/iosched/

Slide 50

Slide 50 text

WordPress for Android https://github.com/wordpress-mobile/WordPress-Android

Slide 51

Slide 51 text

More open source projects • http://en.wikipedia.org/wiki/List_of_free_and_open- source_Android_applications • http://www.aopensource.com/

Slide 52

Slide 52 text

Tip: #6 Learn and Check UI Patterns

Slide 53

Slide 53 text

http://www.android-app-patterns.com/

Slide 54

Slide 54 text

http://androidpttrns.com/

Slide 55

Slide 55 text

http://android.inspired-ui.com/

Slide 56

Slide 56 text

Thank You