βœ…Next 10 registrations will unlock an exclusive live Q&A with me (6/10 left)

The most famous Compose course

Award winning. Master Compose and its internals.

Created and delivered by Jorge Castillo: Disney+ engineer, ex-Twitter (X), author of Jetpack Compose Internals.
Jorge has led several Compose initiatives on big tech companies.
Testimonial avatarTestimonial avatarTestimonial avatarTestimonial avatarTestimonial avatarTestimonial avatarTestimonial avatar

500+ engineers attended this course

Trusted by top companies

Next cohort

Join before we run out of seats. Only a few left.
  • Starts on June 2, 2025
  • Spans over ~7 weeks (~3-4h worth of content per week)
  • Lifetime access to the course content
  • Limited number of seats available

Can I take this course?

Yes, if you're new to Jetpack Compose or want to master it. You just need intermediate Android (UI, architecture, testing) and Kotlin (suspend, coroutines) skills.

What I get

By enrolling you get access to all these things, all inclusive of the one-time signup fee. All the content is recorded, so you can consume it at your own pace or follow the group. Whatever you prefer πŸ™Œ

Each cohort has a limited number of seats to ensure a high level of interaction.
  • Lifetime access to this course. Take it as many times as you want!
  • Unlimited access to the Effective Android Discord community. Join hundreds of devs already there!
  • Free access to the Jetpack Compose internals book and all its future updates in all formats
  • Early access to the printed version of the book for a reduced price once it is published (no ETA yet)
  • Completion certificate signed by me
Annyce Davis
πŸ‘©πŸ½β€πŸ’» VP of Engineering @Meetup
Annyce Davis
My team and I took the Jetpack Compose and Internals course. It was just what we needed to make the choice to write all new UI in Compose. We all left with a much better understanding of how the library works on the inside. As well as, actionable tips for developing performant Compose layouts. I highly recommend it!
Tasha Ramesh
Android Engineer @Tinder
Tasha Ramesh
Super insightful course. The intuitive diagrams gave me new clarity about the library's inner workings. Despite having some prior experience with Jetpack Compose, I learned new things and felt more confident to explore the source code on my own. Recommended for a deeper understanding of the libraries πŸ’―
Akshay Chordiya
Android Engineer @Tinder, GDE
Akshay Chordiya
The content and structure of the course is high quality along with Jorge's teaching style. As someone who has worked with Compose before, I found this course to be immensely helpful in filling in the gaps in my knowledge. Jorge does an excellent job of breaking down complex topics into pieces. Whether you are a beginner or have intermediate knowledge of Jetpack Compose, I highly recommend this course.
Aurelio Laudiero
Android dev @Capgemini
Aurelio Laudiero
The course was very engaging and the exercises were very useful for establishing concepts and stimulating questions to which Jorge answered exhaustively. I now have a better understanding of several aspects of Compose and this will definitely help me write better code. Super recommended ⭐️⭐️⭐️⭐️⭐️
Beatrice Kinya
Android Eng Kyosk Digital
Beatrice Kinya
Jorge progressively builds from simple to more complex topics making it easier to understand different components of compose library. The practice exercises and Jorge's prompt responses to questions made the course more lively. I'd highly recommend the course ⭐️⭐️⭐️⭐️⭐️
Tsitsonis Vaios
Staff Android Eng at Blueground
Tsitsonis Vaios
The Jetpack Compose Internals course was an incredibly valuable experience. It deepened my understanding of the framework and was presented in a clear and concise way. I highly recommend this course to anyone looking to take their Jetpack Compose skills to the next level πŸ”
Francisco Velazquez
Sr. Software Engineer at Turo
Francisco Velazquez
As a member of the design team at Turo, we've been fully invested in using Compose to build our design system. After taking Jorge's class, I feel much more confident in my ability to work with this powerful framework. The hands-on exercises were my favorite part, as they helped to solidify my understanding and encouraged engagement πŸ’―
Paul Franco
Android Engineer at Redfin
Paul Franco
I would highly recommend this course to anyone looking to learn more about building complex UIs on Android with Jetpack Compose. The course is well-structured, engaging, and informative, and it provides a comprehensive overview of Compose and its internals. Jorge is an excellent teacher, and his passion for the subject matter is infectious. I thoroughly enjoyed the course and learned a great deal from it πŸ”₯

Topics

1. Essentials
  • βœ“Compose architecture
  • βœ“Library ecosystem
  • βœ“Composable functions in depth
  • βœ“Composable function properties
  • βœ“Principles of recomposition
  • βœ“The Slot Table
  • βœ“The Composition tree
  • βœ“Migration strategies
2. UI
  • βœ“Modifiers and internals
  • βœ“Custom modifiers
  • βœ“Custom layouts
  • βœ“The 3 UI phases
  • βœ“The measure & layout phase
  • βœ“The drawing phase
  • βœ“Measure policies
  • βœ“Constraints
  • βœ“Measure Intrinsics
  • βœ“Drawing layers
  • βœ“Canvas
  • βœ“Draw scopes
3. Composition
  • βœ“Conditional Composition
  • βœ“BoxWithConstraints
  • βœ“Subcomposition
  • βœ“Composition trees
  • βœ“Types of Composition nodes
  • βœ“CompositionLocals
  • βœ“ComposeView.setContent internals
4. Runtime
  • βœ“Generic node types
  • βœ“Feeding the node type
  • βœ“LayoutNode vs VNode
  • βœ“The list of changes
  • βœ“Types of changes emitted by Composables
  • βœ“Applying the changes
  • βœ“Invalidation
  • βœ“The Applier
  • βœ“Types of Appliers
