Is Your App a good citizen ?
Every developer has this responsibility!
If you are an app developer OR a tester, ask yourself this question: Is your app is a good citizen in society of apps ? Each mobile device is like a different society where each app can be seen as an individual who is playing some role. Now in addition to main role of that individual it must comply with traits of being a good citizen.
It is similar to us, human beings who have some personal goal to achieve but we have some social responsibilities as well. What happens when we just think about ourselves and forget about society ? Simple, society abandon us. When it comes to apps, they are no different. If they wont fulfil their social responsibility, they will be gone. They will no longer be allowed to stay in society. They have to find another home. Yes, it is painful.
Traits of a Good Citizen
Each app has some social verticals it should take care of when doing anything. It is similar to Humans, where paying extra effort is not that important and possible for everyone but being conscious does not demand extra efforts and you can give your part easily to society.
Power — The fuel
Being a human, nobody says you do not use electricity. It is your basic need. Of-course you have to use it. But how can you help society ? Simply by not wasting it. If you have enough money, it does not give you rights to waste electricity. So, if you are not consuming it, do not use it. TURN OFF appliances when possible.
Same applies to apps, for them it is Battery which serves as electricity for them. Nobody is saying you not to use it, but do not waste it. Whenever your app does something in foreground OR background, it eats a fraction of battery depending on task it performed. As mentioned above, if user needs it; you can not and must not avoid. But what about those extra wake ups and background processing which could have been avoided!! Yes your few couple of thousands of CPU cycles wasted that battery which your user could use it in emergency OR any other app could help him in another needy situation. Think your owner (user) could not capture his baby’s first walk Video OR could not make that emergency call because your app ate battery in background. Yes it is awful and more serious than it sounds at first.
Network of Money
Assume your Child buys a chocolate, eats half and then throws it away daily. Not only that she buys some OCOHC company chocolate which charges double for its packing. Yes they sell same chocolate lose in half price. What will you do in this situation ? If you are in your senses, For once OR twice you will notice and then :
- You could give her only half which she eats
- You could buy lose chocolate
- If 2nd option does not help, You could reuse same packing you earlier bought
- You could try some alternate candy chocolate sometime and see if your baby likes it
- You could quit job, travel to Europe and hide from your Kid until She turns 18 and can buy that chocolate herself
- You might have better option
On the same notes, when it comes to apps; they use network data and Network data is directly money for users. In most past of world people pay so much for network data which your app does not care at all. Yes each byte matters, There are plenty of resources available online which will make your app a good citizen in Network wing. You must use caching, data compression, download what user needs, download as per mobile device, pre fetching, do not fetch unnecessary data and few other optimisations here. Being in background and consuming network data is similar to a thief trying to steal some money from your pocket when you are sleeping in that train.
Clean your Shit
You live in a home and everything has a upper cap. From space for shoes to space in wardrobe to kitchen to space in your washroom. Assume you start messing up every place and sooner or later YOU are out of space. Where will you sleep ? Where will you cook ? Where will you eat ? Where will you ***** ?
An app goes to same dilemma when it does not care about upper cap of resources it has. One perfect example here is RAM ( Memory ). Memory is your app’s home and it has got upper limit. You simply can not mess up with space and continue. You should know what to use and when and more importantly what to clean and when. Because when you are really hungry and you will be in need of space to cook and eat, you will die out of hunger.
Suppose a portion of your home was painted a month ago. Will you paint it again ? Assume you do. Then what will you waste ?
- You will waste money no doubt — buying raw material, labour etc
- You will waste natural resources which were used for material
- You will waste existing paint, electricity used etc
- You will waste your own time
Question is why would you do that ? Nobody in their senses would do that. It is plain wastage. Unfortunately apps do not care about digital waste. They think it is okay to fetch same data OR to draw on existing pixels again and again. Remember, when you overdraw -> You waste CPU -> RAM-> Battery. Everything is connected. At the end you are digging a hole for yourself.
Lastly, relate it to a Person who used to think same about Human society. He wasted food because he had money, he wasted electricity because he could afford, he burnt energy resources because he did not care. One day, when we went to buy any of these resources, he no longer could. Resources were limited. He could not utilise them when he was in real need.
Similar is the situation for apps, if they do not waste any of the resource available, they are not only helping user; they are helping themselves as well. Your app serves a purpose in its society of apps, it can perform long and perform well if it will get resources when needed. In addition, being a good citizen is a matter of pride in itself.
Share your thoughts in comments. Please hit the ♥ button in the footer so that more people can appreciate!