Skip to content

New Guide: "Improving User Experience" #14979

Closed
@frantic

Description

@frantic

As discussed with @brentvatne and other during ChainReact '17, it would be great to have a section in the docs that lists mobile-specific important UX details.

This is a rough checklist:

  • hitSlop
  • tab bar
    • tab selected tab to pop
    • if empty stack, scroll to top
  • touchable with ripple
  • keyboard:
    • autofocus and return key
    • space under keyboard and dismissing
    • keyboard type, capitalization and autocorrect
  • animated with useNativeDriver
    • only some properties supported -- no layout properties. use
      transforms whenever you can rather than width/height/margin,
      so you can take advantage of this
  • nativedriver for animated.event in scroll view or it'll be janky
  • loading states
    • onPressIn trick for preloading
    • placeholder elements
    • using data that you already have to partially render
    • loading state for image: what do you see when it's not there? maybe
      grey placeholder, maybe gradient, maybe activity indicator, maybe
      low-res version
  • deferring rendering expensive (eg: maps) when possible
  • status bar color, size
  • fading in network images
  • cancellable gestures
  • meaningful animations -- shared transitions for example
  • respect battery state
  • prompt before asking permissions
  • portrait / landscape: lock if you don't support
  • android back button: navigation library can do some things but not all
    for you, need to consider where else users expect it to work
  • compress images properly, provide 2x/3x
  • sometimes text should be selectable
  • ellipsize truncated text
  • respect network status
  • splash screen (white flash)

Metadata

Metadata

Assignees

Labels

StaleThere has been a lack of activity on this issue and it may be closed soon.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions