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.
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2024-10-01: Lazy grids! Focus! @colinmarsch@androiddev.social on CMP accessibility! @skydoves@androiddev.social on Landscapist! @sinasamaki@androiddev.social on Slider()! And... what is it?!?
- 2024-09-24: A Compose security fix and a new alpha! clipToBounds()! Localization! offset()! @skydoves@androiddev.social on server-defined UI! Bottom sheets! And... someone set us up *3* BOMs?!?
- 2024-09-17: Compose 1.7.1 and Compose Multiplatform 1.7.0-beta02! Flow layouts! TV Compose! SharedBounds! Image cropping! And... why does remember() not seem always to remember?!?