15. Designer says:
Position on screen
iOS Android
------------------------------------
UI principles:
• Be consistent with
platform conventions
• Immediate feedback
16. Designer says:
Visual appearance (frames on iOSvs. no frame on
Android, use system fonts)
iOS Android
------------------------------------
UI principles:
• Be consistent with
platform conventions
• Ergonomics
• Immediate feedback
17. Designer says:
Back / Cancel actions on iOSuse a button vs. the
hardware Back button on Android.
iOS Android
------------------------------------
UI principles:
• Be consistent with
platform conventions
• I should always know
where I am
• Immediate feedback
18. Designer tip: how to create an iOS looking button
Challenge: have a single button image background
across all app themes
Button background image:
• Button height: 60px (30px actual) -> image is double size
for high retina display
• Shape: rounded rectangle, 12px round corner (6px
actual)
• Drop shadow: white @45% opacity; Angle: 90; Blend
mode: normal; Distance: 2; Spread: 0; Size: 0
• Inner shadow: black @65% opacity; Angle: 90; Blend
mode: Normal; Distance: 3; Choke: 0; Size: 1
• Stroke: 1 px, black @65% opacity
• Gradient overlay: 30% opacity white to full transparency;
linear gradient; Angle: 90
Button font:
• Helvetica bold white, 11pt.
• Drop shadow: black @65% opacity; angle -90; distance 1;
spread 0; size 1
22. Developer says_
Touch targets
Handle them case-by-case
with CSS
23. Developer says_
Cross-platform visual
conventions
Help yourself with some Javascript, and handle visual
differences in CSS.
24. Alternatives
Direct manipulation of content is usually better
Camera Flipboard Clear
Zoom In / Out with Pinch & Flip Pages with a swipe No Buttons. All actions are
spread gestures gesture done with gestures
25. Tab bars
[ used to navigate through
the sections of your app]
26. Designer says:
Position on screen
iOS Android
---------------------------
UI principles:
• Be consistent
with platform
conventions
• I should always
know where I
am
• Show me what I
need when I
need it
27. Designer says:
Bar height.50px on iOS, 48px on Android
iOS Android
50px
48px
------------------------------
UI principles:
• Ergonomics
28. Designer says:
#of tabs in view: 5on iOS, 3 words on Android
iOS Android
---------------------------------
-
UI principles:
• I should always know
where I am
• Show me what I
need when I need it
34. Cross platform solution with CSS
Twitter
App UI implementation
on iOS and Android
Identifying common
elements and
positioning them in
consistency with
platform.
35. Cross platform solution with CSS
Yapp
UI implementation on
iOS and Android.
Identifying common
elements and
positioning them in
consistency with
platform.
36. Alternatives
Main Menu page: Facebook Pinterest:
Creates more drill downs Side menu. Still requires an Tab bar disappears when
I always need to go back in extra tap to go back to scrolling down and appears
order to navigate menu. I know where I was. when scrolling up
39. Designer says:
Show user’s path and current location (title bar
and Back button)
iOS Android
----------------------------
UI principles:
• I should always
know where I am
• Immediate
feedback
40. Designer says:
#of drill downs (more than 2-3 feels like too much
drilling especially if you don’t use a tab bar to
navigate)
---------------------------
UI principles:
• I should always
know where I
am
• Show me what I
need when I
need it
46. Segmented controls
/ tabs & spinners
[ used to show different vies
of the same content]
47. Designer says:
Use segmented controls to avoid a level of
drill downs
-------------------------------
UI principles:
• I should always know
where I am
• Immediate feedback
49. Designer says:
iOS: use on app’s main
sections where back
button is not needed
Highlight current
segment (no title bar)
-------------------------------
UI principles:
• I should always know
where I am
• Immediate feedback
50. Developer says_
Tab bar tips apply.
Use a scrolling library with snap-to for
horizontal scrolling on Android.
61. Designer says:
Scrollbars appear only
when you need them
-----------------------------------
UI principles:
• Show me what I want
to see when I need it
62. Designer says:
Make sure scrollbar is visible on any
background. (ios uses a semi transparent
black scrollbar with a white outline)
-----------------------------------
UI principles:
• Immediate feedback
63. Designer says:
Overshoot animation (ios) vs.
overscrollcolor (android). Overshoot on ios
created a new UI layer for actions and
messages that occur below the Zero line
-----------------------------------
UI principles:
• Show me what I want
to see when I need it
• Discoverability
64. Overshoot:below the ZERO line
Pull to refresh Yapp
Gesture action discovered Promo message
at overshoot
68. Designer says:
• Auto-populate text field and auto-complete
• Use text field Clear button
-------------------------------
UI principles:
• Don’t make me type
69. Developer says_
No browser events for
keyboard hiding/showing.
76. Resources
Apple Human Interface Guidelines:
https://developer.apple.com/library/ios/#documentation/UserExperience/Conce
ptual/MobileHIG/Introduction/Introduction.html
Android Interface Guidelines:
http://developer.android.com/design/index.html
Luke Wroblewski
Blog: http://www.lukew.com/ff
Book: Mobile First: http://www.lukew.com/resources/mobile_first.asp
Touch Gesture Reference Guide: http://www.lukew.com/ff/entry.asp?1071
Quirksmode
http://caniuse.com/
Coachmarks:
http://pttrns.com/coachmarks
Hinweis der Redaktion
Introduce Yael and Luke. Designer? Developer? Introduce Yapp.Quick talk overview.
There are many more but we chose the ones we think are most important to UX on Mobile
Ppl interact directlywith the screen. The use of gestures help ppl understand the results of their actions. Tap, drag, flick, pinch, spread are example to gestures users perform when touching the screen.
Ppl expect immediate feedback when they operate a control.tap color or a subtle animation for a gesture provides them a meaningful feedback.
Consistency means that ppl can transfer their knowledge and skills from one app to another. They also know what to expect when they operate a control.
Give ppl confidence that they know the way around your app.
Ppl get overwhelmed when they see too much at once. Focus on the primary task you need users to perform in your app and design your information accordingly.
Device keyboard is small. Make ppl type as less as possible.
Buttons are positions on side of the title bar (ios), and on the action bar (android). Always keep the left position of the Back button on ios for consistent behavior across apps.
Frames ios vs. no frames (android). The use of icons and words. Look & feel of a physical button (ios) vs. flat design on Android.
ios: you know where you came from. The button indicates your pathandroid: no need for a Cancel button, you simply go back to previous screen.
We could not get the same level of accuracy with CSS and performance was slower.
A library to help with this:https://github.com/cheeaun/tappable from Lim CheeAun in Singapore.
Highlight on touchstart for feedback. It’s more complicated than this, though. You need to make sure the touchend was on the same button the touchstart was on, and/or that the user didn’t move her finger in a way indicative of a scrolling. And you may need to account for a long-hold differently.
Test for touch support and decide whether to listen for touch events or mouse events, or try the new feature in Chrome Canary dev channel
I’ve dreamed about what a Javascript library to do this automatically might look like.
Consider the # of sections in your app.Ios: more buttonAndroid: scrollable tabs / icon bar that can fit more tabs
Not to confuse actions and navigation.
You get vectors, which means you get sharp results on any pixel density and can scale using font-size for cross-platform differences like 44px vs 48px
You get vectors, which means you get sharp results on any pixel density and can scale using font-size for cross-platform differences like 44px vs 48px
Send the action after a brief delay to allow the browser a cycle to renderthe UX feedback resulting from the isActive property change. In testing inMobile Safari on an iPhone 4, a delay of less 10ms resulted in the highlight statenot being rendered.
Tab bar is moved to the top of the page on Android. No back button on Android
Main menu page: more drill downs, not know where you areFacebook: still an extra step but I see where I was before. Swipe gesture is more intuitive.Pinterest: reveal and hide tab bar based on user’s task.
On Android there is no indication where you are because of the hardware back button.
Slide animation
Note that the highlight state stays onImage from Lim CheeAunSencha Touch Navigation View
Android are using the tabs system and spinners to show different views of the content
iScroll with snap option: http://cubiq.org/iscrollZyngascroller with snapping option: https://github.com/zynga/scrollerMore on scrolling in the next section.
Moneybook
Camera+
Apple Find My Friends
The Early Edition
iPad virtual keyboard. Note the “bumps” on the F & J keys.
A good library will use the Hardware Accelleration techniques we talked about earlier.You will need to keep it informed when the height of your content changes. iScroll#refresh, scroller#setDimensionsEither library can implemented the overshoot content that Yael showed, but Zyngascroller has a pull-to-refresh implementation you can plug into.iScroll: http://cubiq.org/iscrollZyngascroller: https://github.com/zynga/scroller
Things related to text input are a tough spot for mobile web apps.
Things related to text input are a tough spot for mobile web apps.
Both try to scroll and zoom
To Yael’s specific recommendations:
Autocomplete is trickier. These attributes suppress default behavior on iOS, but Android’s can’t be suppressed.