0Pricing
Jetpack Compose Academy · Lesson

LazyColumn vs Scrollable Column

Know why lazy lists scale.

LazyColumn vs Scrollable Column is a free Jetpack Compose Academy lesson on CoddyKit — lesson 1 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Jetpack Compose Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

The Long-List Problem

When a list has hundreds of rows, you can't draw them all at once. You need a list that only builds what's actually visible on screen.

A Plain Column Builds Everything

A regular Column composes every single child immediately, even rows far below the screen. With long data, that wastes memory and time.

Column {
    items.forEach { Text(it) }
}

Column Needs verticalScroll

A plain Column doesn't even scroll on its own. You must add a verticalScroll modifier just to move past the screen edge.

Column(Modifier.verticalScroll(rememberScrollState())) {
    items.forEach { Text(it) }
}

Meet LazyColumn

A LazyColumn is the scrollable list built for big data. It composes rows on demand as you scroll, so the cost stays small. 🚀

LazyColumn {
    // items go here
}

Lazy Means On Demand

"Lazy" means a row is only created when it scrolls into view. Off-screen items simply don't exist yet, which keeps things fast and light.

Reuse, Not Rebuild

As rows leave the top, LazyColumn recycles them for new rows entering the bottom. A few dozen rows can serve thousands of items.

The items Block

Inside LazyColumn you describe content with an items block instead of a normal loop. Compose decides which ones to actually build.

LazyColumn {
    items(names) { name ->
        Text(name)
    }
}

Scrolling Is Built In

LazyColumn scrolls by default, so you never wrap it in verticalScroll. Adding one would actually cause a crash.

When a Column Is Fine

For a few fixed rows that all fit on screen, a plain Column is simpler and perfect. Reach for LazyColumn only when the list can grow.

Never Nest the Same Direction

Avoid putting a LazyColumn inside a vertically scrolling Column. The two scroll directions clash, and Compose can't measure the height.

Performance Is the Payoff

The big win is performance: smooth scrolling and steady memory no matter how long the data gets. That's why lazy lists scale.

Quick Check

Time to test which list to reach for.

Recap: Lazy Wins for Big Lists

A Column builds everything up front and needs verticalScroll; a LazyColumn builds rows on demand, recycles them, and scales effortlessly. 🎉

Frequently asked questions

Is the “LazyColumn vs Scrollable Column” lesson free?

Yes — the full text of “LazyColumn vs Scrollable Column” is free to read here on the web, and the Jetpack Compose Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Jetpack Compose Academy course, upgrade to CoddyKit PRO.

What will I learn in “LazyColumn vs Scrollable Column”?

Know why lazy lists scale. You practise Jetpack Compose Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Jetpack Compose Academy?

No prior experience is required. Jetpack Compose Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 1 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “LazyColumn vs Scrollable Column” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Jetpack Compose Academy lesson?

Yes. Every Jetpack Compose Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. LazyColumn vs Scrollable Column
  2. items & itemsIndexed
  3. Keys for Stable, Fast Lists
  4. Sticky Headers & Section Lists
← Back to Jetpack Compose Academy