From the crowd of billions of smartphones, 85% of devices use Android OS. Being so massive and widely adopted operating system, there are a lot of opportunities for app developers. We can frequently see new apps rising up or falling down on the Play Store billboard. There are some of the things I have seen good android developers follow, though most of these are valid for every developer. Let us dive in.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live – John Woods
- Don’t blindly follow trends – Yes! Here are the golden words. Implement when you need, not when it is cool. Definitely, you need to upgrade on a timely basis. But, just because it’s cool; don’t fall for it.
- Don’t always create variables — use existing variables. For example, while creating a list, try to declare the object globally, initialize the value per item when binding. This significantly reduces the memory burden of your app.
- Don’t include the entire 3rd party library; copy required class and use them.
- Compare libraries before using, don’t include anything you liked at first glance. For example — using Picasso instead of Glide will occupy less space. Picasso has 849 methods, while Glide has 2678 methods! Decide yourself!
- Don’t experiment if time is limited. Just go for tested methods.
- Shift to SVG from png! Png adds a restriction overusing that icon for various sizes. Using SVG (vector) for icons is a much better deal in various cases.
- Don’t use android assets, go for vector! Yes, you read it right. Android assets create various size icons and android OS uses them according to the device display. Instead, we can use a single vector icon for all.
- Use synchronized function when performing a sensitive task like login. Inbuilt features like synchronized prevent issues while working with multiple threads.
- Use more and more existing java features. There are some existing functions for basic tasks such as sorting or rearranging data. Go on and use them, don’t waste your time recreating stuff. Reuse the old.
- Use trending libraries only when needed — not because they are cool. There may be the case when you depend entirely on one library for your app. For example — if you are developing a video player you may depend entirely on the exoPlayer library. This dependency may cause you a headache when upgrading to android since exoPlayer doesn’t support androidx still! Such things don’t go well in the long term. External libraries are a necessary evil!
- Writing test cases is the source of truth — write the test for every case! I repeat — every case!
- Separate files based on functionality — Modularity is important. Especially in large scale projects. Though you can ignore modularity when dealing with a small project, just add code separately within a file in the form of functions.
- Read more and more blogs and official documentation – follow medium writers. You need not follow everything you read, it's just that reading ideas of others inspire you to shape your own ideas.
- Give as many interviews as possible! Yup, attending an interview can give you a glimpse of your strong point and weak point — which is off course very much important for self-growth. Rejected interview teaches more than the pass interview.
- Don’t ignore memory management. No matter what you build, if it utilizes memory badly, it needs improvement. Our mobile devices though have GBs storage capability, but still, they can’t match the operation powers of our desktop devices. Its always better to stick to methods that help you optimize your memory usage.
- Prepare the app flow before starting the project. Don’t rush to create features. Either prepare a prototype (that doesn’t take much of your time) or go on an prepare a flow chart. A practical approach to a problem helps you visualize the problems that you will be facing during development.
- Choose colors carefully! Not necessarily corporate apps or web panels need to look bad or old fashioned. The professional person using your software is also a human, go on and mix creativity with professionalism.
- Never blame the user for anything, never!
- Read errors first, then google. We all know how development works. We copy the error from the log and paste in google search bar and surprise! we get many 100 solutions for our error. But, hold on, wait for a sec and read your error once, that error may be specific to your project or it may be caused by some nuisance human error. Wait for a few seconds and read the log once.
- Don’t follow everything your non-tech seniors say. Though they may be seniors, when they are from non-tech background their advice will mostly be non-helping and time-consuming. Go on and find an experienced techie senior or junior who might think your way!
- If you stuck at an issue for long, leave it. One of the most fruitful ways of solving any programming problem is to not spending enough time on it! Yes, that sounds untrue, but that's true. Instead of spending more time, focus on the problem for the less but effective duration. This helps you multitask and also not eat up your brain.
Well, for now, I think that’s all I know! This was something I as a developer have seen other good developers follow. I too try to follow the same. See you next time!