SlideShare ist ein Scribd-Unternehmen logo
1 von 76
Tapping into Mobile UI
     with HTML5
      Luke Melia + Yael Sahar
Mobile UX
principles
Direct manipulation
Ergonomics:
Operated with a single hand.
      Finger tip size.
Immediate feedback
Be consistent
with platform conventions
“I should always know
     where I am”
“Show me what I want
 to seewhen I need it”
“Don’t make me type”
The HTML5
 tradeoff
You get a single code base
in exchange for implementing
    all UI elements yourself
Mobile UI
patterns
Buttons
[ used for actions ]
Designer says:

Touch target size: 44px on iOS, 48px on Android
                    iOS



             44px                           30px


                    Android




                                          ----------------------------------
                                          UI principles:
                                          • Ergonomics
Designer says:
Position on screen
iOS                  Android




                               ------------------------------------
                               UI principles:
                               • Be consistent with
                                    platform conventions
                               • Immediate feedback
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
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
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
Developer says_


The #1 reason that many
mobile web apps feel
slow:
Developer says_


Instead,
respond immediately!
Developer says_

“What aboutdeveloping on my laptop???”


Implement a mouse-friendly path...




 ...or emulate!
Developer says_




                  Touch targets

           Handle them case-by-case
                   with CSS
Developer says_



        Cross-platform visual
            conventions


Help yourself with some Javascript, and handle visual
                 differences in CSS.
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
Tab bars
[ used to navigate through
 the sections of your app]
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
Designer says:
 Bar height.50px on iOS, 48px on Android
  iOS                     Android



50px
                        48px




                                           ------------------------------
                                           UI principles:
                                           • Ergonomics
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
Designer says:



       Do not use the tab
         bar for actions
Developer says_




   Position and size your tab bar for each platform
                       using CSS
Developer says_




         @font-face
      A custom web font for your icons
             can be good, bro.
Developer says_


Tab bar icons works like
“push” buttons.

As soon as you tap
them, they highlight and
activate.

Easy, right?
Developer says_




Give the browser time to render the highlight.
Cross platform solution with CSS
Twitter
App UI implementation
on iOS and Android
Identifying common
elements and
positioning them in
consistency with
platform.
Cross platform solution with CSS
Yapp
UI implementation on
iOS and Android.
Identifying common
elements and
positioning them in
consistency with
platform.
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
Drilling down
[ used to navigate to sub sections ]
[ Drill downs on iOS and Android]
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
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
Designer says:

• Animated feedback
• Information hierarchy




                          --------------------------------
                          UI principles:
                          • Immediate feedback
Developer says_


Title bar and body animate
differently


350ms
easeInOutQuint
Developer says_


Animation tips

1) Avoid DOM changes or other callbacks firing
during animation

2) Use hardware-accelerated animations
Developer says_


Show compositing
borders


defaults write
com.apple.SafariIncludeInternalDebugMenu 1
Alternatives

Facebook
Modal
Slide up to
Drill into
content
Segmented controls
 / tabs & spinners
 [ used to show different vies
     of the same content]
Designer says:
Use segmented controls to avoid a level of
drill downs




                                      -------------------------------
                                      UI principles:
                                      • I should always know
                                           where I am
                                      • Immediate feedback
[ Tab controls or drop down menus on Android ]


                                            Spinner
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
Developer says_



                  Tab bar tips apply.



     Use a scrolling library with snap-to for
        horizontal scrolling on Android.
Interlude
 A word about
Skeumorphic UI
Scrollbars
Designer says:



          Scrollbars appear only
         when you need them


                            -----------------------------------
                            UI principles:
                            • Show me what I want
                                 to see when I need it
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
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
Overshoot:below the ZERO line

 Pull to refresh             Yapp
 Gesture action discovered   Promo message
 at overshoot
Developer says_




        Duuuude, really?
                  Unfortunately, yes.

         No usable native scrolling yet.
Developer says_



                  Use a library.

              iScroll, Zyngascroller
Text Fields
Designer says:

• Auto-populate text field and auto-complete
• Use text field Clear button




                                    -------------------------------
                                    UI principles:
                                    • Don’t make me type
Developer says_




    No browser events for
  keyboard hiding/showing.
Developer says_




             Doesn’t work
Developer says_


          Virtual keyboard

     Resizes          Overlays
    viewport          window
Developer says_



                  Clear field

  Position the icon with CSS, clear
      the text with Javascript
Developer says_


  When you need to implement your own
        autocomplete (iOS only):
Q&A
@lukemelia
 @yaelsahar
  @yapp

http://yapp.us
we are hiring!
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

Weitere ähnliche Inhalte

Ähnlich wie Tapping into Mobile UI with HTML5

Android Design - Dropping iOS Patterns
Android Design - Dropping iOS PatternsAndroid Design - Dropping iOS Patterns
Android Design - Dropping iOS PatternsJason Fry
 
Android User Interface Design
Android User Interface Design Android User Interface Design
Android User Interface Design Ahmad Firoz
 
