jetc.dev Newsletter Issue #122
We already have
In addition, we look at activity labels and coroutine scopes. We explore Lint
rules, fragments in composables, and a
TwoPaneLayout. We see libraries
for Markdown, release notes, and onboarding.
And I am very happy to see that JetBrains bought some linen. Seriously.
Reviewing the release notes for the latest Jetpack Compose update!
The ink had barely dried on RC01 releases for Compose and Wear Compose, and we get RC02!
1.2.0-rc02 has very little in it, most notably removing the
from some easing functions in Compose Animation.
1.0.0-rc02 has a few fixes to card and chip gradients, and not much
Stable releases for both seem imminent!
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
<activity> manifest entry can have an
android:label attribute. That might
be useful for a
TopBar(), but our composables usually are not member functions
of an activity. See how to load that label in this week’s highlighted Stack Overflow
rememberCoroutineScope(), and we have
Which should we use, and when? Learn the scope of those scopes in this week’s highlighted
#compose Slack thread!
Posts, videos, and other new information related to Jetpack Compose!
Vinay Gaba was wondering what all the Lint rules were that might help Compose developers write better composables. He found a few dozen and shows you how to find them and how to adjust their severity to fit your team’s needs.
Microsoft has been maintaining a library of composables designed for the Surface Duo
and other dual-screen foldables. In this post, Joy Liu and Kristen Halper
outline some recent changes to
TwoPaneLayout that affect navigation, to offer
more flexibility while also reworking the API to be a bit more scope-centric.
A fragment-centric app can be migrated to Compose UI in a bottom-up fashion, converting each fragment to use Compose UI internally. In this post, Elye focuses on the other direction: a top-down migration that converts the activity to Compose UI before it converts that activity’s fragments. This requires composables to manipulate fragments, and Elye explores the issues with four solutions before settling on a fifth.
Toasty is a library for displaying customized
Toast-style popups. Geeks for Geeks member chaitanyamunje contributed a post
showing how to integrate that library with Compose UI, to show those popups as needed
Other Interesting Links
- How to Add Bottom Navigation in Jetpack Compose?
- Medium: Super Easy Navigation between Composable’s in Jetpack Compose
- Medium: Passing args using Jetpack Compose navigation
- Medium: How to show Snackbar in Jetpack Compose?
- Medium: Power Mechanism for Jetpack Compose with MVVM for Navigation, Toast, etc.
- Medium: Jetpack Compose Dialog: control synchronously from ViewModel with power
- Deep Links in Android using Jetpack Compose
100% pure code!
Other Interesting Links
- GitHub: massivemadness / Fragula (swipe to dismiss)
- GitHub: St4B / smart-tabs (sync
TabRow()with column content, described in this blog post)
- GitHub: kaleidot725 / text-editor-compose (multiline text editor, described in this blog post)
- Gist: xxfast / DateVisualTransformation.kt (editor transform to YYYY-MM-DD)
…And One More Thing
One of my long-term gripes about Kotlinlang Slack as the primary Compose support point is that “what happens in Slack, stays in Slack”. Slack is invite-only and unindexable by search engines. While JetBrains seems to do a good job with processing requests to join, a mandatory registration process just to read adds a lot of friction.
That just changed.
JetBrains is now using Linen, a SSaaS (Slack Surfacing as a Service) offering. Linen simply does what Slack itself should be doing: having a read-only publicly-searchable copy of the contents of a should-be-public Slack workspace.
contains an archive of all Kotlinlang Slack channels, including key ones like
#compose. Individual threads
get their own pages, such as this one
about Vinay Gaba’s work in identifying Compose-related Lint rules. There were a
few hiccups at the time of launch, but right now the site is very responsive.
This is awesome. I am pleased beyond words that JetBrains is doing this and that Linen exists. And, it has a slight impact on this newsletter: I can now start linking to Linen pages for the Slack threads that I highlight in “One Off the Stack, One Off the Slack”.
Kotlinlang-on-Linen is a very welcome development, and I look forward to the Compose ecosystem using this in interesting ways!
- 2024-02-20: Compose Multiplatform RCs! State! Nested scrolling! @email@example.com on Amper! Compose Cupertino! Compose... Hammer? And... we can memoize lambdas?!?
- 2024-02-13: Compiler 1.5.9! BOM 2024.02.00! New Glance libraries! @firstname.lastname@example.org on Circuit and Compose Multiplatform! Material3! Markdown! MVI! And... testing robots?!?
- 2024-02-06: A Compose Multiplatform survey and a patch! @email@example.com on font scaling! Modal bottom sheet close confirmation! Compose Multiplatform resources! Draggable items in lazy lists! And... @firstname.lastname@example.org talks to some Italians?!?