jetc.dev Newsletter Issue #8

Published: 2020-04-07

It’s an even-numbered issue, which means… it’s a new dev release issue! dev08 shipped last week, with a fair amount of changes both in Compose and the Compose UI. Plus, we explore image scaling, checkboxes, and how to cope with all of these API changes.

One Off the Stack, One Off the Slack

You’ve got questions. That’s understandable!

Hashtag List in Compose

This question explores how to implement a #List #Of #Hashtag #Structures, with a “chips”-style UI.

Scaling Images

In this Slack thread, we discuss a workaround for bugs in the current implementation of ScaleFit.FillMaxDimension, as a developer tries to get images to scale properly.

Note: to view this, you need to be a member of the Kotlin Slack workspace — sign up at https://slack.kotlinlang.org/!

Composable Commentary

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

Compose dev08 Release Notes

Compose is moving from + syntax to combine modifiers to a fluent API, where calls to modifiers get chained together. The objective is better function discoverability in the IDE, via auto-complete, which doesn’t work with operators like +.

Compose UI dev08 Release Notes

Lots of changes: Draggable and Ripple modifiers, VectorPainter added, Container deprecated in favor of Box, and more!

Exploring Jetpack Compose: Checkbox

Joe Birch is back with another blog post on Compose, this time focusing on Checkbox.

Resource Roundup

100% pure code!

GitHub - vinaygaba/Learn-Jetpack-Compose-By-Example

This repository contains a large list of Compose samples, showing off various API features and describing, in comments, how they work.

GitHub - joreilly/PeopleInSpace

Kotlin/Multiplatform! Jetpack Compose! Swift UI! All in one project!

GitHub - mobnetic/compose-shared-element

This is a proof-of-concept project for implementing a shared element (or “hero widget”) as part of a UI transition in Compose.

…And One More Thing

Jetpack Compose has a swiftly-changing API. We used to use the unary plus operator a lot (+memo), but no more. We used to use the binary plus operator (for combining modifiers), but that is gone too. Fundamental constructs like Container get deprecated and replaced (with Box in this case). And so on.

This is to be expected.

So long as we are in “dev” releases, anything could change in the API surface. That’s the point of “dev” releases — get early API feedback before that API starts to solidify. When we get to alpha releases, while the API may still change, those changes will be less drastic.

Certainly, you are welcome to use Compose for whatever you want, so long as you do not mind re-re-re-re-re-writing it as the API undergoes these substantial shifts. Hopefully, part of your objective of using Compose is to provide feedback on what you like and what you do not, such as through the kotlinlang Slack #compose channel.

On the flip side, if all you are doing is experimenting with Compose to get a sense of how it works… do not feel that you have to take on every dev release. The more releases you skip, the farther behind you fall, and the more difficult it may be to update your code… but you may not be planning on updating that experimental code anyway.

We may be in the “dev” release phase for quite some time. Plan accordingly!