8 key features to make your app popular

Smart phones and their apps have today taken a very high priority in everyone’s life.

Dependency on smartphones and apps vary from person to person depending on their interest, age, surroundings and requirements. Smartphones can be used for entertainment ( to access youtube, vimeo , saavn etc.) or to manage official works (by using docs, dropbox, emails) or to socialize (via apps like facebook, twitter, whatsapp etc).

After using smartphone for more than a year I came to realize that even though I have 40 – 50 applications in my phones, there are only 5 -10 applications that I use everyday. (Is it same for you? Please write about your favorite apps in comment.)

The crux is: people like to use apps that fulfill their requirements and are easy to use.  And this is what you should keep in mind while conceptualizing and designing a new app.

A great app will be simple, evolving and solve the purpose with least user interaction.

It’s easier said than done. However, after working as an iOS developer for past two years, I came to know certain things that can help you make your app popular. Let me share my learning with you.

1.  Using inbuilt UI objects can solve unseen problems. 

Sometimes using inbuilt UI objects (that are present in the IDE i.e. Integrated Development Environment) is more convenient than using custom objects and allows you to make better apps in terms of performance, simplicity, and presentation

Customizing these inbuilt objects to some extent can work but using a fully custom objects can sometimes run down your application in terms of performance or increase your development effort (unseen problems are more common when you use custom objects). Like using custom gradient throughout the application or using your own custom list instead of using the default one can introduce flickering which is not at all good from user point of view, You also cannot say how much it would take to draw that particular object if you haven’t implemented it before or googling went in vain…Moreover while using custom objects you risk the chance of bad user experience if your object is not intuitive.

2.  A beautiful design can sometimes be complex.

As I told earlier, everyone wants to create great UI and in order to achieve that, the design becomes very complex. In this case, if the implementation of the design goes difficult, that’s not a very big issue (as it’s only going to fetch some more time and brain), but if the same becomes difficult for user to understand, then it’s a really major issue. If something is not easy to use, it’s better not to use it. So a beautiful interface isn’t essentially simple and easy for user.  

3.  Giving too many functionalities on the same page can ruin the app’s UX (accessibility problems).

There is no such thing as information overload, just bad design. If something is cluttered and/or confusing, fix your design.” Edward Tufte

If you are thinking of giving too many things to a user on a single screen, then think twice as  may be a mistake. Putting everything on same screen may frustrate, annoy or confuse a user. To make things easier for a user and urge them to use the app, functionalities should be evenly distributed so that user doesn’t get annoyed performing actions on same page.

For example, if your app has a signup page with various fields on the same page, then hardly any user would register. But if you distribute the whole thing in modules like personal information page, contact information page, etc. then people might consider filling the stuff. App users don’t like to be on a single page for a long time.

4.  Too much memory consumption can put a full stop on your application.

While I was trying to implement a custom marker, I faced this issue. I was fetching nearby places (at max 60) from Google Places API, and then showing them on the map. The places were to be shown using custom marker, that would contain the name and image of the place. So in order to achieve this thing I was rendering every custom view (for every place) to an image then using as marker. Then I was repeating the process if user location changed by more than 1km. While repeating the process the application would crash because of excess memory usage (due to rendering of view to image).

There is one hidden issue which should always be kept in mind while an application is in development process, the process which is consuming very high memory should be identified and modified. Too much memory consumption by an app, can create a memory pressure on other running or background apps, which can lead to force quit of the app by device system.

5.  A successful application is never one-time effort. 

After you have developed and released an application, it’s never like work is finished, its the time when real work starts. Its the time when you have to improvise your application, based on user feedbacks.Improvisation can be adding innovative or new features to the app or making a previously added functionality better and enhanced. No application or idea is successful in one go. One has to improvise a lot so that they can match up to user expectations. Improvisation always brings everything close to success step by step. Take a look at each and every application that are on the top in their category, they are all a result of continuous improvisations.

6.  Confusion increases with increased number of system settings options. 

There are many applications which provide a lot of features in terms of settings inside the app. These settings are meant to modify application visuals in terms of user preference. But presence of so many decision making controls can create a level of helplessness or confusion inside the user while finalizing things (that’s general human tendency). This can lead to sudden stop on the exploration of your app by user. This is one thing that should be kept in mind while providing settings inside the app for user.

7.  Maintaining progressive disclosure pattern within the designs seems engaging to users. 

This pattern emphasizes on showing the relevant information to the users, while hiding others until requested. In this way you de-clutter the user interface and after that users are invited to perform actions to reveal the hidden information in next step. Users find such UI to be highly engaging as every action is prompted and performed by them only.

For example, “Show more” link that reveals more information on user click is one of the simplest forms of progressive disclosure. This pattern can also be used while filling long Sign Up forms. 

8.  Application should be intuitive.

Knowing how people will use something is essential.Donald Norman

Just imagine that your app is released in the market. Someone downloads the app, and then he feels as if he needs an instruction manual to go ahead with the application. This can be the biggest failure for an application. Don’t make the users think what to do next. A mobile application should be intuitive, i.e. one should look and understand what to do and how to do. For example, buttons, text input, and other user interface elements should be visible when required and disappear from the screen when not in use. Overriding default gestures can lead to similar problems. These problems can make the user feel stuck in a part of the application forcing them to quit the application.


At last I would like to say that, it’s always about urging a user to use your app, not forcing them. Sometimes forcing a user to do unnecessary things can change your application’s status from “INSTALLED” to “INSTALL” in a user’s device.

This is it. Feel free to comment and provide suggestions. Any suggestion for improvement or new ideas will be appreciated.

Swarnendu De

Swarnendu is the Co-founder and Lead architect at Innofied. For the last seven years, he has been working with numerous JavaScript technologies including Backbone.js, Node.js, ExtJS, Sencha, and so on, and has developed more than 50 complex JavaScript-based applications thus far. He is the author of the book Backbone.js Patterns and Best Practices. Swarnendu regularly writes at his personal blog, Innofied Blog, the Tuts+ network, and provides support and assistance for JavaScript, Sencha and much more around the web. You can reach him through his website at or via Twitter at @swarnendude

Ready to talk to us? We’d love to hear you.

Note: We'll provide a fully signed NDA for your Project's confidentiality.