Analyse your Android knowledge before you learn anything new
Before learning a new toolkit, work out what you already know. Four questions that decide where to start, applied to Jetpack Compose.
Day 1 of 100. Before the first line of Compose, a step that is easy to skip.
Whenever you start learning something new — or pick up something you left earlier and start again — the first step is analysis.
- Is it a new topic that you are starting to learn?
- If you have already implemented or learned it in the past, what do you know about the sub-topic? Write it down in points.
- Whatever language you are starting to learn, first check whether it is similar to some other language you already know.
- At last, write down your goals.
Let's explore all of that with Jetpack Compose.

The case this post is about
One snippet, met for the first time:
@Composable
fun Example() {
Row {
Image(
// ...
)
}
}
There are four separate things in those six lines that a reader either already knows or does not:
what an annotation does to a function, what a trailing lambda is, what Row is doing with its
children, and why Image takes a content description.
A reader who knows three of the four needs one explanation. A reader who knows none needs a different article. The four questions below are how to tell which of those you are before spending an evening on the wrong one — and the snippet above is the thing to try them against.
Is it a new topic that you are starting to learn?
It is — so let's first understand what Jetpack Compose is.
Jetpack Compose is a modern, fully declarative UI toolkit for building native Android applications. It is part of the Android Jetpack library and is designed to simplify and accelerate UI development on the Android platform. Jetpack Compose lets developers build UIs using a concise and intuitive Kotlin-based language.
The most important thing about Jetpack Compose is that it is a data-driven language. It gives you the ability to handle view state logic inside the compose tree — you don't need to keep that state in a data class and remember to update it. Compose handles it itself, which is what makes it good.
Here are the basics of Jetpack Compose. Just go through it. You don't need to understand everything yet; you only need to read enough to know what the Compose components are.
@Composable
fun Example() {
Row {
Image(
// ...
)
Column {
Text(
// ...
)
Text(
// ...
)
}
}
}
What do you already know?
It is important to analyse what you already know, because it saves a lot of time and a lot of repetitive reading on the parts where you are already fine.
As a software engineer, if a library or a piece of code already exists then you don't need to rewrite it. Start by using the library, then look at your timeline: if there is a lot to do, keep using the library for now and schedule a ticket to implement it yourself later. Look at the business first.
The same idea applies to learning. If you already know 30% of a language, start from the 31st percent and keep learning new things — because there is a great deal still to learn.
Let's make a list of Jetpack Compose learning content:
- UI components (
Row,Column,Text,Image, Material theme,Button, and so on) - How to make data-driven composable functions, so you can generate previews
- Building a Navigation Compose graph, so every feature is independent of the others
- Jetpack Compose animations
- Jetpack Compose performance
There is a lot to learn, so I would suggest making small points — that way you always know what is left and what you have already covered.
Is it similar to something you already know?
It is not easy for everyone to learn a new language quickly and to understand and implement its concepts. But every language is built on the same principles: the same old classes, blueprints, functions, abstractions and interfaces.
You already know those concepts, and they have been implemented in different languages millions of times. So you can draw a comparison and understand a new language very quickly from a single example.
If you already know XML and want to know the Compose equivalent of an XML component, I would suggest exploring What's the equivalent of X in Jetpack Compose? — it maps the existing Android UI toolkit onto Compose, component by component.
If you are already an Android developer, you are set. If you are starting for the first time, download and install Android Studio.
Write down your goals
That's the setup. Start learning Jetpack Compose from the official documentation, and keep learning something new here every day alongside it.
Thanks for reading — and don't forget to follow for more.
Day 1 of a 100-day series on Jetpack Compose, working through the official documentation in order.
One post a week, no digest
New writing when it lands. No roundups, no course pitch, no "10 tips".