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!
Or, you can subscribe to the Atom feed or follow Mark Murphy in the Fediverse.
Recent Issues:
- 2024-12-10: A Compose Multiplatform alpha! Hot reload! Presentation! Sprites! Calendars!
- 2024-12-03: Rebecca Franks on clipping and masking! Stefano Natali on graphicsLayer()! FunkyMuse on type-safe nav results! And... if we have enough maps, do we need to store our maps in a Map?!?
- 2024-11-26: Math! Shared element transitions! Custom modifiers! Macrobenchmark! Adapting to platform-specific design systems! And... why does wrapContentSize() not wrap my content size?!?