5. Theming
  • βœ“Material Design
  • βœ“Nested themes
  • βœ“Material Components
  • βœ“Theme config
  • βœ“Reading theme attributes
  • βœ“Material color system
  • βœ“Where and how to define colors
  • βœ“Overriding theme values
  • βœ“Light vs Dark mode
  • βœ“Typographies
  • βœ“Shapes
  • βœ“Custom themes
  • βœ“Extending Material
  • βœ“Fully custom design systems
6. Snapshot State
  • βœ“State as the source of truth
  • βœ“Triggering recompositions
  • βœ“Modeling state, remembering values
  • βœ“State hoisting
  • βœ“How state and events flow
  • βœ“Stateful vs Stateless composables
  • βœ“Smart recomposition
  • βœ“Teaching runtime how to skip/restart
  • βœ“Comparison propagation
  • βœ“Recomposition scopes, donut-hole skipping
  • βœ“Debugging recompositions
  • βœ“Class stability, @Stable and @Immutable
  • βœ“Snapshots
  • βœ“State isolation, propagation, conflict resolution
  • βœ“State in concurrent scenarios
  • βœ“The MVCC system
  • βœ“Snapshot trees
7. State and architecture
  • βœ“Where to put State
  • βœ“Different types of UI logic
  • βœ“State holders
  • βœ“ViewModels and Compose
  • βœ“Config changes and process death
  • βœ“rememberSaveable
  • βœ“Custom State savers
  • βœ“Derived State
  • βœ“State adapters for 3rd party libs
  • βœ“Collecting state with lifecycle
8. Lifecycle and Effects
  • βœ“The Composable lifecycle
  • βœ“Effects within the lifecycle
  • βœ“What a side effect is
  • βœ“What Compose needs to model them
  • βœ“Effect handlers
  • βœ“Disposable effects
  • βœ“Side effects
  • βœ“Suspend effects
  • βœ“Coroutine scopes
  • βœ“Syntax sugar for effects
  • βœ“Effects in the runtime
  • βœ“RememberObservers
  • βœ“Where to put effects in our codebase
9. UI - part 2
  • βœ“Using Android resources
  • βœ“Strings
  • βœ“Drawables
  • βœ“Vectors
  • βœ“Animated Vectors
  • βœ“Animations in depth
  • βœ“All types of animations
  • βœ“Companion animations app
10. Architecture, accessibility, testing
  • βœ“A mind shift
  • βœ“From imperative to declarative
  • βœ“View and Compose comparison
  • βœ“Smart diffing by design
  • βœ“Modeling UI state exhaustively
  • βœ“Unidirectional Data Flow (UDF)
  • βœ“Structuring the app
  • βœ“Fragments or not?
  • βœ“Navigation
  • βœ“Dependency Injection
  • βœ“Intro to screenshot testing
  • βœ“Headless screenshot tests
  • βœ“Semantic trees (merged vs unmerged)
  • βœ“Accessibility
  • βœ“Tooling around Compose
  • βœ“Case Study (Mosaic)
Intuitive diagrams

The slides for this course contain several elaborated, intuitive, and easy to understand diagrams carefully crafted by me. Here you have some examples: (click to expand)

Composable function diagram
Calling context diagram
Restartable diagram 1
Restartable diagram 2
Positional memoization diagram

FAQ

Why should I attend this course?β–Ό
Jetpack Compose is now the industry standard for building Android UIs, with leading companies and flagship products migrating to it. This course has been attended and endorsed by some of the most respected engineers in the Android community, ensuring you learn from proven, real-world experience. See what past attendees have to say in the testimonials section.
Who is this course for?β–Ό
This course is for Android developers who want to master Jetpack Compose, whether you are new to Compose or want to understand its internals. You should have intermediate Android and Kotlin experience.
How is the course delivered?β–Ό
The course is delivered online, cohort-based (a group of people progress through the content together). All the content is recorded, and there is a Discord community for more direct and asynchronous support. You get lifetime access to all materials, so you can also consume it at your own pace, even after the course end date.
What is included in the price?β–Ό
You get lifetime access to the course, all future updates, the Jetpack Compose Internals book, access to the Discord community (with 500+ members who already took the course), and a completion certificate.
Can I join if I'm new to Jetpack Compose?β–Ό
Yes! The course covers both fundamentals and advanced internals, so it's suitable for both beginners and experienced Compose users.
Will I get support during the course?β–Ό
Absolutely! You'll have access to a private Discord community and live Q&A sessions to get your questions answered.
Can I consume the course at my own pace?β–Ό
Yes! absolutely. You will keep access to the course content for life, so you can complete it at your own pace if you don't want to follow the group.
Can I book a private session for my team?β–Ό
Yes, private sessions are possible for a minimum of 12 people. If your company is interested on a private live session, please DM me on X or send me an email.

Private sessions

If your company is interested on a private live session, please DM me on X or send me an email.

Story

Hi, I'm Jorge!

I currently lead the Jetpack Compose initiatives at Disney+, formerly working at X (Twitter). I'm also the author of Jetpack Compose Internals and the creator and instructor of this course.

Over the years, I've helped thousands of developers level up their Android skills through hands-on courses, deep dives, and live workshops. My passion is making complex topics simple and practical, especially when it comes to understanding how things work under the hood.

I've seen firsthand how mastering the internals of frameworks like Jetpack Compose can transform your confidence and career. That's why I wrote Jetpack Compose Internals and built this course: to help you unlock that next level and become the kind of engineer who truly understands what they're building.

Trusted by top companies