6. Start contributing to open-source

If you have developed something useful and is using it in your own app, then consider open-sourcing it. You will have so much to learn in the process which will help you grow as a developer.

If you don’t have anything to open-source, consider checking out other interesting open-source projects and fix some bugs, improve the documentation or write a few tests there.

Even the smallest bit of contribution will be helpful for the project maintainer to keep the project running.

Tip: Here is an awesome guide for you to get started with open-source contribution.

7. Make your IDE work for you

Start spending more time in understanding the IDE you are using — Android Studio. It can do so much more than you think it can. There are so many cool features and shortcuts hidden in the IDE that most developers don’t know or never even try to discover.

Make it a habit of discovering new and better ways of making your tools work for you thereby improving your workflow and productivity.

Tip: Here is an amazing article to help you master Android Studio like a pro.

8. It’s time to architect your app properly

Most of the time we end up dumping all our code in the Activities or Fragments (you can blame me for this sin as well) turning them into gigantic God objects which are nearly impossible to maintain and test.

It is very important to adopt a good architecture for your app, like MVP, MVVM, Redux, etc. Consider separate your app’s business logic, view interactions, and data interactions into different layers making them easy to manage and test.

Tip: Checkout these useful blueprints from Google to make your life easier while architecting Android apps.

9. Learn clean coding guidelines for Android

You just can’t ignore this. It becomes really difficult to work with developers who don’t write clean code maintaining at least the basic coding guidelines of Android development.

It’s not rocket science at all and should not take you more than a few hours to learn most of the fundamental Java and Android coding guidelines. It should not be an one time thing, rather a lifestyle change for the developer.

Tip: Here is an excellent resource for you to start learning the standard coding guidelines.

10. Spend some time learning about the Android best practices

To get yourself an edge over other developers and to build apps that look good and work well, you need to start learning some of the best practices of Android development.

These are some of the do’s and don’ts that can help you in becoming a better developer and make your app stand out from the rest.

Tip: Here is a compilation of some of the best practices for you to make better apps.

11. Utilize your free time effectively by listening to podcasts

Try to utilize your time properly and effectively. There are times like when you are commuting to/from office, working out at the gym, driving, cooking etc. and your genius brain is not doing too much.

You can utilize times like these by listening to some resourceful Android podcasts. Always prefer to keep your brain occupied with useful and informative things as much as possible and always try to make the most of your time.

Tip: Fragmented Podcasts and Android Developers Backstage are two amazing podcast sources to start with.

12. Don’t over-engineer things. Be realistic.

I have seen this happening not only with me but with several other fellow developers I have worked with as well. Thinking about something before starting to work on it is good (rather very good), but over-thinking and 0ver-analyzing things lead to nothing other than unnecessary confusion, delay and anxiety.

Do what seems good for the project right now and you can always adjust to the changing situations in the future as required.

Recommended Reading

13. Try to learn about design

I can understand that being a developer your primary focus is on learning to write better code and that’s pretty obvious as well. But if you want to be a complete developer, you should start spending some time everyday on learning and understanding about UI and UX design as well.

This will completely change the way you look at the apps you have been coding all the time. Try to talk and interact more with the UI and UX designers in your team to get better insight into app design.

Tip: Give this amazing book a read if you are interested in understanding how design actually works.

14. Start being a perfectionist

This is a subjective topic as what is “perfection” to me might not be “perfection” to others. But as a thumb rule, try to achieve the best possible version of the product that you are required to deliver, all the time.

Never settle for less. Don’t work on something just for the sake of it. Be passionate about the work you are doing and do it better than others. This will help you constantly grow and become a successful developer in the long run.

Tip: Talking about being perfect, this tool Instabug, has helped me a lot in getting my apps close to perfection with its super-simple yet effective in-app feedback system and powerful bug reporting tool. It has made it really easy to get direct feedback from my users and improve my apps based on its detailed and insightful bug reports. It is definitely worth a try.

15. Consistency is the key to success

If you want to be successful as an Android developer (or anything else in life), you need to be consistent.

Doing something for a few days or weeks and then quitting won’t take you anywhere. Try to visualize where you want to be as an Android developer in the next few years and stick to your goal whatever challenge comes your way.

It is very easy to start doing something, but very difficult to continue doing it with the same passion and dedication for a (very) long time.

16. Start small. Expand slowly.

As a developer, you should always try to break down any complex problem or feature you are working on into small, simple and independent components that can be understood and solved easily and quickly.

Don’t get overwhelmed with the initial size or complexity of a project. Everything can be solved once you are on the right track. Start small, take baby steps and expand slowly.

17. Always have a playground project in hand

Having a playground project in hand can completely change the way you learn things. If you come across something new in Android somewhere, make it a habit to immediately give it a try in your playground project.

Suppose you discover an interesting Android library somewhere. Instead of just skimming over the docs and the APIs, you should start playing around with it in your playground project right away. This will give you a much better and deeper understanding of the library.

18. Start writing more tests

I can’t stress enough on how important this is. You can’t conclude a feature to be complete until you write exhaustive tests for it. Tests will help you build confidence islands on your code.

Don’t make the mistake of neglecting testing or considering it as something “optional” and making your life more painful with regression bugs later. Remember, a code written without tests becomes legacy code instantly.

Recommended Reading

19. Consider adopting TDD

When you are developing an app, consider making the choice of building it in a robust and efficient way so that it can survive the test of time.

Start following the “red-green-refactor” cycle of TDD. First write the test case which will fail (red), then write the actual code to make the test pass (green) and then go for cleaning and optimizing the code further. (refactor).

Test-driven development is a way of managing fear during programming. Fear makes you tentative. Fear makes you want to communicate less. Fear makes you shy away from feedback. Fear makes you grumpy. — TDD By Example

20. Setup a proper automated release mechanism

As a developer, try to keep yourself as less occupied as possible with things that can and should be automated, like app quality checking and release.

You should automate the quality checking mechanism with tools like CheckStyle, PMD, Lint, FindBugs. Running all the unit and instrumentation tests before merging any major change is a must.

When all of these checks pass, you get the green signal to publish the APK to Play Store or distribute it in any other way you want (like Crashlytics Beta).

Tip: Consider automating the Play Store publishing process as well using tools like this.

21. Embrace the reactive programming approach

If you want to level up your skills as an Android developer, you should definitely consider embracing the reactive approach. This will force you to think in a completely different way in which you build apps.

Going the reactive way will surely help you write interactive apps faster and will make your development life easier and fun again.

Tip: Here is an excellent series to learn the basics of RxJava for Android develoment.