Building Mobile Apps

Owning Cleartrip’s mobile apps between 2014–16 was one of the most satisfying assignments I worked on. It was the beginning of the mobile growth years in India. We had the opportunity to shape the direction of the product. The team’s effort improved most metrics. There was external recognition as well. The app was selected Editor’s Choice on both App Store and Play Store in this period and won a few product-design awards as well.

The success of the mobile platform also gave me the opportunity to be part of public discourse on mobile growth in India. Here are some mobile app development principles I had put together for a presentation during that time. Much of it is still valid.


  • 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 reduce 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). But respect the physical limitations of the device — display, storage, bandwidth, battery. [1]
  • Respect the platform. Use first-party patterns where available. Don’t port patterns across platforms.

[1] This is one aspect where things have changed significantly in the last 2 years. Most of these aren’t practical limitations any more. But that is no reason to be complacent. Behaviour (eg. concern about app size) is hard to change.