Game Design 2: Lecture 12 - Platform Specific Design
Game Design 2: Lecture 12 - Platform Specific DesignGame Design 2: Lecture 12 - Platform Specific Design
Game Design 2: Lecture 12 - Platform Specific DesignDavid Farrell
 
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...Gerke Max Preussner
 
Design Workshop I @ Cornell Tech
Design Workshop I @ Cornell TechDesign Workshop I @ Cornell Tech
Design Workshop I @ Cornell TechZaid Haque
 
Android UI Design Tips
Android UI Design TipsAndroid UI Design Tips
Android UI Design TipsLuis Abreu
 
【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能
【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能
【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能Unity Technologies Japan K.K.
 
Designing for User Experience (UX) with Atlassian Tools
Designing for User Experience (UX) with Atlassian ToolsDesigning for User Experience (UX) with Atlassian Tools
Designing for User Experience (UX) with Atlassian ToolsAtlassian
 
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsEast Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsGerke Max Preussner
 
Games Design 2 - Lecture 12 - Usability, Metaphor and Layout
Games Design 2 - Lecture 12 - Usability, Metaphor and LayoutGames Design 2 - Lecture 12 - Usability, Metaphor and Layout
Games Design 2 - Lecture 12 - Usability, Metaphor and LayoutDavid Farrell
 
Practical UI Guidelines for Wearable Apps
Practical UI Guidelines for Wearable AppsPractical UI Guidelines for Wearable Apps
Practical UI Guidelines for Wearable AppsVictor Dibia
 
Unreal Engine Basics 05 - User Interface
Unreal Engine Basics 05 - User InterfaceUnreal Engine Basics 05 - User Interface
Unreal Engine Basics 05 - User InterfaceNick Pruehs
 
Native Mobile Testing for Newbies
Native Mobile Testing for NewbiesNative Mobile Testing for Newbies
Native Mobile Testing for NewbiesSusan Hewitt
 

Ähnlich wie Tapping into Mobile UI with HTML5 (20)

Android Design - Dropping iOS Patterns
Android Design - Dropping iOS PatternsAndroid Design - Dropping iOS Patterns
Android Design - Dropping iOS Patterns
 
Android User Interface Design
Android User Interface Design Android User Interface Design
Android User Interface Design
 
Game Design 2: Lecture 12 - Platform Specific Design
Game Design 2: Lecture 12 - Platform Specific DesignGame Design 2: Lecture 12 - Platform Specific Design
Game Design 2: Lecture 12 - Platform Specific Design
 
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...
West Coast DevCon 2014: The Slate UI Framework (Part 2) - Game UI & Unreal Mo...
 
Create great UIs for budget phones
Create great UIs for budget phonesCreate great UIs for budget phones
Create great UIs for budget phones
 
Design Workshop I @ Cornell Tech
Design Workshop I @ Cornell TechDesign Workshop I @ Cornell Tech
Design Workshop I @ Cornell Tech
 
iOSToolkit
iOSToolkitiOSToolkit
iOSToolkit
 
Android UI Design Tips
Android UI Design TipsAndroid UI Design Tips
Android UI Design Tips
 
【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能
【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能
【Unite 2017 Tokyo】Unity UI最適化ガイド 〜ベストプラクティスと新機能
 
Designing for User Experience (UX) with Atlassian Tools
Designing for User Experience (UX) with Atlassian ToolsDesigning for User Experience (UX) with Atlassian Tools
Designing for User Experience (UX) with Atlassian Tools
 
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & ToolsEast Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
East Coast DevCon 2014: The Slate UI Framework - Architecture & Tools
 
Android UI Design Tips
Android UI Design TipsAndroid UI Design Tips
Android UI Design Tips
 
Games Design 2 - Lecture 12 - Usability, Metaphor and Layout
Games Design 2 - Lecture 12 - Usability, Metaphor and LayoutGames Design 2 - Lecture 12 - Usability, Metaphor and Layout
Games Design 2 - Lecture 12 - Usability, Metaphor and Layout
 
RobotStudiopp.ppt
RobotStudiopp.pptRobotStudiopp.ppt
RobotStudiopp.ppt
 
ie450RobotStudio.ppt
ie450RobotStudio.pptie450RobotStudio.ppt
ie450RobotStudio.ppt
 
Practical UI Guidelines for Wearable Apps
Practical UI Guidelines for Wearable AppsPractical UI Guidelines for Wearable Apps
Practical UI Guidelines for Wearable Apps
 
Android part1
Android part1Android part1
Android part1
 
Unreal Engine Basics 05 - User Interface
Unreal Engine Basics 05 - User InterfaceUnreal Engine Basics 05 - User Interface
Unreal Engine Basics 05 - User Interface
 
Native Mobile Testing for Newbies
Native Mobile Testing for NewbiesNative Mobile Testing for Newbies
Native Mobile Testing for Newbies
 
Icon design
Icon designIcon design
Icon design
 

Kürzlich hochgeladen

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

