Pulse News: porting android app to tablet

Preview:

DESCRIPTION

http://paug.fr

Citation preview

ALL SIZES FIT ONEA Thrilling Adventure in Application Design for

Tablets

Monday, September 12, 2011

ALBERT LAI@albertlaiJEAN HSU@jyhsu

ANDROID AT PULSE

Monday, September 12, 2011

SHAMELESS PLUG!

Monday, September 12, 2011

PART Ie Human Component

Monday, September 12, 2011

WHEN DEVELOPERS SAY SOMETHING IS IMPOSSIBLE... THEY’RE LYING

Monday, September 12, 2011

TABLETS ARE A COMPLETELY NEW EXPERIENCE. DESIGN APPROPRIATELY.

Monday, September 12, 2011

NEVER TRUST THE SYSTEM TO DO A HUMAN’S JOB

Monday, September 12, 2011

DIALOGS CAN KEEP YOUR APP FROM LOOKING SILLY

Monday, September 12, 2011

stretchySILLY

Monday, September 12, 2011

dialogBETTER!

Monday, September 12, 2011

USERS ROTATE TABLETS. THIS IS A FACT OF LIFE.

Monday, September 12, 2011

THINK OF HANDHELD AND TABLET-STAND STYLE USAGES

Monday, September 12, 2011

THUMB FRIENDLY NAVIGATIONMonday, September 12, 2011

PART IINow for the Technical Stuff

Monday, September 12, 2011

RELATIVE LAYOUTS ARE AN ANDROID DEVELOPER’S BEST FRIEND

Monday, September 12, 2011

ALIGN PARENT RIGHTCENTER VERTICAL

ALIGN PARENT BOTTOMCENTER HORIZONTAL

ALIGN PARENT TOPALIGN PARENT LEFT

Monday, September 12, 2011

ALIGN PARENT RIGHTCENTER VERTICAL

ALIGN PARENT BOTTOMCENTER HORIZONTAL

ALIGN PARENT TOPALIGN PARENT LEFT

Monday, September 12, 2011

DEFINING A TABLET IS LIKE NAILING JELLO TO A WALL

??????

Monday, September 12, 2011

IS THIS A REALLY BIG PHONE?

Monday, September 12, 2011

OR A REALLY SMALL TABLET?

Monday, September 12, 2011

IT’S DANGEROUS TO GO ALONE. TAKE THESE RESOURCE FOLDERS

large, xlarge mdpi, hdpi, xhdpi

Monday, September 12, 2011

<style name="ConditionalDialog" parent="@android:style/Theme.Black">

<item name="android:windowNoTitle">true</item> </style>

values/theme.xml

Monday, September 12, 2011

<style name="ConditionalDialog" parent="@android:style/Theme.Dialog">

<item name="android:windowNoTitle">true</item> </style>

values-xlarge/theme.xml

Monday, September 12, 2011

HOW DO YOU KNOW WHAT SIZE DEVICE YOU’RE ON IN CODE?

Monday, September 12, 2011

IN YOUR LAYOUT XML FILE:

<include layout="@layout/screen_size" />

Monday, September 12, 2011

<?xml version="1.0" encoding="utf-8"?><View xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen_size_normal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone"/>

layout/theme.xml

Monday, September 12, 2011

<?xml version="1.0" encoding="utf-8"?><View xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen_size_large" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone"/>

layout-large/theme.xml

Monday, September 12, 2011

THERE ARE NO MAGIC NUMBERS.

Monday, September 12, 2011

THERE ARE NO MAGIC NUMBERS.

DIMENS.XMLINTEGERS.XML

Monday, September 12, 2011

NEVER SCALE UP ASSETS. USERS CAN TELL FROM THE PIXELS.

Monday, September 12, 2011

USE A HELPER CLASS FOR THE TRICKIER DIMENSIONS

Monday, September 12, 2011

screen_width / 3

Monday, September 12, 2011

PART IIIHoneycombs

Monday, September 12, 2011

I CAN HAZ FEATURES?

Monday, September 12, 2011

I CAN HAZ FEATURES?

mEditor.apply();

since API Level 9Monday, September 12, 2011

REFLECTION

Method m = SharedPreferences.Editor.class.getMethod("apply");

// ...

if (m != null) {m.invoke(mEditor);

} else { mEditor.commit(); }

Monday, September 12, 2011

WRAPPER

classes not loaded (and verified) until it is called the first time

only load the wrapper class if new functionality exists

Monday, September 12, 2011

PART IVOptimizing for the

Honeycombs

Monday, September 12, 2011

ONE-LINERS FTW

android:hardwareAccelerated="true"

android:targetSdkVersion="11"

Monday, September 12, 2011

MENU PLEASE..

pulse before

??Monday, September 12, 2011

BYOACTION BARS

TextOVERFLOW

NO MENU

LEFT-ALIGNED LOGO ACTIONS

Monday, September 12, 2011

FRAGMENTS (NOT THE BAD KIND)

Monday, September 12, 2011

PART IVAPKs

Monday, September 12, 2011

MULTIPLE APK SUPPORT

PHONE APK

TABLET APK

Monday, September 12, 2011

ONE APK TO RULE THEM ALL

SUPER AWESOME

APK

Monday, September 12, 2011

TEST LIKE YOUR LIFE DEPENDS ON IT

before each releaseand all the timewherever you canon every deviceand every api level

Monday, September 12, 2011

BUT DON’T TAKE OUR WORD FOR IT EXPLORE AND CREATE!

Monday, September 12, 2011