View profile Newsletter - Issue #117 Newsletter - Issue #117
By Mark Murphy, CommonsWare • Issue #117 • View online
beta02 is out already for Compose and Wear Compose!
We also look at Canvas() including animating its rendered output. We examine Google Fonts, MVI, and composables that return stuff. We look at some Detekt rules for coding style and an experiment in generating PowerPoint presentations from composables. And I look at a possibly-forthcoming library from the fine folks at Block that does a Compose UI… without Compose UI.

Beta Breakdown
Reviewing the release notes for the latest Jetpack Compose update!
Surprisingly, we already have 1.2.0-beta02!
One change seen in the commits, if not the actual released artifacts, is that we may soon have a new runtime-tracing library at our disposal. This adds Perfetto traces to Compose, though it appears that we may need some Studio improvements to take advantage of this.
Beyond that, though, very little shows up in the 1.2.0-beta02 release notes.
Wear Compose also has a beta02 release. Mostly, this has bug fixes, though it also changes the various Chip() composables to be sized according to their contents by default, rather than always having their width fill the container.
One Off the Stack, One Off the Slack
You’ve got questions. That’s understandable!
I wasn’t a fan of any of the answered Stack Overflow questions this week, so let’s head right to Slack!
Composable Commentary
Posts, videos, and other new information related to Jetpack Compose!
Medium: Custom Canvas Animations in Jetpack Compose
5 steps to Google Fonts in Jetpack Compose
Medium: Managing Jetpack Compose UI State With Sealed Classes
Composable functions and return types
Custom Progress Bar with Jetpack Compose Canvas API
Medium: MVVM vs MVI for Jetpack Compose
Medium: A cleaner way to interact between Composable and ViewModel in Jetpack Compose
Resource Roundup
100% pure code!
GitHub - Decathlon/vitamin-compose
Other Interesting Links
…And One More Thing
Some of the most interesting innovation in Compose comes from projects applying Compose to things beyond the official Compose UI. Some of that is official, such as Glance for app widgets and Wear OS tiles. Some of that is from the community, such as Jake Wharton’s Mosaic, a console UI powered by Compose, or molecule, CashApp’s library for having composable functions be the driver of content through a Flow.
They seem to be at it again, this time with a project named “redwood”.
Based on Jake’s description in Kotlinlang Slack, redwood is a Compose-powered UI engine, but not using the official Compose UI framework. Rather, redwood expects you to provide the underlying implementations of a design system, down to how you intend that to be rendered in some UI toolkit. The redwood project lets you build UIs using that design system.
In theory, Compose UI can implement any design system. In practice, Compose Material is the only realistic choice if you want something that works “out of the box”. If you want to deviate from what Compose Material gives you, you wind up having to implement lots of composables from scratch, perhaps using the Compose Material implementations as inspiration. It would appear that the redwood project is saying “well, if you have to do all of that, use a framework designed around that premise”. The downside is a lot of custom code to maintain, but you get absolute control as a benefit.
From the description, it sounds like they hope that redwood will be released as open source before the end of 2022, probably late in the year. The quality of the open source projects from Square and CashApp is exceptionally high, so it will be interesting to see what redwood turns out to look like and whether it is something that might become popular.
Did you enjoy this issue?
Mark Murphy, CommonsWare

Jetpack Compose news and notes.

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Powered by Revue