jetc.dev Newsletter Issue #24

Published: 2020-07-28

The dev15 release of Jetpack Compose dropped last week, so we’ll look at some of the ramifications of those changes. We also look a bit a how Compose deals with classic performance problems, Vinay Gaba provides us some presentation slides and a FAQ, and we look at fillable loaders. Plus, JetBrains is hiring for their Compose team!

One Off the Stack, One Off the Slack

You’ve got questions. That’s understandable!

Once again, there were few good answers in Stack Overflow in the android-jetpack-compose tag.

Compose and Performance

Compose is designed to avoid some of the performance problems that plagued us in the classic View system (e.g., why you want to avoid nested LinearLayout containers). That does not mean that Compose is bulletproof in terms of performance, though.

Composable Commentary

Posts, videos, and other new information related to Jetpack Compose!

Jetpack Compose dev15 Release Notes

Most of the artifacts have moved to new names, and we have new instructions for setting the Kotlin compiler version and the Compose compiler plugin version.

Jetpack Compose Runtime dev15 Release Notes

They have change the code generation strategy again. While this should affect few apps, those that are playing with reflection or other advanced forms of interop may need to make changes.

There are also a massive number of changes listed for androidx.compose.ui.

Upgrading to dev15 of Jetpack Compose

In this post, I give a detailed overview of the steps required to migrate a project from Compose’s dev14 release to dev15. It expands upon the current edition of the “Declaring Dependencies” documentation, since it may not be obvious to all where those Gradle bits go.

Learning Jetpack Compose By Example

Vinay Gaba delivered a presentation on the basics of Compose for the 360|AnDev conference and published his slides online.

Frequently Asked Questions about Jetpack Compose

Vinay Gaba also published a FAQ on Compose, with 20+ questions at the moment.

Random Compose Project #1: Compose95

Louis Tsai wrote about his experiences with Compose, as part of a series of “completely random projects” that he is working on to see how Compose fares.

UI Framework Developer

JetBrains is hiring! More specifically, they are looking for somebody to help them port Jetpack Compose to the desktop “and other platforms”. 🤔

Resource Roundup

100% pure code!

GitHub: JorgeCastilloPrz / ComposeFillableLoaders

“Fillable loaders” are animations that show the act of filling some shape with a color. Jorge Castillo created one years ago for standard views, and now he is back with a port for Compose!

GitHub: wajahatkarim3 / ComposeCodelab

Wajahat Karim also presented at 360|AnDev and has shared his code lab project demonstrating Compose, creating a Gmail-style UI.

…And One More Thing

Compose, like the rest of the Jetpack, went on a one-month update hiatus. What we got coming out of that was quite a bit of change: new packages, new Kotlin compiler (and flags), new Compose compiler plugin, etc.

It is good that big refactorings like this are happening during developer previews. While it is annoying for those of us experimenting with Compose, we are a tiny portion of the overall Android ecosystem. Once alpha releases begin, we will get a new cohort of developers trying out Compose, and they will be expecting it to be somewhat more stable than developer previews.

On the other hand… there are only four more bi-weekly Jetpack releases between now and the end of (Northern Hemisphere) summer 2020. The first Compose alpha is supposed to be released this summer, according to the Android 11 release video series.

That’s not much time, and it seems like there are still quite a few changes to be made. My suspicion is that the first few alphas will be about as fluid as the developer previews, with the API surface and compiler strategies slowly solidifying over a long series of alpha releases. In other words, I do not expect there to be a major change in how Compose is developed just because they reach an alpha01 in the coming weeks.

Plus, summer 2020 was a target, and targets do get missed from time to time.

So, I am expecting a fair amount of change in Compose for the balance of 2020, regardless of how much of that change occurs under a “developer preview” banner versus an “alpha” banner.