Upload
paris-android-user-group
View
940
Download
2
Tags:
Embed Size (px)
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