Jorge Castillo's Avatar

Jorge Castillo

@jorgecastillo.dev.bsky.social

Android at Disney+. Author of Jetpack Compose internals. πŸ‘¨β€πŸ« Compose course composeinternals.com πŸ“– Compose book jorgecastillo.dev/book

1,619 Followers  |  255 Following  |  415 Posts  |  Joined: 27.04.2023  |  1.6235

Latest posts by jorgecastillo.dev on Bluesky

Android devs coming to teach you Dependency Injection in 2025.

Android devs coming to teach you Dependency Injection in 2025.

Android devs coming to teach you Dependency Injection in 2025.

10.08.2025 21:49 β€” πŸ‘ 13    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

1-star reviews hurt. Especially the random ones.

But I’ve learned to stop fighting them.
Just keep improving the product until they get absolutely drowned out by the 5-star ones.

Let quality win.

08.08.2025 06:57 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

My main goal when creating the Compose internals course was for people to walk away knowing how Compose *really* works.

The target is curious devs that are tired of copying patterns they don’t understand.

If you want a course about the basic stuff, the official docs are good πŸ€·β€β™‚οΈ

08.08.2025 06:45 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

Remember when Spider-Man tried to write an Android app πŸ•ΈοΈ

06.08.2025 21:47 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

Not many people mentions this.

Developers love best practices, because thinking is hard.

But great engineers know when to break them, bend them, or create new ones. If you ever invented a pattern from scratch,
you’re already in the 1% of actually creative people that can make things evolve.

06.08.2025 05:40 β€” πŸ‘ 9    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

If you want to be 5 years ahead of everyone else:

Stop treating frameworks like black boxes.

Read the source. Understand the internals.
You’ll stop guessing and start building with intention 🫑

06.08.2025 05:33 β€” πŸ‘ 7    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

There’s so much I can share about Compose, but it’s impossible and unbearable to do it all on X.

For the full content, book the Jetpack Compose Internals course. I promise you will not regret πŸ™Œ

composeinternals.com

02.08.2025 13:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

The recomposer coordinates all of this, deciding when and on what thread to compose and when and on what thread to apply the changes.

Hope it was useful 🫑

02.08.2025 13:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

The Composer (injected by the Compiler in all Composable functions) uses the notes recorded in the slot table (from last composition) to produce the next change list that updates the tree, in every recomposition.

02.08.2025 13:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

The change list (emitted by Composables when they execute) is what updates the node tree. You can think of it as a patch file for the node tree that, when applied, updates the tree. The tree is built during composition, and gets updated on every recomposition.

02.08.2025 13:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

In Compose, the slot table contains notes about what happened during composition, what was called, what parameters were used, etc.. It is where values are remembered and you can think of it as a method trace of the composition 🧡

02.08.2025 13:48 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Post image Post image

We all suspected what the Lofi Girl was doing.

01.08.2025 09:08 β€” πŸ‘ 10    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Toughest part of Android development isn’t learning Compose, mastering architecture or improving performance.

It is fragmentation. It has always been.

Thinking about it retrospectively, we put the biggest % of our time fighting that while testing, debugging and monitoring.

01.08.2025 05:40 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

The Jetpack Compose Internals course has been on fire lately. More and more devs are giving super constructive feedback every day.

I honestly appreciate it, since talking about complex topics in simple terms is not easy. Took some good amount of effort and exploration to get there 🫢

31.07.2025 15:42 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Writing tests is part of the work.

You don’t report β€œI wrote tests” in standup
Just like you don’t say β€œI wrote code that compiles” or β€œI wrote an abstraction”.

Unless the culture expects you to brag about it for some weird reason.

31.07.2025 15:37 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

How to kill the vibe 101

31.07.2025 08:10 β€” πŸ‘ 11    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Preview
Setting up Compose Multiplatform previews Compose Multiplatform now has support for previews in common code. Here's how you can get started with using them.

How to setup previews in Compose Multiplatform.

https://zsmb.co/compose-multiplatform-preview-setup/

29.07.2025 20:38 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Apps like Duolingo are more like a game that makes you feel progress. But the real way to learn a language is having to speak it every day. Nothing better than real world conversations with others. That’s a great use case for AI too.

29.07.2025 07:51 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Don’t feel bad for not learning new technologies quickly. You are all skilled more than enough to learn it quickly whenever you need to.

Don’t fall in the trap. FOMO is common but also irrational.

28.07.2025 06:37 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Share a piece  of lore about your Android dev career

Share a piece of lore about your Android dev career

Share a piece of lore about your Android dev career

27.07.2025 20:50 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 2    πŸ“Œ 1
The official Android docs on test doubles are quite needed today.

Please write fakes πŸ™ , avoid mocks as possible. Assert output state, not behavior. Think of a program or a logical part of it as: input->output

https://developer.android.com/training/testing/fundamentals/test-doubles

The official Android docs on test doubles are quite needed today. Please write fakes πŸ™ , avoid mocks as possible. Assert output state, not behavior. Think of a program or a logical part of it as: input->output https://developer.android.com/training/testing/fundamentals/test-doubles

The official Android docs on test doubles are quite needed today.

Please write fakes πŸ™ , avoid mocks as possible. Assert output state, not behavior. Think of a program or a logical part of it as: input->output

https://developer.android.com/training/testing/fundamentals/test-doubles

27.07.2025 20:13 β€” πŸ‘ 21    πŸ” 9    πŸ’¬ 0    πŸ“Œ 0
Sometimes you need to give people a little push

Sometimes you need to give people a little push

Sometimes you need to give people a little push

25.07.2025 15:03 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

In Compose, each item in a LazyColumn is rendered through subcomposition.

– It’s a separate child composition
– It has its own slot table for storing state
– That slot table can be reused later if the item scrolls back in (as long as the key is stable)

25.07.2025 15:00 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Always focus on the end goals, don’t get distracted by technologies or patterns. If you are not meeting your end goal expectations then you’re doing it wrong.

Example: Measure performance, not number of recompositions.

25.07.2025 06:38 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Tests are only useful if they catch regressions. If that is never the case for you, then think again what type of tests you have.

25.07.2025 06:20 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I forget about this constantly.

If you get a warning about one of your apps in the Google Play developer console, keep in mind that it could be caused by any of the releases published to any of your active tracks, even the testing ones (open or closed).

20.07.2025 22:09 β€” πŸ‘ 7    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
KMP

KMP

KMP

20.07.2025 13:52 β€” πŸ‘ 1    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Sometimes you just need to look at things differently.

You’re tired, but it’s from work you once wished for. You’re overwhelmed, but it’s by the growth you used to hope for. You’re challenged, but it’s by a life you chose. You’ve outgrown things you once thought were enough. That’s progress.

20.07.2025 13:07 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Exploring PausableComposition internals in Jetpack Compose Explore the internals of the `PausableComposition` API in Jetpack Compose to improve UI performance by pre-composing elements during idle time in Android

Compose added something wild:

PausableComposition lets the runtime start composing UI before it’s needed, split across idle frames, and pause/resume mid way. Really interesting to explore 🧐

https://blog.shreyaspatil.dev/exploring-pausablecomposition-internals-in-jetpack-compose

20.07.2025 12:51 β€” πŸ‘ 20    πŸ” 4    πŸ’¬ 0    πŸ“Œ 0
Things have changed a bit.

Things have changed a bit.

Things have changed a bit.

19.07.2025 14:54 β€” πŸ‘ 10    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@jorgecastillo.dev is following 20 prominent accounts