Header picture by Vladimir Mokry @Unsplash.
Jetpack Compose internals
👨💻 Jorge Castillo (Android & Kotlin GDE)
Even if this is my book, I’ll try to be as objective as possible here to honor the ultimate purpose of this guide.
This book is the only existing one that dives into the internals of the library. It goes over the complete Jetpack Compose ecosystem of libraries, describing the connection between the Compose compiler, the runtime, and client libraries like Compose UI, among other topics.
“During my years as an Android developer, I learned the most about it by inspecting the sources of the platform and its state of the art libraries. For that reason I decided to write about Compose internals. I thought people would find it useful to grow the correct mindset when working with it.” —Me.
This book works nicely as a companion in order to understand how things work on the inside, and be able to write efficient code using the library. The book is in a pre-launch state, but more than a 80% of it is written already. By acquiring the book now you gain automatic access to all its future updates.
Requirements
I’d recommend having a good understanding of Android UI and some basic experience with Jetpack Compose. Other than that, you should be good to go.
What you wil llearn
A solid understanding of:
The purpose of Composable functions, runtime expectations on them, their properties.
The Compose compiler in-depth. How it interacts with the runtime and client libraries like Compose UI. Validation and code generation. Unlocking runtime optimizations.
The Compose runtime in-depth. How it interacts with the compiler and client libraries like Compose UI. Composer / Recomposer, composition / recomposition, comparison propagation, smart recomposition, slot table.
Compose UI. Creating and hooking a Composition / Subcomposition. Integration with Android. Measure / layout, drawing. Modifiers, intrinsics, SubcomposeLayout, LookaheadLayout, semantics.
The State snapshot system. Concurrency control systems and MVCC. Snapshots, snapshot trees, reading and writing from/to a Snapshot, change propagation, state isolation.
Effects and effect handlers. Internals and types of effect handlers. Keeping side effects under control and within the limits of the composition and the Composable lifecycle.
Advanced use cases of Jetpack Compose. Composition of vector graphics, building the node tree, integration with Compose UI, managing the DOM with Compose, composition in the browser, and more.
You can follow the book on Twitter. The complete table of contents can be found here.
From View to Composable
Alex’s book is created from a very pragmatic point of view: How to do the exact same things we have been doing with Views so far, but in Jetpack Compose. Every component/pattern is mapped 1:1 to Compose, so it is easy to use as a reference.
The book provides straight to the point explanations and code samples so you can save hundreds of hours of exploration when trying to do something in Jetpack Compose. It is available in multiple formats and provides a free sample chapter.
His author, Alex, is an ex-Apple developer with more than 10 years of experience who is 100% focused on creating highly valuable content.
Table of contents
Understanding Compose code.
TextView to Text.
Displaying images and photos.
Icons.
Buttons.
Toolbar to TopAppBar.
Dialogs and AlertDialogs.
Snackbars.
LinearLayout to Column & Row.
FrameLayout to Box.
RecyclerView to LazyLists.
Grids in Compose.
ViewPager in Compose.
ConstraintLayout in Compose.
Bottom Sheets in Compose.
Using Views from Compose.
Calling Android APIs from composable functions.
Theming your Compose application.
Drawing Edge-to-Edge (Inset handling).
Managing state.
Navigation in Compose.
ViewModels in Compose.
Structuring your Compose application.