Cloud
InteractionDesign
Android
Touch and Gestures
UI Elements Size for Touch
Mobile Screen ”HOT” Areas/ Reachability/ Handedness
Mobile Screen ”HOT” Areas/ Reachability/ Handedness
Mobile Screen ”HOT” Areas/ Reachability/ Handedness
Mobile Screen ”HOT” Areas/ Reachability/ Handedness
Mobile Screen ”HOT” Areas/ Reachability/ Handedness
Mobile Screen ”HOT” Areas/ Reachability/ Handedness
Touch and Gestures
• One Movement Trace per Touch Source (Pointer)
• Pointer ↔ Id
• Pointer <> index (change over the time)
Touch and Gestures Example
Touch and Gestures Example
Screen Sizes
Screen Sizes
Portrait
vs
LandScape
Portrait vs. LandScape
Portrait vs. LandScape
Alternate Layouts
Alternate Layouts
Alternate Layouts
Alternate Layouts
Alternate Layouts [Running]
Changing Orientation
Some device configurations can change during runtime (such as screen
orientation, keyboard availability, and language). When such a change occurs,
Android restarts the running Activity (onDestroy() is called, followed by
onCreate()).
Changing Orientation
The restart behavior is designed to help your application adapt to new
configurations by automatically reloading your application with alternative
resources that match the new device configuration.
Changing Orientation
onSaveInstanceState()
Changing Orientation
onCreate() or onRestoreInstanceState().
Retaining an Object During a
Configuration Change
http://developer.android.com/guide/topics/resources/runtime-­‐changes.html#RetainingAnObject
Retaining an Object During a
Configuration Change
Retaining an Object During a
Configuration Change
Multi-device Targeting
First learn what/is/for
Tablets
• 74% at home.
• For reading, games, consuming content.
Tablets
• 74% at home.
• For reading, games, consuming content.
Tablets
iPad Pro
Tablets
iPad Pro + Pencil
Devices – Web Apps
Devices – Native Apps
wrap_content and match_parent
Relative_layout
Wearables
Wearables
Add Pre-defined Text Responses
Receiving Voice Input in a
Notification
Receiving Voice Input in a
Notification
//  Key  for  the  string  that's  delivered  in  the  action's  intent
private  static  final  String  EXTRA_VOICE_REPLY  =  "extra_voice_reply";
String  replyLabel =  getResources().getString(R.string.reply_label);
RemoteInput remoteInput =  new  RemoteInput.Builder(EXTRA_VOICE_REPLY)
.setLabel(replyLabel)
.build();

Android L07 - Touch, Screen and Wearables