Building Great Mobile Apps

Some thoughts I had put together for a presentation a couple of years back. So much of it is still valid. Doesn’t include anything related to the sensory aspects of a mobile app.

  • Thinking from “first-principles” is the best way to solve problems.

  • It is still difficult to tap, type, correct and read on a mobile screen. Reduce and remove friction for these actions.

  • Reduce the number of taps required to reach a goal. Provide recommended starting points, combine actions to reduce clicks, ask for as few details as possible.

  • Reduce duplication, make it easy to “find again”. Remember recent and past actions, repeating inputs and “what I’ve already seen”.

  • Anticipate user needs and intervene. Assisted filters, fuzzy search and real-time input validation reduces stress.

  • Make it easy to assimilate information. Solve for aggregate (result-set grouping) as well as specific information (result metadata). Progressively disclose details.

  • Gracefully handle errors - What did I do wrong? What are the consequences? What should I do now? Switching context to Google for solutions is stressful.

  • Solve for the journey; not the stop. Engagement brings users back. When users come back, trust increases. Increase in trust leads to (repeated) conversion(s).

  • What does a customer lose by leaving? What does a customer gain by staying? These are the best use-cases.

  • The best use-cases decay slower than others increasing retention. Encourage and guide users to these use cases.

  • Solve for “mobility”. Use device capabilities, solve mobile specific use cases (eg. “near me”, “right now”, “share”).

  • Respect the platform. Use first-party patterns where available. Don’t port patterns across platforms.

  • Respect the physical limitations of the device - display, storage, bandwidth, battery.