Android Development

Beginners Specifics to Android Development

Sidharth V
The Startup
Published in
5 min readJul 30, 2020


An honest route map to the learners in the world of coding.

When I started learning android development, I was so confused. How do they do that? How can I crack that? Where can I learn that? Am I doing this right? All these baffling questions were running across in my mind. There is an infinite number of paths to becoming a developer. After researching the boundless information on the internet, I ran into many great resources through bloggers, YouTubers etc. So here I would be sharing my experiences and resources for helping you guys.

First Step — Learn a Language

For Android development, you could go with Java or Kotlin. You must emphasize on learning the concepts, basic syntax and best practices.

Java: Java is a popular language used for android development. It has been the official language for a long time.

Pros -

  • Great community support, finding bugs and issues will be easier as chances are people have already encountered similar issues.
  • Abundant resources to learn. You can find many tutorials and guides in Java version rather than Kotlin (although it could change)
  • Java is widely used in the industry, not only in android development. So learning Java could help in getting other jobs too.

Cons -

  • Too much boilerplate code. You might end up writing many lines just to set up classes.
  • Lately, Android is narrowing its support to the Java language. It’s evident in their latest documentations. You might find that most of the new guides are in the Kotlin version.

Kotlin : Kotlin is a relatively new language. It is also an official language for android development.

Pros -

  • Kotlin’s language features make android development so easier, like coroutines, extension functions, just to name a few.
  • Concise- the amount of code written will be reduced.
  • Recommended by Google for Android development.

Cons -

  • Relatively new language.

I, personally, would recommend that you learn Java first and then move to Kotlin (If you don’t have any programming experience). But anyway it’s your choice.

Set up a development environment

For starting development you will require to install Android Studio, JDK etc. You just have to follow the instructions in the Android developer site.


You should know some of the key things in android development. Knowing these topics would help you to have a better understanding and control of the code you write.

  • Android Project structure and source code
  • Context
  • View, ViewGroups, Resources, Layouts
  • Activities and Fragments Lifecycle
  • Intents and Fragment transactions
  • Debugging using Debugger
  • Layout using Recycler views, List views etc.
  • Android Permissions
  • Android Architecture (MVC,MVP, MVVM,MVI)
  • Connecting app to Internet
  • Threads and Background services
  • Android Architecture Components
  • Unit testing

The above-mentioned are things you might want to put on your ‘Must-Do’ list. There are many more topics you should know, and there are plenty of insightful blogs and articles out there that detail on these topics. I have linked the articles which discuss these in detail.

Best Resources to learn Android Development

Although, all the resources you need to continuously teach yourself are out there, here are some of the best resources I found. Most of them are free. But they do have paid courses which are exceptional and are super supportive!


  • JournalDev : This website provides indexed topics of core concepts of Java which are explained well. This also has numerous great articles on other topics like Spring, Python, Android development, etc.
  • Effective java by Joshua Block : This book is not exactly aimed at beginners. But I highly recommend reading this after you get a grasp of Java language. The book has comprehensive descriptions and explanations of best practices and patterns that one should use in Java.


  • Android Developer Codelabs: This would help the programmers to get an insight into Kotlin language. It has code snippets and examples with great explanations. It also includes homework assignments which are focused on improving you throughout.

Android Development Resources

Articles and Blogs :

YouTube channels :

Community Groups :

  • Android United [Slack Group]
  • AndroidDev [Discord Group]
  • Android Discord [Discord Group]

Podcasts :

Personal takeaways

Using StackOverflow and Google search : Almost all developers use StackOverflow and google to find out issues in their code. Some might be tempted to copy the whole code they find without knowing what it’s for, Avoid that. Try to understand the code and how it works before you use it.

Sometimes the accepted answer on StackOverflow wouldn’t necessarily be the best solution for your problem. (It might be, for that question) You should go through the answers, analyze and understand them and choose one that works best for you. Take time in breaking down the problem in subparts, or functions, or modules. And always take a look back to check whether the code can be improved, or is there any other creative or an easy way to solve the problem.

Use a design reference : In my opinion, you should always have some reference design for your application. Try to design your app in some prototyping tools such as Adobe XD, Figma etc. These tools have free plans and are very easy to get started.

Using a reference design while developing, you would definitely end up having a better idea of the navigation and the layouts of the application.

Go through source codes of Open Source Projects and Android Components: Reading through the source code of good open-source projects and android source code can help you understand how you can write better code. Read more. Try to understand how they write efficient, testable and readable code. Learn from these and apply these into your projects.

Never stop learning : In the programming world, there is nothing like a perfect code and you can’t know everything. Anyone can still teach you something you don’t know anything about.

A programmer is not a label — it’s a process. I have constantly become and am still becoming a better Programmer. What I am trying to put across is — Whenever any coding problem is given, by basic instincts most of the people follow some predefined steps which allows them to approach that problem effectively. Knowingly or unknowingly, even you might be following some of these steps when you are given any question.

The problem-solving process is one of the hardest parts of the development cycle, but it also brings the most joy. This ubiquitous paradox keeps your fun alive while coding.

As the saying goes: the more you know, the more you know how much you don’t know.

I’d just like to say I really enjoyed writing this, and it makes me really happy to have been finally able to give something back to the incredibly supportive programming community everywhere.

As some of you already noticed, this is my first blog post, but you can be sure I plan to write more.