Closed
Description
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
- only some properties supported -- no layout properties. use
- 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)