Tapping into Mobile UI with HTML5

  • 1. Tapping into Mobile UI with HTML5 Luke Melia + Yael Sahar
  • 4. Ergonomics: Operated with a single hand. Finger tip size.
  • 7. “I should always know where I am”
  • 8. “Show me what I want to seewhen I need it”
  • 11. You get a single code base in exchange for implementing all UI elements yourself
  • 13. Buttons [ used for actions ]
  • 14. Designer says: Touch target size: 44px on iOS, 48px on Android iOS 44px 30px Android ---------------------------------- UI principles: • Ergonomics
  • 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
  • 19. Developer says_ The #1 reason that many mobile web apps feel slow:
  • 21. Developer says_ “What aboutdeveloping on my laptop???” Implement a mouse-friendly path... ...or emulate!
  • 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
  • 29. Designer says: Do not use the tab bar for actions
  • 30. Developer says_ Position and size your tab bar for each platform using CSS
  • 31. Developer says_ @font-face A custom web font for your icons can be good, bro.
  • 32. Developer says_ Tab bar icons works like “push” buttons. As soon as you tap them, they highlight and activate. Easy, right?
  • 33. Developer says_ Give the browser time to render the highlight.
  • 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
  • 37. Drilling down [ used to navigate to sub sections ]
  • 38. [ Drill downs on iOS and Android]
  • 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
  • 41. Designer says: • Animated feedback • Information hierarchy -------------------------------- UI principles: • Immediate feedback
  • 42. Developer says_ Title bar and body animate differently 350ms easeInOutQuint
  • 43. Developer says_ Animation tips 1) Avoid DOM changes or other callbacks firing during animation 2) Use hardware-accelerated animations
  • 44. Developer says_ Show compositing borders defaults write com.apple.SafariIncludeInternalDebugMenu 1
  • 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
  • 48. [ Tab controls or drop down menus on Android ] Spinner
  • 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.
  • 51. Interlude A word about Skeumorphic UI
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 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
  • 65. Developer says_ Duuuude, really? Unfortunately, yes. No usable native scrolling yet.
  • 66. Developer says_ Use a library. iScroll, Zyngascroller
  • 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.
  • 70. Developer says_ Doesn’t work
  • 71. Developer says_ Virtual keyboard Resizes Overlays viewport window
  • 72. Developer says_ Clear field Position the icon with CSS, clear the text with Javascript
  • 73. Developer says_ When you need to implement your own autocomplete (iOS only):
  • 74. Q&A
  • 75. @lukemelia @yaelsahar @yapp http://yapp.us we are hiring!
  • 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

  1. Introduce Yael and Luke. Designer? Developer? Introduce Yapp.Quick talk overview.
  2. There are many more but we chose the ones we think are most important to UX on Mobile
  3. 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.
  4. Ppl expect immediate feedback when they operate a control.tap color or a subtle animation for a gesture provides them a meaningful feedback.
  5. 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.
  6. Give ppl confidence that they know the way around your app.
  7. 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.
  8. Device keyboard is small. Make ppl type as less as possible.
  9. 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.
  10. Frames ios vs. no frames (android). The use of icons and words. Look & feel of a physical button (ios) vs. flat design on Android.
  11. 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.
  12. We could not get the same level of accuracy with CSS and performance was slower.
  13. A library to help with this:https://github.com/cheeaun/tappable from Lim CheeAun in Singapore.
  14. 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.
  15. 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
  16. I’ve dreamed about what a Javascript library to do this automatically might look like.
  17. varisAndroid = (/android/gi).test(navigator.appVersion);if (isAndroid) $('body').addClass('android');
  18. Bottom onios, top on Android
  19. Consider the # of sections in your app.Ios: more buttonAndroid: scrollable tabs / icon bar that can fit more tabs
  20. Not to confuse actions and navigation.
  21. 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
  22. 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
  23. 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.
  24. Tab bar is moved to the top of the page on Android. No back button on Android
  25. 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.
  26. On Android there is no indication where you are because of the hardware back button.
  27. Slide animation
  28. Note that the highlight state stays onImage from Lim CheeAunSencha Touch Navigation View
  29. http://www.chromium.org/developers/design-documents/gpu-accelerated-compositing-in-chromehttp://www.slideshare.net/mattmccarthy_nflx/netflix-webkitbased-ui-for-tv-devices-9168822
  30. Android are using the tabs system and spinners to show different views of the content
  31. iScroll with snap option: http://cubiq.org/iscrollZyngascroller with snapping option: https://github.com/zynga/scrollerMore on scrolling in the next section.
  32. Moneybook
  33. Camera+
  34. Apple Find My Friends
  35. The Early Edition
  36. iPad virtual keyboard. Note the “bumps” on the F & J keys.
  37. KorgiElectribe
  38. Obsolete media orsave icon?
  39. iDial
  40. iScroll: http://cubiq.org/iscrollZyngascroller: https://github.com/zynga/scroller
  41. 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
  42. Things related to text input are a tough spot for mobile web apps.
  43. Things related to text input are a tough spot for mobile web apps.
  44. Both try to scroll and zoom
  45. To Yael’s specific recommendations:
  46. Autocomplete is trickier. These attributes suppress default behavior on iOS, but Android’s can’t be suppressed.