jetc.dev Newsletter Issue #24
Published: 2020-07-28
The dev15
release of Jetpack Compose dropped last week, so we’ll look at some of the
ramifications of those changes. We also look a bit a how Compose deals with classic
performance problems, Vinay Gaba provides us some presentation slides and a FAQ, and
we look at fillable loaders. Plus, JetBrains is hiring for their Compose team!
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
Once again, there were few good answers in Stack Overflow in
the android-jetpack-compose
tag.
Compose and Performance
Compose is designed to avoid some of the performance problems that plagued
us in the classic View
system (e.g., why you want to avoid nested LinearLayout
containers). That does not mean that Compose is bulletproof in terms of performance, though.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Jetpack Compose dev15 Release Notes
Most of the artifacts have moved to new names, and we have new instructions for setting the Kotlin compiler version and the Compose compiler plugin version.
Jetpack Compose Runtime dev15 Release Notes
They have change the code generation strategy again. While this should affect few apps, those that are playing with reflection or other advanced forms of interop may need to make changes.
There are also a massive number of changes listed for androidx.compose.ui
.
Upgrading to dev15 of Jetpack Compose
In this post, I give a detailed overview of the steps required to migrate a project
from Compose’s dev14
release to dev15
. It expands upon
the current edition of the “Declaring Dependencies” documentation,
since it may not be obvious to all where those Gradle bits go.
Learning Jetpack Compose By Example
Vinay Gaba delivered a presentation on the basics of Compose for the 360|AnDev conference and published his slides online.
Frequently Asked Questions about Jetpack Compose
Vinay Gaba also published a FAQ on Compose, with 20+ questions at the moment.
Random Compose Project #1: Compose95
Louis Tsai wrote about his experiences with Compose, as part of a series of “completely random projects” that he is working on to see how Compose fares.
UI Framework Developer
JetBrains is hiring! More specifically, they are looking for somebody to help them port Jetpack Compose to the desktop “and other platforms”. 🤔
Resource Roundup
100% pure code!
GitHub: JorgeCastilloPrz / ComposeFillableLoaders
“Fillable loaders” are animations that show the act of filling some shape with a color. Jorge Castillo created one years ago for standard views, and now he is back with a port for Compose!
GitHub: wajahatkarim3 / ComposeCodelab
Wajahat Karim also presented at 360|AnDev and has shared his code lab project demonstrating Compose, creating a Gmail-style UI.
…And One More Thing
Compose, like the rest of the Jetpack, went on a one-month update hiatus. What we got coming out of that was quite a bit of change: new packages, new Kotlin compiler (and flags), new Compose compiler plugin, etc.
It is good that big refactorings like this are happening during developer previews. While it is annoying for those of us experimenting with Compose, we are a tiny portion of the overall Android ecosystem. Once alpha releases begin, we will get a new cohort of developers trying out Compose, and they will be expecting it to be somewhat more stable than developer previews.
On the other hand… there are only four more bi-weekly Jetpack releases between now and the end of (Northern Hemisphere) summer 2020. The first Compose alpha is supposed to be released this summer, according to the Android 11 release video series.
That’s not much time, and it seems like there are still quite a few changes to be
made. My suspicion is that the first few alphas will be about as fluid as
the developer previews, with the API surface and compiler strategies slowly solidifying
over a long series of alpha releases. In other words, I do not expect there
to be a major change in how Compose is developed just because they reach an
alpha01
in the coming weeks.
Plus, summer 2020 was a target, and targets do get missed from time to time.
So, I am expecting a fair amount of change in Compose for the balance of 2020, regardless of how much of that change occurs under a “developer preview” banner versus an “alpha” banner.
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2024-12-10: A Compose Multiplatform alpha! Hot reload! Presentation! Sprites! Calendars!
- 2024-12-03: Rebecca Franks on clipping and masking! Stefano Natali on graphicsLayer()! FunkyMuse on type-safe nav results! And... if we have enough maps, do we need to store our maps in a Map?!?
- 2024-11-26: Math! Shared element transitions! Custom modifiers! Macrobenchmark! Adapting to platform-specific design systems! And... why does wrapContentSize() not wrap my content size?!?