View profile Newsletter - Issue #123 Newsletter - Issue #123
By Mark Murphy, CommonsWare • Issue #123 • View online
Two sets of releases came out this week for Compose, including one with support for Kotlin 1.7.0!
Beyond that, we look at what droidcon SF 2022 had to offer, what “stability” means in the world of Compose, and how to apply AnimatedContent(). We explore shared element transitions and permission flows. And I’m grateful for the new stable Compose Compiler and what that means for Compose development going forward.
NOTE: This newsletter will not be published next week, as I take a week off for the summer (Northern Hemisphere edition). The next issue after this one will be out in two weeks (July 19/20, depending on where you are).

RC Reflections
Reviewing the release notes for the latest Jetpack Compose update!
The updates this week were complicated.
Compose Compiler is out with a 1.2.0 stable release. That contrasts with the rest of Compose, which is on 1.2.0-rc03. This is because Compose library versions are starting to become independent — more on this later in the newsletter. Of note, Compose Compiler 1.2.0 supports Kotlin 1.7.0.
While 1.2.0-rc03 seems to contain only a few bug fixes, we also got 1.3.0-alpha01 of the Compose libraries. Of note:
  • LookaheadLayout adds a “lookahead” pass through the composition before the regular measure-and-layout pass. This can help with animations, such as shared element transitions.
  • AnnotatedString now supports a UrlAnnotation, with an eye towards accessibility for links.
  • WindowInfo.keyboardModifiers lets us observe a flow of states for keyboard modifiers (e.g., Shift)
Also, Wear Compose has 1.1.0-alpha01, with some improvements for Picker() accessibility and Chip gradients.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
How Do We Both Rotate and Fill?
Droidcon San Francisco 2022
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Independent versioning of Jetpack Compose libraries
Jetpack Compose Stability Explained
Customizing AnimatedContent in Jetpack Compose
Video: How to add a map to Android apps with Jetpack Compose
Get String resources in Jetpack Compose Tests
How to Customize Status Bar in Jetpack Compose?
Medium: Schedule Image Displaying In Glance Widget With Work Manager API
Improving shared architecture for a Kotlin Multiplatform, Jetpack Compose and SwiftUI app
Resource Roundup
100% pure code!
Other Interesting Links
…And One More Thing
This week’s announcement that Compose libraries will be versioned independently on the whole should be a positive development. In particular, decoupling the Compose compiler version from the runtime library versions will help with the ever-present “hey, when will Compose support such-and-so Kotlin version” — we see the first example of that with this announcement.
Ordinary developers will need to keep track of which library versions work with which other library versions. That will be particularly important for those who use pre-release versions, as they might not necessarily work well with stable releases of other Compose libraries. While transitive dependency declarations mean that you should get the right versions of the libraries automatically most of the time, you might find that you wound up with newer versions of some Compose libraries than you expected.
Hopefully, this will not impact developers of third-party libraries too much. It will be important that they document their Compose version expectations, particularly where they are unusual. For example, Jaewoong Eum did that with Orbitary, noting how it relies it relies on some pre-release library versions.
Overall though, independent versioning, particularly of the Compose compiler, is a sign that the Compose system is maturing, IMHO. I’m sure that the Compose developers would have loved to have been at this state with the initial stable release, but we don’t always get what we want. And while we may stub our toes from time to time with changes like this, that’s a price we pay with any transition, and one that experienced developers are very used to.
Did you enjoy this issue?
Mark Murphy, CommonsWare

Jetpack Compose news and notes.

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Powered by Revue