Thursday, October 16, 2014

Psychological analysis of popularity of mobile apps


Now we are in the era of mobile networking, smartphones can be seen everywhere, almost user behind the smartphone is contributing to the global networking everyday, not just by posting contents or comments on the social medias, but also he/she is reading the online information.

One phenomenon is that some mobiles apps are becoming more and more popular, such as Snapchat, Whatsapp, Instagram, and even a very simple app such as Yo can get more than thousands of millions of users. But at the same time, for most of other apps, it's very hard for them to get event 1K users. What's the essential reasons which lead to this huge difference?

To understand the reason, from my point of view, besides the UI/UX design of the apps, the most important feature a successful and popular mobile app should have is to catch user's sweet point, psychologically. 

I wanna list some psychological principles I found in those popular mobile apps:

1. Desire to share private things in a risk-free way:  
     I would like to talk a bit about Snapchat firstly, the most funny and important feature I like in this app is that I can share a picture to my friend for just a certain period of time, and after that, it will be destroyed. I never tried this before, because of this feature, people can share more private pictures even including nude pictures to their close friends while no need to worry that somebody may leak these pictures online. The psychological principle behind this I think is people has a kind of desire to share private things with others in a limited range, cause no one wants to be judged by the public, but by a few close friends, it's okay. 
    This remind me about another app called "secret", I think the psychological principle behind this app is similar but with a bit difference. Everybody can share their personal awkward and ridiculous secret in a public platform, and others can comment on this, most of the users are interacting in anonymous way, possibly only the back end engineers of this app can tell who is who in the app.

2.  More personal, more sticking:
     People want to feel special and unique, a customized and personalized app will give user this kind of feeling. How to make it personal? Well, at least, I think there are two ways: put my personal friends in this app and allow me to share or post personal things in this app. All of the social network apps such as Facebook, Twitter, Google+ have this functionality. From users' point of view, if they put more personal things in an app, more likely, they will check this app. For example, I rarely posted on Facebook and Wechat, but I check these apps frequently, at least every two or three days, because, my friends are also in this app, and I want to check their status too.

3.  Have fun in a boring life (more interactive, more fun):
     Thanks to the internet and our powerful logistics system, we don't need to go outside and interact with other people, we can get what we want just by connecting to the internet and a few clicks on a web page or in an app.  That also means we are losing one of our major nature instincts: sociability. Life is becoming boring since individuals are more independent from each other than before. Apps which can make our daily life more fun and colorful definitely will get people's favor. For example, Yo is such kind of app, it's very simple, and the functionality looks "stupid", but it is fun, you have to admit this. I think it has the simplest way for you to interact with your friends, and that's why it's spreading quickly like virus. 

More apps I play around, the more I feel that a success of a mobile app is less related with the technology, but more related with the psychological issues. We did not see many fancy technologies in those popular apps, but we did see many unique functionality or feature in those apps. Hope those psychological principles I listed above may inspire us a bit when we're developing our own mobile apps. 

Android developer notes


To create a great product, you need to care about all aspects of it, usually we classify it into two categories: UX and UI.

UX is the most important, without this, user is not gonna use your app even your app got the most beautiful UI.

I'm listing some UX glitches here, so others who are reading this blog will benefit from this.

1 Network issues:
    We can guarantee that our app will always be used with high quality wifi connection, in case of slow/very slow network connection, we need to think about some scenarios in which user may get some problems:
     The principle here is: you can suppose the network is always reliable and even available, in this case, you need to make sure firstly the network task won't block the UI thread, and secondly, the app won't crash in case we cannot get data.

     a) You have a list view, and you also support search functionality for that. Before the whole list load, user may start to search using some keywords. Firstly, we need to make sure the app won't crash; Secondly, we need to show some hints to the user, cause in this case, definitely no result will be found for the search.

      b) You have an async task for one activity/fragment, and in this task, you're gonna use the activity instance, before the task finish, user switches to another activity / fragment, so what are you gonna do to prevent the potential app crash since the previous activity instance is already destroyed. Then in this case, don't use the instance of the activity, use the whole application instance instead.

      c) Sync up between menu items and network task: suppose you're using a global variable which will be assigned in an async task, and this value will be used when user click one of the menu buttons. But due to the unreliable network, before the global variable is assigned, user may click the menu button. Then your app should tolerate this case and make sure it won't crash.

To be continued.