build a user experience on android

54
BUILD a User Experience ... on Android

Upload: eyal-lezmy

Post on 22-Nov-2014

547 views

Category:

Technology


0 download

DESCRIPTION

Speaker's notes here : http://bit.ly/and-nav This is a feedback about user experience creation, following a simple Android app I had to create. In this presentation I'll tell you about this story, trying to identify the points that will hep you to make the good choice on your own project.

TRANSCRIPT

Page 1: Build a user experience on Android

BUILD

aUser Experience

... on Android

Page 2: Build a user experience on Android

ABOUT.ME

Slides http://bit.ly/and-nav

http://eyal.fr

Page 3: Build a user experience on Android

... don't loose your user

DESIGN Effective

Page 4: Build a user experience on Android

Once Upon a Time...

a webservice, far far away...

Page 5: Build a user experience on Android

Planning the screens

It's all about movies...

Page 6: Build a user experience on Android

Planning the relationships

Page 7: Build a user experience on Android

Planning the relationships

Netflix Content General actions & information

Page 8: Build a user experience on Android

Handle the bar

Page 9: Build a user experience on Android

... all roads lead to Home

HOME

sweet

Home

Page 10: Build a user experience on Android

Useful for

"tools apps"

Dashboard

Page 11: Build a user experience on Android

Dashboard

Page 12: Build a user experience on Android

Dropdown Tabs + Content

Page 13: Build a user experience on Android

Dropdown Tabs + Content

Closed ecosystems,

multi-accountsDifferent nature

of content

Different level

of content

Page 14: Build a user experience on Android

Feature and organize

the content

Tabs + Content

Page 15: Build a user experience on Android

Tabs + Content

Page 16: Build a user experience on Android

Navigation drawer + Content

4 top-level screens minimum

Page 17: Build a user experience on Android

Navigation drawer + Content

4 top-level screens minimum

Most important

screens of

your app

Page 18: Build a user experience on Android

Navigation drawer + Content

4 top-level screens minimum

Structure the

content

Page 19: Build a user experience on Android

Navigation drawer + Content

Add general

actions (search,shorcuts, ...)

4 top-level screens minimum

Page 20: Build a user experience on Android

Make your

action bar

more contextualOptional

Navigation drawer + Content

4 top-level screens minimum

Page 21: Build a user experience on Android

Navigation drawer + Content

4 top-level screens minimum

Except Settings,

About & Helpby convention

Make your

action bar

more contextualOptional

Page 22: Build a user experience on Android

Very powerful...

but complex !

You have to know why

you are using it!

Navigation drawer + Content

Page 23: Build a user experience on Android

Choose your home

It's all about movies... as I said

Page 24: Build a user experience on Android

Content + Tab

of course :-)

Our choice

Page 25: Build a user experience on Android

All roads lead to Home

Page 26: Build a user experience on Android

Latteral navigation

Page 27: Build a user experience on Android

...from S to XXL

Size

Matters

Page 28: Build a user experience on Android

Multi-pane Layout Pattern

Multiple screen sizes

Page 29: Build a user experience on Android

Multiple screen sizesPanelPanel Panel PanelPanel

Panel Panel Panel

Panel

Multi-pane Layout Pattern

Page 30: Build a user experience on Android

Multi-panel design layout

DesignDev

Page 31: Build a user experience on Android

Multi-panel design layout

Panel

DesignDev

Page 32: Build a user experience on Android

Multi-panel design layout

Panel

Fragment!

DesignDev

Page 33: Build a user experience on Android

Frag...

what?!

Page 34: Build a user experience on Android

The fragment

Open

Page 35: Build a user experience on Android

The fragment

Update

Page 36: Build a user experience on Android

Use the system resources

res/layout/main.xml

res/layout-large/main_two_panes.xml

res/layout-sw600dp/main_two_panes.xml

Multi-screen UI

Page 37: Build a user experience on Android

Use the system resources

res/layout/main.xml

res/layout-large/main_two_panes.xml

res/layout-sw600dp/main_two_panes.xml

Multi-screen UI

Default

Page 38: Build a user experience on Android

Use the system resources

res/layout/main.xml

res/layout-large/main_two_panes.xml

res/layout-sw600dp/main_two_panes.xml

Multi-screen UI

Default>= 7"

Page 39: Build a user experience on Android

Use the system resources

res/layout/main.xml

res/layout-large/main_two_panes.xml

res/layout-sw600dp/main_two_panes.xml

Multi-screen UI

Default>= 7"

>= 600dp

Page 40: Build a user experience on Android

Avoid file duplication with aliases

res/layout/main.xmlres/layout/main_two_panes.xml

res/values-large/layout.xmlres/values-sw600dp/layout.xml

Multi-screen UI

Page 41: Build a user experience on Android

Avoid file duplication with aliases

res/layout/main.xmlres/layout/main_two_panes.xml

res/values-large/layout.xmlres/values-sw600dp/layout.xml

Multi-screen UI

Define the 2 layouts

on the default folder

Page 42: Build a user experience on Android

Avoid file duplication with aliases

res/layout/main.xmlres/layout/main_two_panes.xml

res/values-large/layout.xmlres/values-sw600dp/layout.xml

Multi-screen UI

Define the 2 layouts

on the default folder

Define aliases using

the filters

Page 43: Build a user experience on Android

Avoid file duplication with aliases

<resources> <item name="main" type="layout">

@layout/main_two_panes</item>

</resources>

Multi-screen UI

Page 44: Build a user experience on Android

Avoid file duplication with aliases

<resources> <item name="main" type="layout">

@layout/main_two_panes</item>

</resources>

Multi-screen UI

Override main by main_two_panes

for large and sw600dp screens

Page 45: Build a user experience on Android

Fork the code

Multi-screen UI

res/values/bools.xmlres/values-large/bools.xmlres/values-sw600dp/bools.xml

<resources><bool name="isTwoPanes">

true|false</bool>

</resources>

Page 46: Build a user experience on Android

Fork the code

Multi-screen UI

res/values/bools.xmlres/values-large/bools.xmlres/values-sw600dp/bools.xml

<resources><bool name="isTwoPanes">

true|false</bool>

</resources>

Boolean values dealing

with the filters

Page 47: Build a user experience on Android

Fork the code

Multi-screen UI

res/values/bools.xmlres/values-large/bools.xmlres/values-sw600dp/bools.xml

<resources><bool name="isTwoPanes">

true|false</bool>

</resources>

true or false:

explicite definition

Boolean values dealing

with the filters

Page 48: Build a user experience on Android

Fork the code

boolean isTwoPanes = res.getBoolean(R.bool.isTwoPanes);

if (isTwoPanes) // launch a tablet activity

else // launch a phone activity

Multi-screen UI

Page 49: Build a user experience on Android

Fork the code

boolean isTwoPanes = res.getBoolean(R.bool.isTwoPanes);

if (isTwoPanes) // launch a tablet activity

else // launch a phone activity

Multi-screen UI

We fork the code based on

the isTwoPanes value

Page 50: Build a user experience on Android

... and now the result

We're

done!

Page 51: Build a user experience on Android

Wireframe for phone

Page 52: Build a user experience on Android

Wireframe for tablet

Page 54: Build a user experience on Android

THANK YOU!

Slides http://bit.ly/and-nav

http://eyal.fr