paranoid android

61
Paranoid Android Murat Yener Sunday, April 21, 13

Upload: murat-yener

Post on 12-May-2015

1.142 views

Category:

Technology


0 download

DESCRIPTION

Android Development best practices. GDG Istanbul, Murat Yener

TRANSCRIPT

Page 1: Paranoid Android

Paranoid AndroidMurat Yener

Sunday, April 21, 13

Page 2: Paranoid Android

who (the hell) am I?!?

Java, Flex, GWT, iOS, Android developer

Principle Mentor at Eteration

Eclipse Committer

GDG (GTUG) Istanbul Organizer

Conference Speaker

Sunday, April 21, 13

Page 3: Paranoid Android

paranoid?!?“is a mental disorder characterized by paranoia and a pervasive, long-standing suspiciousness and generalized mistrust of others. Individuals with this personality disorder may be hypersensitive, easily feel slighted, and habitually relate to the world by vigilant scanning of the environment for clues or suggestions that may validate their fears or biases. Paranoid individuals are eager observers. They think they are in danger and look for signs and threats of that danger, potentially not appreciating other evidence.”

Sunday, April 21, 13

Page 4: Paranoid Android

My Story: 1.5 Cupcake

My First Android Device!!

Sunday, April 21, 13

Page 5: Paranoid Android

1.6 Donut

My First Apps!!Sunday, April 21, 13

Page 6: Paranoid Android

2.0 Eclair

First Real Apps!!Sunday, April 21, 13

Page 7: Paranoid Android

2.2 Froyo

Hey I am an android developer!!Sunday, April 21, 13

Page 8: Paranoid Android

2.3 Gingerbread

and I go Paranoid,

UI

Performance

Navigation

...

Sunday, April 21, 13

Page 9: Paranoid Android

3.0 Honeycomb

tablets anyone?!?

Sunday, April 21, 13

Page 10: Paranoid Android

4.0 Ice Cream Sandwich

everyone goes paranoid!!!Sunday, April 21, 13

Page 11: Paranoid Android

4.2 Jelly Bean

even Google!!!

android design

best practices

...

Sunday, April 21, 13

Page 12: Paranoid Android

from paranoid to magical

UI

UX

Performance

Google Play

Sunday, April 21, 13

Page 13: Paranoid Android

from paranoid to magical

UI

UX

Performance

Google Play

and promise, last photo of me..

Sunday, April 21, 13

Page 14: Paranoid Android

Paranoid AndroidMurat Yener

Sunday, April 21, 13

Page 15: Paranoid Android

Paranoid AndroidMurat Yener

Sunday, April 21, 13

Page 16: Paranoid Android

Paranoid AndroidMurat Yener

Magical

Sunday, April 21, 13

Page 17: Paranoid Android

Developers and Magic

Don’t know the trick - Muggles

Know the trick - Squib

Can do the trick - Wizard

Sunday, April 21, 13

Page 18: Paranoid Android

Developers and Magic

Don’t know the trick - Muggles

Know the trick - Squib

Can do the trick - Wizard

the user

Sunday, April 21, 13

Page 19: Paranoid Android

Developers and Magic

Don’t know the trick - Muggles

Know the trick - Squib

Can do the trick - Wizard

the userI.T. guy

Sunday, April 21, 13

Page 20: Paranoid Android

Developers and Magic

Don’t know the trick - Muggles

Know the trick - Squib

Can do the trick - Wizard

the userI.T. guythe developer

Sunday, April 21, 13

Page 21: Paranoid Android

The User Experience

Sunday, April 21, 13

Page 22: Paranoid Android

Users are (simply) users

Controller

USBethernet

video in?

Touch Screen

Sunday, April 21, 13

Page 23: Paranoid Android

Users are (simply) users

Controller

USBethernet

video in?

Touch Screen

Sunday, April 21, 13

Page 24: Paranoid Android

Users are (simply) users

Controller

USBethernet

video in?

Touch Screen

which one is magical??Sunday, April 21, 13

Page 25: Paranoid Android

User eXperienceless is more

be invisible! just as if you’re part of the OS

splash screens

simple navigation

popups or launching the browser

forced login

extensive use of tutorials

Sunday, April 21, 13

Page 26: Paranoid Android

Test UX with Users

Users are not developers

nor designers!!

Rule of the magician: Consider your auidienceSunday, April 21, 13

Page 27: Paranoid Android

Test UX with Users

Users are not developers

nor designers!!

Rule of the magician: Consider your auidienceSunday, April 21, 13

Page 28: Paranoid Android

Test UX with Users

Users are not developers

nor designers!!

Rule of the magician: Consider your auidienceSunday, April 21, 13

Page 29: Paranoid Android

Test UX with Users

Users are not developers

nor designers!!

Rule of the magician: Consider your auidienceSunday, April 21, 13

Page 30: Paranoid Android

Case Study

not even one successful app order!!Sunday, April 21, 13

Page 31: Paranoid Android

The User Interface

Sunday, April 21, 13

Page 32: Paranoid Android

Design, the android way

Android has its own design, USE IT www.developer.android.com/design

Don’t just copy from other platforms

Sunday, April 21, 13

Page 33: Paranoid Android

Design, responsively!

Different Devices

Sunday, April 21, 13

Page 34: Paranoid Android

Design, responsively!

Different Devices

Sunday, April 21, 13

