jetc.dev Newsletter Issue #18
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
@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
@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.
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.
dev13 Release Notes
No API changes were noted for this release.
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.
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.
- 2023-05-30: Compose beta! Tracking continuous composable presses! Animated carousels! MVI! 2D scrolling layouts! Tables! And... a stable function?!?
- 2023-05-23: Focus and preview cards for Compose for TV! Interactions and visual states! ViewCompositionStrategy! Compose for iOS, for real! @email@example.com is zooming! Data tables! And... BasicTextField2, the sequel?!?
- 2023-05-16: Google I/O! New Compose BOM and alpha! Viewmodels! BottomScaffold()! SealedX! Lottie! Dynamic themes! Floating action menus!