jetc.dev Newsletter Issue #18
Published: 2020-06-16
This week we got the dev13
release and Android Studio 4.2 Canary 1, as part
of “Developer Preview 2” of Jetpack Compose. In addition, we look at
Romain Guy’s #android11 presentation, complete with his sample code and a look
at the Compose roadmap for release.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
Function References in Compose: Not Yet
Lots of Compose calls take lambda expressions that themselves are @Composable
, so they
can call @Composable
functions. However, as we discovered in this Stack Overflow question,
we cannot (yet) substitute function references for those lambda expressions, even when
both fulfill the parameter’s requested function type.
Beware Unplanned Composition Loops
Having a @Composable
be called repeatedly is what you want, except when it is not
what you want. In a Slack thread, we discovered that it is important to keep using the same
state object, if you do not want an unplanned composition loop.
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Android Studio 4.2 Canary 1
As we saw when 4.0 went to beta, 4.1’s move to beta means that Compose support
is dropped. Instead, if you are working with the developer previews, you need
to migrate to Android Studio 4.2 Canary 1 if you want to keep up to date with
IDE changes. On the plus side, we get a few new Compose-related features, such
as the ability to not only see a @Preview
in the IDE, but to actually launch it
standalone on a device.
Compose dev13
Release Notes
No API changes were noted for this release.
Compose UI dev13
Release Notes
Similarly, no API changes were noted for this release.
#android11 Release Presentation
Google I|O was replaced by a series of #android11 videos. Romain Guy handled the one for Jetpack Compose, highlighting our current status and… providing a roadmap! More on that later in the newsletter!
Android Studio 4.1/4.2 New Project Bug
Both Android Studio 4.1 Canary 10 and Android Studio 4.2 Canary 1 have a bug, where creating a new project results in an unusable project. 🙃 My primary workaround has been to create the new project in Android Studio 4.0, then import it into the canary version of Studio. This is supposed to be fixed in 4.2 Canary 2.
Awesome Jetpack Compose
Naveen T P is maintaining a roster of Jetpack Compose resources, in the semi-standard “awesome” list format.
MVI (State machine) and Jetpack Compose
Oscar Sequeiros has an article describing how Compose’s unidirectional data flow support can be used for handling the common loading/empty/content/error set of states for rendering content obtained from a repository.
Resource Roundup
100% pure code!
GitHub: romainguy / sample-materials-shop
In his #android11 presentation on Jetpack Compose, Romain Guy demoed a few things using a sample app — this is that app!
GitHub: Akashkamble / Newzz-Compose
Akash Kamble has another take on the JetNews-style news reader app, in Compose.
…And One More Thing
We have a roadmap!
In Romain Guy’s #android11 presentation on Jetpack Compose, he provided some light details of their expected release schedule:
-
Right now, we have “Developer Preview 2”. Based on a Slack discussion, this is
dev13
, Android Studio 4.2 Canary 1, and perhaps a bit more documentation. In other words, it’s a branding thing more than a major milestone. -
“Summer 2020”, they plan to release an alpha version of Compose. In theory, this means we will get the alpha within the next few months. In a pinch, they can claim that they really meant summer in the Southern Hemisphere, so we might not get an alpha until December. 😜
-
In 2021, they plan to release 1.0, which I assume means a stable release, after the planned alpha and a presumed beta.
This is roughly in line with what I had been expecting, albeit perhaps a bit slower, courtesy of a pandemic. Still, it is good to have an official statement about the timing. Early adopters will be in position to start “kicking the tires” more later this year, and we can start planning for production usage next year.
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?!?