Page 35: Paranoid Android

Design, responsively!!Let your apps scale, use RelativeLayout, GridLayout, LinearLayout

Let your resources scale! use 9 patch.

Never resize images. Use different sizes (mdpi, hdpi, xhdpi...)

Draw in XML or code (gradient..)

http://developer.android.com/tools/help/draw9patch.html

for adapters!!!

Sunday, April 21, 13

Page 36: Paranoid Android

Design, responsively!!!

Don’t just scale! or next time Apple may make fun of you!

Use Fragments

Sunday, April 21, 13

Page 37: Paranoid Android

Fragments

Phone

Tablet

Portrait

Landscape

Do not assume device is portrait or landscape default orientations: Nexus7/portrait, Nexus10/landscape

Sunday, April 21, 13

Page 38: Paranoid Android

Control your hardware

boolean  haveCamera=getPackageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA);

boolean  haveNFC=getPackageManager.hasSystemFeature(PackageManager.FEATURE_NFC);

boolean  haveHost=getPackageManager.hasSystemFeature(PackageManager.FEATURE_USB_HOST);

boolean  havePhone=getPackageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY);

boolean  haveBarometer=getPackageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_BAROMOTER);

http://developer.android.com/reference/android/content/pm/PackageManager.html

Sunday, April 21, 13

Page 39: Paranoid Android

more on design!

android tabs are at the top!

use swipe views (even in tabs)

we (already) have back button

options hard button has gone

so does soft menu button

Sunday, April 21, 13

Page 40: Paranoid Android

more on design!

android tabs are at the top!

use swipe views (even in tabs)

we (already) have back button

options hard button has gone

so does soft menu button

Sunday, April 21, 13

Page 41: Paranoid Android

more on design!

android tabs are at the top!

use swipe views (even in tabs)

we (already) have back button

options hard button has gone

so does soft menu button

Sunday, April 21, 13

Page 42: Paranoid Android

more on design

make use of ADT (localization, themes, screen sizes)

visit Android Design

work with a designer

and use stencils!

Sunday, April 21, 13

Page 43: Paranoid Android

more on design

make use of ADT (localization, themes, screen sizes)

visit Android Design

work with a designer

and use stencils!

Sunday, April 21, 13

Page 44: Paranoid Android

more on design

make use of ADT (localization, themes, screen sizes)

visit Android Design

work with a designer

and use stencils!

Sunday, April 21, 13

Page 45: Paranoid Android

Performance

Sunday, April 21, 13

Page 46: Paranoid Android

Keep your UI responsive

Linear Layout? ok only if not nesting views

use Hierarchy View to cut down

Never lock UI thread use AsyncTask!!

make use of services

Sunday, April 21, 13

Page 47: Paranoid Android

Keep your UI responsive

Linear Layout? ok only if not nesting views

use Hierarchy View to cut down

Never lock UI thread use AsyncTask!!

make use of services

Sunday, April 21, 13

Page 48: Paranoid Android

Respect the Battery

You are on the list? You are doing it wrong!!

A phone’s main job is being a phone, no app can change it!

unregister services and listeners

Sunday, April 21, 13

Page 49: Paranoid Android

Use less network

Smaller data

less transfers

caching

*cookie model by Reto Meier

**Making good apps great, Google I/O 2012

Sunday, April 21, 13

Page 50: Paranoid Android

The big Cookie Model

**Making good apps great, Google I/O 2012Sunday, April 21, 13

Page 51: Paranoid Android

Defragment Network

**Making good apps great, Google I/O 2012Sunday, April 21, 13

Page 52: Paranoid Android

but how?

Cache data

Queue requests (also good for offline)

Check connection (get more data when on wifi and again cache!)

Get needed data at once

http://developer.android.com/training/efficient-downloads

Sunday, April 21, 13

Page 53: Paranoid Android

Stability

Test!

Use Lint

Use real devices

Sunday, April 21, 13

Page 54: Paranoid Android

Google Play

Sunday, April 21, 13

Page 55: Paranoid Android

Respect Users

UX

UI

Performance

there is more...

notifications!!!

Sunday, April 21, 13

Page 56: Paranoid Android

Feedback

Happy users don’t rate

but sad ones do...

Don’t ask user to rate you

But ask for feedback

Sunday, April 21, 13

Page 57: Paranoid Android

Feedback

Happy users don’t rate

but sad ones do...

Don’t ask user to rate you

But ask for feedback

Sunday, April 21, 13

Page 58: Paranoid Android

Feedback

Happy users don’t rate

but sad ones do...

Don’t ask user to rate you

But ask for feedback

Sunday, April 21, 13

Page 59: Paranoid Android

TricksDon’t let your app not updated

But not too often

Don’t ask hw requirements (camera, nfc...)

Always use latest sdk

But try staying compatible

Test before publishing

Sunday, April 21, 13

Page 60: Paranoid Android

</slides>Like what you see?

GDG Istanbul (every 3. or 4. Saturday)Android Developer Days

...and contact me :)[email protected]@yenermdevchronicles.comblogs.eteration.com

Sunday, April 21, 13

Page 61: Paranoid Android

</slides>Like what you see?

GDG Istanbul (every 3. or 4. Saturday)Android Developer Days

...and contact me :)[email protected]@yenermdevchronicles.comblogs.eteration.com

Sunday, April 21, 13