Sunday, November 20, 2016

Principles for great mobile app development

For the past few days, I've been reading up on mobile development principles, and how the user behaviours are different on mobile as compared to web. Though I manage product roadmaps for Android and iOS apps for hoteliers at Goibibo, I feel that the mobile world is so fast that it makes most learning obsolete in a matter of months. As such, the objective of this post is to condense various mobile development principles that I believe will be relevant years from today.

Given that the touch screen mobiles have been  around for only 10 years, it is surprising the kind of behavioural changes mobile is bringing to human interactions. From notifications for new messages to instant gratification on ecommerce apps to making yourself more healthy using the plethora of apps, mobile is touching us all in a way that technologies of the past weren't able to. It is hard to imagine that a machine 20X smaller and 10X faster than the desktop computer I was using 10 years ago is in the hands of the larger majority of people. If anyone in 20007 would have told me that this would be the case in 2016, I wouldn't have believed him.

But anyway. Much of the greatness of mobile is in the app ecosystems that have built around the 2 dominant app development platforms - Android and iOS. So here go some principles that I believe will continue to be applicable to mobile development:
  1. Support snackable usage
    Given mobile has limited real estate, users can go through a lot more content with higher attention span as compared to web. Users can also check your application multiple times a day as per convenience. Hence, design the applications knowing that the mobile session will be shorter than desktop session on the average, but still more engaging.
    Make your interactions bite sized - so they stand out as a complete experience, and enable completion of tasks in small amount of time.

  2. Prefer flows over static information
    While web pages are easiest way to stuff more information, mobile suffers from latency and lack of real estate if there is too much information. So, a better measure of the efficiency is how long it takes to complete a task. It is thus important to maintain a fluid state of mind for the user, and ensure that s/he isn't distracted often

  3. Ensure that your users keep going
    While anyone can hit a dead end, you don't want your users to think they did something wrong. So as an important principle - don't ask them to do same task again, and let them continue. Any flow that has a dead end should be made more fluid and natural.

  4. Use familiar patterns
    Your users already interact with multiple mobile apps on a day to day basis, making it easier to experience your app better. There is a reason why developers still use php for new web development - there is a good amount of users of it, so the familiarity and understanding is good enough. Using existing patterns ensure that your users have to learn lesser number of things, making your apps all the more convenient.

  5. Create effortless and delightful experience
    There has to be a healthy amount of focus on ensuring retention of existing users, and it is thus important to ensure that the flows that a user experiences are delightful (leads into a reward) and effortless (doesn't require one to think too much). It is important to use analytics like crazy to identify where your users drop off.

  6. Utility > Design
    If you ever come across a situation where you have to choose between utility and design, choose utility. Great design is all about being naturally convenient, supporting users to achieve their work with minimal friction. If you come across such a situation where there is clash, it is worth it to rethink your design strategy and how you want to present the feature. This is not a license to completely ignore design - it is just about focusing on the utility of the product, because that is what drives the long term retention. If a cake doesn't taste good, no amount of icing or decoration will save it.

Hope that helps.

1 comment: