You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added a basic DOM-based LazyList implementation.
-TreehouseApp.close() stops the app and prevents it from being started again later.
Added UiConfiguration.layoutDirection to support reading the host's layout direction.
New redwood-bom artifact can be used to ensure all Redwood artifacts use the same version. See Gradle's documentation on how to use the BOM in your build.
Changed:
The app.cash.redwood Gradle plugin has been removed. This plugin did two things: apply the Compose compiler and add a dependency on the redwood-compose artifact. The Compose compiler can now be added by applying the org.jetbrains.kotlin.plugin.compose Gradle plugin. Dependencies on Redwood artifacts can be added manually.
Removed deprecated typealiases for generated -WidgetFactories type which was renamed to -WidgetSystem in 0.10.0.
Removed deprecated Modifier.flex extension function which is now supported natively by Row and Column since 0.8.0.
Removed deprecated TreehouseWidgetView and TreehouseUIKitView type aliases for TreehouseLayout and TreehouseUIView which were renamed in 0.7.0.
Removed deprecated TreehouseAppFactory functions with the old FileSystem and Path order which were changed in 0.11.0.
Rename the two types named ProtocolBridge to ProtocolHost and ProtocolGuest.
Fixed:
Fix memory leaks caused by reference cycles on iOS. We got into trouble mixing garbage-collected Kotlin objects with reference-counted Swift objects.
Breaking:
-TreehouseApp.zipline is now a StateFlow<Zipline?> instead of a Zipline?.
-CodeListener.onCodeDetached() replaces onUncaughtException(). The new function is called
whenever code stops driving a view for any reason. The new function accepts a Throwable? that is
non-null if it's detached due to exception.
-Content.awaitContent() now accepts an optional Int parameter for the number of updates to
observe before the function returns.
MacOS targets have been (temporarily) removed from all modules.
Upgraded:
Kotlin 2.0.0
Zipline 1.13.0
kotlinx.serialization 1.7.0
Gradle plugin removed
This version of Redwood removes the custom Gradle plugin in favor of the official JetBrains Compose compiler plugin which ships as part of Kotlin itself.
Each module in which you had previously applied the app.cash.redwood plugin should be changed to apply org.jetbrains.kotlin.plugin.compose instead.
The Redwood dependencies will no longer be added as a result of the plugin change, and so any module which references Redwoods APIs should add those dependencies explicitly.
For posterity, the Kotlin version compatibility table and compiler version customization for our old Redwood Gradle plugin will be archived here:
Each version of Redwood ships with a specific JetBrains Compose compiler version which works with
a single version of Kotlin (see version table above). Newer versions of
the Compose compiler or alternate Compose compilers can be specified using the Gradle extension.
To use a new version of the JetBrains Compose compiler version:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
New:
LazyListimplementation.-
TreehouseApp.close()stops the app and prevents it from being started again later.UiConfiguration.layoutDirectionto support reading the host's layout direction.redwood-bomartifact can be used to ensure all Redwood artifacts use the same version. See Gradle's documentation on how to use the BOM in your build.Changed:
app.cash.redwoodGradle plugin has been removed. This plugin did two things: apply the Compose compiler and add a dependency on theredwood-composeartifact. The Compose compiler can now be added by applying theorg.jetbrains.kotlin.plugin.composeGradle plugin. Dependencies on Redwood artifacts can be added manually.typealiases for generated-WidgetFactoriestype which was renamed to-WidgetSystemin 0.10.0.Modifier.flexextension function which is now supported natively byRowandColumnsince 0.8.0.TreehouseWidgetViewandTreehouseUIKitViewtype aliases forTreehouseLayoutandTreehouseUIViewwhich were renamed in 0.7.0.TreehouseAppFactoryfunctions with the oldFileSystemandPathorder which were changed in 0.11.0.ProtocolBridgetoProtocolHostandProtocolGuest.Fixed:
Breaking:
-
TreehouseApp.ziplineis now aStateFlow<Zipline?>instead of aZipline?.-
CodeListener.onCodeDetached()replacesonUncaughtException(). The new function is calledwhenever code stops driving a view for any reason. The new function accepts a
Throwable?that isnon-null if it's detached due to exception.
-
Content.awaitContent()now accepts an optionalIntparameter for the number of updates toobserve before the function returns.
Upgraded:
Gradle plugin removed
This version of Redwood removes the custom Gradle plugin in favor of the official JetBrains Compose compiler plugin which ships as part of Kotlin itself.
Each module in which you had previously applied the
app.cash.redwoodplugin should be changed to applyorg.jetbrains.kotlin.plugin.composeinstead.The Redwood dependencies will no longer be added as a result of the plugin change, and so any module which references Redwoods APIs should add those dependencies explicitly.
For posterity, the Kotlin version compatibility table and compiler version customization for our old Redwood Gradle plugin will be archived here:
Redwood 0.12.0 Gradle plugin Kotlin compatibility table
Since Kotlin compiler plugins are an unstable API, certain versions of Redwood only work with
certain versions of Kotlin.
Redwood 0.12.0 Gradle plugin Compose compiler customization instructions
Each version of Redwood ships with a specific JetBrains Compose compiler version which works with
a single version of Kotlin (see version table above). Newer versions of
the Compose compiler or alternate Compose compilers can be specified using the Gradle extension.
To use a new version of the JetBrains Compose compiler version:
redwood { kotlinCompilerPlugin.set("1.4.8") }To use an alternate Compose compiler dependency:
redwood { kotlinCompilerPlugin.set("com.example:custom-compose-compiler:1.0.0") }This discussion was created from the release 0.12.0.
Beta Was this translation helpful? Give feedback.
All reactions