A “what to learn” checklist for Android beginners

One of the hardest things for beginners is, just grasping what they need to learn. We come across this a lot, when students ask us, what kind of topics they need to learn before they become proficient in Android. The checklist isn’t short, but nevertheless we have decided to list most of the points that beginners should check-off. 

First I must emphasise that this is a checklist but you can skip a step and you don’t need to learn it all in one week. It will take quite a bit of your time, but in the end you will have enough skills to start a project of your own or start asking for internships, help a friend or acquaintance or even start applying for jobs.

We will try to explain a little bit about every topic. But some things you will have to research on your own, nevertheless let us know if you think we should add something to the list.

Android Studio

Since Android Studio is the best IDE (Integrated Development Environment) for Android development, this is the first thing you must conquer. Our content focuses a lot on explaining about Android Studio as we explain development for Android. This goes the same for Layout editor and for Code Editor. 


Layout Editor

We have added a deeper look into Layout Editor as well, check our Layout Editor blog and learn about it and also find out a little bit about a few hidden features, so that you will develop your activities (screens) with ease.

Layout Editor is part of Android Studio, where you design UI (User Interface) of your app. The main parts of a Android project are XMLs for designing activities, drawables and other resources and Java (or Kotlin) files for all the code you will write. During more advanced projects you will also learn about the structure of a project in details.


Emulator, drivers and running apps

As we are creating apps for Android and we want to run them to see how they look. One of the first things we need for that is an emulator. Android Studio has the ability to run an emulator out of the box. It has a lot of features, it runs fast and looks nice, it is simply just a perfect tool to have. You must create new one to run your apps on. This is just like going to store and picking best specs for you device, but it will be an virtual one.

Sometimes you will have to prepare your computer to run emulator as well, here is a extended manual on how to configure hardware acceleration for emulator.

You can also run app on you mobile phone. This a good approach as well as you check the touch and feel of real device as you develop your app.

Here is a explanation on how to install drivers to run app on your device.


Android SDK and API version

This is really a broad topic since it contains all that Android is about, all its functionalities, but as a beginner, all you need to know is where to look for a new version, how to install it and a few pointers on which one to use.

A simple explanation would be: SDK (Software Development Kit) is a bunch of tools, documentation, examples and code for us, developers to use. API (Application Programming Interface) is an actual collection of Android functionalities, from showing screens, pop ups, notifications… everything. We will give you a hint, use the API above 21 since this will get enough of devices to work with. And for a new project always aim for the last three major versions.


UI Components and UX

UI components will link your app together, all the code, knowledge and data will be presented with some form of UI. UI means “user interface” and this is what a user sees. UX means “user experience” and this is the flow through the app, interactions, reactions to user input, the whole story that happens within the app.

The best source of getting familiar with UI components would be our Calculator course since it explains most of them in great detail.

Registration form with checks
We have a few more blog posts explaining other UI Components, like spinner, radio button and mail performing checks in our registration form blog post.

But check back, since we are adding them as we go along.


Storing Data locally within the app

Storing data is important for every app. It can be as simple as storing emails for login to a full blown database with tables, relations, filters… We think you must go step by step on this topic and learn a little bit about what data is, what are entities and where to store them.

The first topic we cover is in our blog about storing data within sharedPreferences and you can also read our blog about sharedPreferences. The next topic is storing even more data by using Room, which is a great implementation of ORM and is part of Android. ORM let’s us work with data as classes in our code, this is a more modern approach, but Room still allows us to use SQL statements if we want to.

RecyclerView single item
Once you have data in your app you need to show it. And you can do this in a lot of way, we show one of them in our blog about showing data in RecyclerView.


Calling REST APIs

All the mature apps use some kind of REST (Representational State Transfer) calls. Let me explain. If an app wants to know what is the temperature outside, in some city, it would use a REST API to get the data. If we want to login into a social network and get the list of friends we would use a REST API. This is a topic strongly linked with storing data since we are storing and reading data just not within an app but on a server. The main topic to learn is how to transform data from a REST API to local data structures and classes. And be sure to learn how to react if an error occurs and how to send data to a server.


Material design, styling and themes

Everyone likes a nice app. For beginners it is best to use material design and the Android Support library, which can help us make an app that will look great even without using a designer. For mature apps we will understandably use a designer to prepare a UI and a UX but for android it will be based on some variant of material design anyway. So learning it is very useful.


Java or Kotlin and Objective programming

We are still teaching Java since it can be used elsewhere as well (Java backend for example), but Kotlin is a great choice as well. No matter what we choose for our language we will have to learn some basics about it. 

Why is it  important to dive deep into essentials? Having a good foundation on essentials and Java basics will help you develop more complex applications, while keeping them simple and organised at the same time.


Debugging is an important part of programming since a lot of unpredictable flows will happen in our apps and we need a way of figuring out what went wrong, what was the source of an error and find a code that produced that error. This looks like a very hard topic, but at the core it is something that will help you learn more advanced topics with ease, since you will know how to track what the application is doing behind the scenes.


Making your app ready for Google Play

Opening your app to users all around the globe is one of the main motivators for building apps in the first place. We must have knowledge about signing our apps, how to upload them to Google Play, what kind of text descriptions we need, screenshots we will show in the store... We need icons, designs and texts. This knowledge will come in handy a lot. It will help you distribute an app to the first test users in the alpha store and then move to a more broad audience with beta and the final step with the public release.



These is just a short list of topics we think that you need, to become a great developer and we all want for you to be a great developer and make us proud. We will add advanced topics as we go. Advanced topics will just make you stand out from the crowd and give you comprehensive knowledge about android. The last thing you need is experience and this means practice, and then more practice.

Please let us know if you want to learn more, if something is mission on our list...