jetc.dev Newsletter Issue #14
In this issue, we look at the
dev11 Compose/Compose UI release,
ConstraintLayout, multiple options for integrating Coil for image
loading, and the death of (a)
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
AdapterList is a bit tricky to use when you are loading content
asynchronously. Stack Overflow user adneal points out some possible
Exceptions and Compose
Exceptions happen. How we handle them in Compose code, though, may look a bit different from how we handle them in more classic Android app development.
Posts, videos, and other new information related to Jetpack Compose!
dev11 Release Notes
If you have been working with
Canvas, you may find that your API is now changed
to give you a
drawCanvas() to get to the actual
And we now have a
collectAsState() extension function for
Flow to be able
to consume one and have it update our composition when new values are emitted.
dev11 Release Notes
There are about 30 changes in this release, including the removal of some previously-deprecated items.
Why do we need Jetpack Compose?
Pamela Hill wrote a piece outlining the pain points of the existing Android view system and how Compose addresses them.
ConstraintLayout in Jetpack Compose
Himanshu Singh has the first of two articles that appeared this week examining
the Compose implementation of
ConstraintLayout and how to apply it.
Our other post on the subject comes from Jorge Castillo,
who also demonstrates the use of
ConstraintLayout, in this case also blending
in Coil support for images, using the Accompanist library that you’ll see later
in this issue.
Early learnings in testing with Jetpack Compose
Joe Birch continues his tour of Compose, this time looking at writing automated UI tests for Compose screens.
Bottom Navigation Bar With Compose
Not to be outdone, Brian Gardner continues his series of posts on Compose, this time looking at bottom navigation.
100% pure code!
GitHub: Chris Banes - Accompanist
Google’s Chris Banes has contributed his Accompanist library to Compose developers. Right now, it offers Coil integration for image loading, and a way to apply existing Material Design Components-based theme to your Compose UIs.
GitHub: Luca992 - coil-composable
Another way to use Coil for Compose image-loading comes from this library from Luca Spinazzola.
GitHub: SkikaSD - compose-server-side
Andrei Shikov is experimenting with using Compose’s node-change-management system to power a Web app, where the server sends messages over a websocket to a client that renders them.
GitHub: square - workflow-kotlin-compose
This repo contains some experimental integration of Compose into Square’s Workflow state management system.
…And One More Thing
When Jetpack Compose first came out — back before we even had artifacts —
I filed a bug report about
@Model not supporting
Little did I know that several months later, that issue would be updated…
with information about
@Model being removed.
According to a tweet from Leland Richardson,
this change will land in
dev12 — given the publishing timetable of this
newsletter, that means next week.
So, if you have invested in
@Model in your Compose work, you may want to start
mutableStateOf(), as Leland outlines in that
issue update and the associated Gerrit entry.
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!