jetc.dev Newsletter Issue #27

Published: 2020-08-18

This week, we have a fairly light issue. I am guessing that too many developers spent too much time replacing all their Compose import statements after switching to dev16 to write. 😁

But, we still take a look at text size animations, the state of the Material Design spec with respect to composables, and a new home for a style adapter. Plus, we add to the speculation about the timing of the first alpha release.

One Off the Stack, One Off the Slack

You’ve got questions. That’s understandable!

Animating Text Size Changes

In the classic View system, if you set the text of a TextView, the text changes instantly. You get the same effect if you recompose a Text() composable and supply different text than before. However, through the animateContentSize() modifier, you can have the transition animate the size change.

Where Are All The Material Design Composables?

The Material Design site has lots of components that are not yet embodied in the form of composables. In this week’s highlighted Slack thread, we look at why that is the case and how those needs might be met.

Resource Roundup

100% pure code!

GitHub: material-components / material-components-android-compose-theme-adapter

Google’s official Material Components set of repositories now has an adapter to convert a Material Components for Android-based theme into a Compose theme. If this sounds familiar, is it because Chris Banes initially developed it as part of his Accompanist library. Since Chris is the contributor to this new repo, this suggests that his adapter is being upgraded from “something cool written by a Googler” to “something cool that now is semi-official”.

GitHub: ReactiveCircus / compose-lint-rules

This repo eventually may contain a collection of Lint rules related to Compose. Right now, it has just one: enforcing an initial capital letter in the function names of functions annotated with @Composable.

…And One More Thing

Twitter and Reddit were abuzz about a Gerrit entry showing a jump in the Compose version from 0.1.0-dev17 to 1.0.0-alpha02. This is from a file used in Gradle builds that appears to denote the current version of many of the Jetpack artifacts.

Right now, Compose is at dev17. Assuming that the normal every-two-week cycle proceeds, dev17 should be released tomorrow (August 19), and perhaps the first alpha would be two weeks after that (September 2). This is in line with the “summer 2020” timeframe for the first alpha. In fact, they do not have much room for slippage, as there would only be one more two-week update cycle before Google officially runs out of summer.

The fact that the file jumps from dev17 to alpha02 is a bit unusual. If that is the first alpha version that we see, I imagine that we will get some explanation.

And, based on Kotlinlang #compose discussion, it does not feel like the tenor of Compose development will change very much. Perhaps they will make fewer major changes, but I still expect the Compose API to be fairly fluid. With luck, the pace of changes will slow somewhat as the alpha versions pile up, so that by the time they switch to beta versions, the API surface will be more solid.

After all, right now, only the most enthusiastic developers are playing with Compose, in part because of the constant rewrites to adapt to developer preview changes. I hope that community involvement will ramp up as we get APIs that are increasingly stable.

Still… be prepared to “pour one out” for the developer previews after tomorrow’s dev17, as it appears that the alpha train is about to leave the station.