jetc.dev Newsletter Issue #29
The alpha has arrived!
Last week saw the long-anticipated release of
1.0.0-alpha01, marking the start
of the next phase of Jetpack Compose development. In this extra-long issue, we will
look at a lot of official and semi-official announcement materials from Google,
plus state management and a showcase for your composables. Plus: when might the
beta show up! 😁
1.0.0-alpha01 is almost identical to the
dev17 release that
preceded it. As a result, we have no significant code changes to deal with, other
than updating our dependencies. It also means that there is very little in the
release notes worth mentioning. Unfortunately, as this issue will illustrate,
we have some tooling troubles to spoil the fun for some.
A special newsletter section, highlighting official posts and videos for the Compose alpha release!
Google’s Nick Butcher continued the alpha series of YouTube videos, working through a Compose UI sample. However, this goes beyond just how to call and nest composables, getting into design themes and animations, among other topics.
Google’s Manuel Vivo and Chris Banes wrap up the YouTube video series, showing how you can migrate an app progressively to use Compose UI, rather than starting over from scratch. This includes blending Compose UI into your existing architecture, leveraging your existing resources, and more!
This blog post, along with Part 2, are extensions of Leland Richardson’s YouTube video mentioned above. They dive into what makes Compose work and how that influences our decisions on how to craft composables.
If you prefer your Compose knowledge in podcast form, Google’s own Android Developers Backstage podcast offers up an episode focused on the Compose alpha release, featuring several members of the Compose team.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
Designers sometimes change the style of the app. With the classic
common look-and-feel aspects were often managed by style resources, so we could change
the style to match the designers’ needs. In Compose UI, we will need to explore
alternatives, as we see in this week’s highlighted Slack thread.
Posts, videos, and other new information related to Jetpack Compose!
Here, Gérard Paligot walks us through Compose state management. Note, though,
that the post includes coverage of
state(), which has been deprecated —
one of the challenges of writing about a fast-moving technology.
Finally, Arne Stockmans shows us how to download and run the demo of
ui-desktop module from the Compose AOSP repository. On macOS, this will
show a Compose UI-based app running on the desktop. On other operating
systems, it will fail to build… but that is a limitation of WIP code.
100% pure code!
This library, from Vinay Gaba and the team at AirBnb,
builds a gallery of your
composables. If you launch the supplied activity, it
will let you explore your composables, rendered for different scenarios
(text scale, dark mode, RTL, etc.). Since the composables are discovered
via an annotation processor, simply adding the
enough to get a composable to appear in the showcase.
…And One More Thing
So, we’re finally out of developer preview mode and have an alpha release!
As I expected, though, while it is clearly a step forward, we should largely expect “more of the same” as what we have been seeing.
The general idea that we’ve been following is that alpha is an indication of “there is enough here to build something real”. But there is still no guarantee of API stability. Things will continue to change in alpha (though likely at a slower pace)
We will still get updates every two weeks or thereabouts, so expect a steady stream of updating your dependencies in Gradle if you want to stay on the current alpha. Those changes may break our code — while there may be fewer breaking changes, there will still be some.
That is particularly true when you consider how long the alpha period might last. We know that Google wants to ship a stable release in 2021, but that’s it. Typically, Jetpack alpha release series are a lot longer than the betas, which in turn are a lot longer than the RCs. So, we might see something like:
- Betas beginning in May 2021
- RCs beginning in September 2021
- Stable in November 2021
That’s just a guess, and the actual timing could wind up being quite a bit different. This timeframe is about as slow as it could go and still ship the stable release in 2021. But it illustrates that we may have 9 months of alpha releases… similar to the length of time that we had the developer previews.
So, even with a slow pace of changes, we may still wind up with quite a few
API changes before a
beta01 release and a temporarily stable API.
“Patience is the watchword”.
Still, clearly, an alpha release is a major achievement, and the Compose team deserves all of the acclaim that has been coming their way since the alpha announcements. Many thanks to all who have contributed!
And now, let the composing commence!
- 2023-01-24: Locales! Relay! Effects! Paging! Foldables! Permissions! Date pickers! Bi-directional scrolling! And what your MaterialTheme means... for your SwiftUI code?!?
- 2023-01-17: New Compose patches and alphas! Dealing with Navigation for Compose! Scaffolds! QR codes! Server-defined UI! And @email@example.com has joined the BOM squad! 😁 💥
- 2023-01-10: onNewIntent() and composables! ContactsContract and composables! Balloons! QR codes! Pencils! And a focus on focus!