I am observing some regular mistake that make a good application to be in category of crap. From the last 15 days i am observing trend of Play store applications. On basis of all my observation and experience, I suggest you some tips to improve your application quality
Never allow your application to be unresponsive
User can tolerate anything but can not tolerate if becomes confuse of application behavior. Extra few seconds can harm your application reputation, if it does not show any required message to user. So to avoid this, always show proper progress message while you are doing background task. Use background service, Thread, Asynchronous task where performing time consuming task and show loading. E.g. Reading data from Data base or Downloading data from URL. Even though in latest version of android you can not call URL in UI thread. But being proactive is always good.Use multi-pane Layout with Fragment
Every one knows how immense the screen space for mobile is? Use complete screen space as you can. Wasting space is a bad development habit. Use different layout for different orientation, device. Use fragment to show list and detail on same page in landscape mode, as we have enough space.Use combination of Relative Layout and Density Pixel(dp).
dp is device independent pixel,which provide good design on phone with different densities. Relative Layout align child on relativity, so chances of hampering layout reduces.Never keep unnecessary Permission
Recently, I read review of my application. User raise one issue, why should one's allow to make phone call. I was surprised that my application never need this permission but i forgot to remove it from manifest and it cost me worse review. So never play with user, Take preventing measure and remove all permission that does not required. This is not common issue but sometimes we commit this by mistake. So double check your manifest permission.
Always shows proper Alert
Showing proper alert, is big boost to make user happy. I download one application which always show "Your connection is not available" either i have connection or my server does not respond with in time (while downloading application data).This make awkward as i was confused. So always keep related message in alert.
Avoid to use high quality Image if you do not really want these
Using high quality image, limit available memory for your application. When we load image into memory, it take lots of memory and application heap size shrink drastically. And this becomes the main cause of crashing application. This is really bad experience. If your application really required image of high quality then you can scale them according to device heap size and density. Using image of 3000*4000 on 720*1280 resolution does not mean anything.
Release hardware if you are using
If you are using hardware like camera, Bluetooth then please release them properly after use is over. Most immense issue is of GPS if you are using GPS then remove update after use is over. Else it will drain user battery
Never forgot to close connection
Either you open data base or reading data from online URL, make sure you close all connection pointing to source. Close Input stream and data base connection when you read data. This will help you to avoid conflict and save your memory also.
And last but not least, if you have commit any mistake. Then do not need worry, upload a updated version of your application so that user will download your update version. I consider application as child of developer, so do not leave any stone to be upturned to make it successful