Releases: slackhq/circuit
0.26.1
- Fix crash on right side back gesture.
- Update
CupertinoGestureNavigationDecoration
to be aAnimatedNavDecorator
. - Fix value restoration after
removeState
call inRetainedStateHolder
. - Update Android compose artifacts to
1.7.8
. - [docs] Add tutorial for how to use Circuit shared elements.
- [docs] Added basic reference guide on deep-linking using circuit for Android platform.
Special thanks to @vulpeszerda for contributing to this release!
What's Changed
- Update dependency mkdocs-material to v9.6.3 by @slack-oss-bot in #1925
- Update dependency com.github.ajalt.clikt:clikt to v5.0.3 by @slack-oss-bot in #1928
- Fix crash on right side back gesture by @stagg in #1935
- [📖 User Guide] Added basic reference guide on deep-linking using circuit for Android platform. by @hossain-khan in #1926
- Add tutorial for how to use Circuit shared elements by @stagg in #1936
- Update dependency org.jetbrains.kotlinx:kotlinx-datetime to v0.6.2 by @slack-oss-bot in #1932
- Update roborazzi to v1.41.0 by @slack-oss-bot in #1933
- Add Metro code gen support by @ZacSweers in #1937
- Update ktor monorepo to v3.1.0 by @slack-oss-bot in #1938
- Update compose.material to v1.7.8 by @slack-oss-bot in #1941
- Update compose.runtime to v1.7.8 by @slack-oss-bot in #1942
- Update dependency androidx.compose.animation:animation to v1.7.8 by @slack-oss-bot in #1944
- Update dependency mkdocs-material to v9.6.4 by @slack-oss-bot in #1946
- Update roborazzi to v1.41.1 by @slack-oss-bot in #1947
- Update dependency androidx.compose:compose-bom to v2025.02.00 by @slack-oss-bot in #1948
- Fix value restoration after
removeState
call inRetainedStateHolder
by @vulpeszerda in #1931 - Update
CupertinoGestureNavigationDecoration
to be aAnimatedNavDecorator
by @stagg in #1939 - Update dependency androidx.compose.foundation:foundation to v1.7.8 by @slack-oss-bot in #1945
- Update compose.ui to v1.7.8 by @slack-oss-bot in #1943
Full Changelog: 0.26.0...0.26.1
0.26.0
Happy new year!
Shared Elements API!
After a lot of iteration and work, this release adds support for Compose's new shared elements APIs.
These are still experimental and subject to change, both in Circuit and the underlying Compose APIs.
See this PR for full details as well as sample integrations: #1550. Please share feedback in this discussion. More formal docs to come as well, we'll publish updates there!
For now, the easiest way to support shared element transitions is to wrap your content with a SharedElementTransitionLayout
.
CircuitCompositionLocals(circuit) {
SharedElementTransitionLayout {
NavigableCircuitContent(
navigator = navigator,
backStack = backStack,
)
}
}
SharedElementTransitionLayout
creates and provides a SharedElementTransitionScope
to content within it, and in turn exposes a SharedTransitionScope
for use with standard compose shared elements/bounds animations. This is supported in NavigableCircuitContent
and overlays.
There is also a PreviewSharedElementTransitionLayout
for help with Compose previews.
Behaviour Changes: rememberRetained
Previously, rememberRetained
could sometimes restore values when a composable was re-added, depending on whether its parent RetainedStateRegistry
had been saved (#1783).
Now, rememberRetained
aligns with remember
and rememberSaveable
: if a composable is removed and later re-added, its value will not be restored unless it is explicitly saved and then restored via the registry.
Update rememberRetained to allow CanRetainChecker to be updated in place.
Behaviour Change: RetainedStateRegistry
saveAll
now returns the saved values.RetainedStateRegistry.Entry.unregister
now returns whether the unsaved valueProvider was actually removed.saveAll
andsaveValue
now skip storing child values whenCanRetainChecker
returnsfalse
.
New: RetainedStateHolder
Similar to SaveableStateHolder
, RetainedStateHolder
provides a mechanism to maintain separate RetainedStateRegistry
entries for specific keys. This allows saving the state defined with rememberRetained
for a subtree before it is disposed, so that the subtree can later be recomposed with its state restored.
val retainedStateHolder = rememberRetainedStateHolder()
var currentTab by remember { mutableStateOf(TabA) }
retainedStateHolder.RetainedStateProvider(key = currentTab.name) {
// rememberRetained values in tab content are preserved across tab switches
when (currentTab) {
TabA -> {
TabAContent()
}
TabB -> {
TabBContent()
}
TabC -> {
TabCContent()
}
}
}
Implementation Changes: NavigableCircuitContent
- The approach of managing a separate
RetainedStateRegistry
for each record has been changed to useRetainedStateHolder
instead. - Change
SaveableStateHolder
to release saved states of removed records.
Misc
- Fixe an issue causing codegen to fail for class @Inject annotations.
- Compile against Android SDK 35.
- Update Compose Android BOM to
2025.01.01
. - Update to androidx.annotation
1.9.1
. - Update to androidx.activity
1.10.0
. - Update to Compose Android
1.7.7
. - Update to Compose Multiplatform
1.7.3
. - Update to Kotlin
1.9.10
. - [code gen] Update to KSP
1.9.10-1.0.29
. - [code gen] Update to Dagger
2.55
. - [code gen] Update to KotlinPoet
2.0.0
. - [code gen] Build against Anvil-KSP
0.4.1
. Should still be compatible with square/anvil as well. - [code gen] Build against kotlin-inject-anvil
0.1.2
. Should still be compatible with square/anvil as well. - [samples] Update mosaic + modernize mosaic counter sample to fully use effects.
- [docs] Fix variable casing in Navigation documentation example.
Special thanks to @vulpeszerda, @rharter, @alexvanyo, and @easyhooon for contributing to this release!
What's Changed
- Update dependency mkdocs-macros-plugin to v1.3.7 by @slack-oss-bot in #1756
- Update coil3 to v3.0.0-rc02 by @slack-oss-bot in #1757
- Update ktor monorepo to v3.0.1 by @slack-oss-bot in #1759
- Update dependency pymdown-extensions to v10.12 by @slack-oss-bot in #1758
- Update androidx.lifecycle to v2.8.7 by @slack-oss-bot in #1761
- Update compose.material to v1.7.5 by @slack-oss-bot in #1762
- Update compose.runtime to v1.7.5 by @slack-oss-bot in #1763
- Update dependency androidx.annotation:annotation to v1.9.1 by @slack-oss-bot in #1765
- Update dependency androidx.compose.foundation:foundation to v1.7.5 by @slack-oss-bot in #1767
- Update dependency androidx.constraintlayout:constraintlayout-compose to v1.1.0 by @slack-oss-bot in #1772
- Update anvil to v0.4.0 by @slack-oss-bot in #1773
- Update dependency androidx.compose.material3:material3 to v1.3.1 by @slack-oss-bot in #1769
- Update dependency mkdocs-material to v9.5.43 by @slack-oss-bot in #1771
- Update dependency androidx.compose.animation:animation to v1.7.5 by @slack-oss-bot in #1766
- Update dependency androidx.compose:compose-bom to v2024.10.01 by @slack-oss-bot in #1770
- Update agp to v8.7.2 by @slack-oss-bot in #1768
- Update compose.ui to v1.7.5 by @slack-oss-bot in #1764
- Update dependency androidx.core:core-ktx to v1.15.0 by @slack-oss-bot in #1774
- Update dependency com.facebook:ktfmt to v0.53 by @slack-oss-bot in #1775
- Update dependency com.fleeksoft.ksoup:ksoup-ktor2 to v0.2.0 by @slack-oss-bot in #1776
- Update roborazzi to v1.30.1 by @slack-oss-bot in #1777
- Update kotlinInject.anvil to v0.1.0 by @slack-oss-bot in #1780
- Update coil3 to v3.0.0 by @slack-oss-bot in #1779
- Update dependency mkdocs-material to v9.5.44 by @slack-oss-bot in #1781
- Update roborazzi to v1.32.1 by @slack-oss-bot in #1782
- Update coil3 to v3.0.1 by @slack-oss-bot in #1784
- Update dependency app.cash.paparazzi to v1.3.5 by @slack-oss-bot in #1786
- Update dependency com.android.tools:desugar_jdk_libs to v2.1.3 by @slack-oss-bot in #1787
- Update roborazzi to v1.32.2 by @slack-oss-bot in #1788
- Update coil3 to v3.0.2 by @slack-oss-bot in #1789
- Update kct to v0.6.0 by @slack-oss-bot in #1793
- Update dependency gradle to v8.11 by @slack-oss-bot in #1792
- Update ksp to v2.0.21-1.0.27 by @slack-oss-bot in #1753
- Update compose.jb to v1.7.1 by @slack-oss-bot in #1795
- Update dependency androidx.compose:compose-bom to v2024.11.00 by @slack-oss-bot in #1798
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.14.0 by @slack-oss-bot in #1799
- Update kotlinpoet to v2 (major) by @slack-oss-bot in #1754
- Introduce kotlin binary compatibility checker by @ZacSweers in #1800
- Update coil3 to v3.0.3 by @slack-oss-bot in #1802
- Update ksp to v2.0.21-1.0.28 by @slack-oss-bot in #1804
- Update plugin emulatorWtf to v0.18.1 by @slack-oss-bot in #1806
- Update dependency org.robolectric:robolectric to v4.14 by @slack-oss-bot in #1803
- Fixes issue causing codegen to fail for class
@Inject
annotations. by @rharter in #1807 - Update dependency gradle to v8.11.1 by @slack-oss-bot in #1808
- Update dependency mkdocs-material to v9.5.45 by @slack-oss-bot in #1809
- Update dependency org.robolectric:robolectric to v4.14.1 by @slack-oss-bot in #1810
- Remove coil 2 by @ZacSweers in #1811
- Enable configuration cache sharing on CI by @ZacSweers in #1812
- Update dependency tornado to v6.4.2 by @slack-oss-bot in #1813
- Update kotlinInject.anvil to v0.1.1 by @slack-oss-bot in #1814
- Update roborazzi to v1.33.0 by @slack-oss-bot in #1815
- Update roborazzi to v1.34.0 by @slack-oss-bot in #1816
- Update dependency mkdocs-material to v9.5.46 by @slack-oss-bot in #1819
- Update dependency io.reactivex.rxjava3:rxjava to v3.1.10 by @slack-oss-bot in https://github.com/slack...
0.25.0
- New: Pass
tonalElevation
toBottomSheetOverlay
so that is reflected inModalBottomSheet
. - Enhancement: Add
-dontwarn
on Anvil classes from codegen annotations. - Enhancement: Misc small doc fixes and updates.
- Enhancement: Add note about only creating a presenter for supported screen types in tutorial.
- Update kotlinInject.anvil to
0.0.5
. - Update androidx.activity to
1.9.3
. - Update androidx.lifecycle to
2.8.6
. - Update Kotlin to
2.0.21
. - Build against KSP to
2.0.21-1.0.25
. - Update Turbine to
1.2.0
. - Update Compose Android to
1.7.4
. - Update Compose Multiplatform to
1.7.0
.
Special thanks to @eboudrant, @bidrohi, @hossain-khan, and @dturner for contributing to this release!
What's Changed
- Update kotlinInject.anvil to v0.0.4 by @slack-oss-bot in #1656
- Update dependency mkdocs-macros-plugin to v1.2.0 by @slack-oss-bot in #1657
- Update dependency com.github.ajalt.clikt:clikt to v5 by @slack-oss-bot in #1654
- Update agp to v8.6.1 by @slack-oss-bot in #1658
- Update androidx.lifecycle to v2.8.6 by @slack-oss-bot in #1661
- Update benchmark to v1.3.1 by @slack-oss-bot in #1662
- Update dependency androidx.compose:compose-bom to v2024.09.02 by @slack-oss-bot in #1663
- Update dependency com.fleeksoft.ksoup:ksoup-ktor2 to v0.1.8 by @slack-oss-bot in #1659
- Update dependency mkdocs-material to v9.5.35 by @slack-oss-bot in #1660
- Update dependency org.jline:jline to v3.27.0 by @slack-oss-bot in #1673
- Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json-okio to v1.7.3 by @slack-oss-bot in #1671
- Update dependency androidx.profileinstaller:profileinstaller to v1.4.0 by @slack-oss-bot in #1672
- Update dependency mkdocs-material to v9.5.36 by @slack-oss-bot in #1674
- Update dependency pymdown-extensions to v10.10 by @slack-oss-bot in #1675
- Update dependency pymdown-extensions to v10.10.1 by @slack-oss-bot in #1676
- Add note about only creating a presenter for supported screen types by @dturner in #1681
- Update dependency com.fleeksoft.ksoup:ksoup-ktor2 to v0.1.9 by @slack-oss-bot in #1678
- Update dependency gradle to v8.10.2 by @slack-oss-bot in #1679
- Update dependency co.touchlab.skie to v0.9.0 by @slack-oss-bot in #1682
- Update dependency mkdocs-material to v9.5.37 by @slack-oss-bot in #1683
- Update dependency mkdocs-material to v9.5.38 by @slack-oss-bot in #1684
- Update dependency fastlane to v2.223.1 by @slack-oss-bot in #1686
- Update dependency pymdown-extensions to v10.11 by @slack-oss-bot in #1685
- [FIXED] Broken link navigation.md to overlays by @hossain-khan in #1688
- Update dependency mkdocs-material to v9.5.39 by @slack-oss-bot in #1687
- Update agp to v8.7.0 by @slack-oss-bot in #1691
- Update roborazzi to v1.27.0 by @slack-oss-bot in #1693
- Update dependency pymdown-extensions to v10.11.2 by @slack-oss-bot in #1689
- Update benchmark to v1.3.2 by @slack-oss-bot in #1694
- Update dependency androidx.compose:compose-bom to v2024.09.03 by @slack-oss-bot in #1695
- Update dependency androidx.profileinstaller:profileinstaller to v1.4.1 by @slack-oss-bot in #1696
- Update dependency co.touchlab.skie to v0.9.1 by @slack-oss-bot in #1697
- Update dependency co.touchlab.skie to v0.9.2 by @slack-oss-bot in #1703
- Update dependency com.google.testparameterinjector:test-parameter-injector to v1.18 by @slack-oss-bot in #1705
- Update dependency com.github.ajalt.clikt:clikt to v5.0.1 by @slack-oss-bot in #1707
- Update dependency fastlane to v2.224.0 by @slack-oss-bot in #1706
- Add passing tonal elevation to M3 Bottom Sheet by @bidrohi in #1690
- Update roborazzi to v1.28.0 by @slack-oss-bot in #1708
- Update dependency termcolor to v2.5.0 by @slack-oss-bot in #1709
- Update dependency MarkupSafe to v3 by @slack-oss-bot in #1713
- Update kotlinInject.anvil to v0.0.5 by @slack-oss-bot in #1712
- Update dependency com.slack.lint.compose:compose-lint-checks to v1.4.1 by @slack-oss-bot in #1692
- Update dependency MarkupSafe to v3.0.1 by @slack-oss-bot in #1714
- Update dependency mkdocs-macros-plugin to v1.3.4 by @slack-oss-bot in #1716
- Update ktor monorepo to v3 (major) by @slack-oss-bot in #1717
- Update dependency mkdocs-macros-plugin to v1.3.5 by @slack-oss-bot in #1719
- Update anvil to v0.3.2 by @slack-oss-bot in #1723
- Update tutorial.md - Sample code fixes by @hossain-khan in #1724
- Update dependency mkdocs-material to v9.5.40 by @slack-oss-bot in #1720
- Add -dontwarn on Anvil classes from codegen annotations by @eboudrant in #1718
- Update roborazzi to v1.29.0 by @slack-oss-bot in #1726
- Update dependency com.vanniktech.maven.publish to v0.30.0 by @slack-oss-bot in #1725
- Update kotlin monorepo to v2.0.21 by @slack-oss-bot in #1721
- Update agp to v8.7.1 by @slack-oss-bot in #1727
- Update dependency co.touchlab.skie to v0.9.3 by @slack-oss-bot in #1728
- Update dependency mkdocs-material to v9.5.41 by @slack-oss-bot in #1729
- Update dependency org.jline:jline to v3.27.1 by @slack-oss-bot in #1730
- Compose 1.7.x by @stagg in #1627
- Update dependency androidx.annotation:annotation to v1.9.0 by @slack-oss-bot in #1741
- Update benchmark to v1.3.3 by @slack-oss-bot in #1735
- Update androidx.activity to v1.9.3 by @slack-oss-bot in #1734
- Update dependency MarkupSafe to v3.0.2 by @slack-oss-bot in #1746
- Update anvil to v0.3.3 by @slack-oss-bot in #1747
- Update dependency mkdocs-macros-plugin to v1.3.6 by @slack-oss-bot in #1737
- Update dependency app.cash.turbine:turbine to v1.2.0 by @slack-oss-bot in #1744
- Update plugin emulatorWtf to v0.18.0 by @slack-oss-bot in #1745
- Update dependency fastlane to v2.225.0 by @slack-oss-bot in #1749
- Update dependency mkdocs-material to v9.5.42 by @slack-oss-bot in #1748
- Update dependency com.slack.lint.compose:compose-lint-checks to v1.4.2 by @slack-oss-bot in #1752
- Update dependency org.jetbrains.kotlinx:atomicfu to v0.26.0 by @slack-oss-bot in #1750
New Contributors
- @dturner made their first contribution in #1681
- @hossain-khan made their first contribution in #1688
- @bidrohi made their first contribution in #1690
Full Changelog: 0.24.0...0.25.0
0.24.0
- New: Add code gen support for kotlin-inject + kotlin-inject-anvil. See the code gen docs for usage instructions. We've also added a sample project.
- New:
presenterTestOf()
andPresenter.test()
functions now return a newCircuitReceiveTurbine
interface. This interface slightly but importantly modifies the behavior ofawaitItem()
by making it only emit changed items rather than every item. If you do want to assert the equivalent state is emitted across recompositions, you can useawaitUnchanged()
. - New: Promote
LocalBackStack
to public API. - Behavior change: Due to the above-documented change to
awaitItem()
, you may need to update tests that previously assumed duplicate emissions. - Update to Kotlin
2.0.20
. - Change: Switch to stdlib's implementation of
Uuid
. This release now requires Kotlin2.0.20
or later. - Add sample test to demonstrate
rememberAnsweringNavigator
result handling. - Update to kotlinx.coroutines
1.9.0
. - Update to compose-bom
2024.09.01
. - Update to kotlinx.collections.immutable
0.3.8
. - Update to androidx.activity
1.9.2
. - Update to androidx.lifecycle
2.8.5
. - Update to kotlin
2.0.20
. - Build against KSP
2.0.20-1.0.25
.
What's Changed
- Update anvil to v0.2.5 by @slack-oss-bot in #1579
- GH Actions - Add additional branches to CI
pull_request
trigger by @stagg in #1581 - Test to demonstrate
rememberAnsweringNavigator
result handling by @stagg in #1582 - Update dependency gradle to v8.10 by @slack-oss-bot in #1584
- Update dependency Markdown to v3.7 by @slack-oss-bot in #1585
- Update dependency androidx.test:monitor to v1.7.2 by @slack-oss-bot in #1583
- Update dependency mkdocs-material to v9.5.32 by @slack-oss-bot in #1586
- Make presenter tests use distinctUntilChanged by default by @ZacSweers in #1590
- Update dependency org.jetbrains.kotlinx:kotlinx-datetime to v0.6.1 by @slack-oss-bot in #1587
- Update benchmark to v1.3.0 by @slack-oss-bot in #1591
- Update dependency androidx.compose:compose-bom to v2024.08.00 by @slack-oss-bot in #1592
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.13.0 by @slack-oss-bot in #1593
- Update anvil to v0.2.6 by @slack-oss-bot in #1594
- Update dependency mkdocs-material to v9.5.33 by @slack-oss-bot in #1598
- Remove baseline profile gen from CI by @ZacSweers in #1600
- Promote LocalBackStack to public API by @ZacSweers in #1601
- Update ktfmt and spotless by @ZacSweers in #1599
- Update gradle/actions action to v4 by @slack-oss-bot in #1552
- Update to JDK 22 by @ZacSweers in #1602
- commonize pet bio parsing with ksoup by @ZacSweers in #1603
- Update dependency com.android.tools:desugar_jdk_libs to v2.1.0 by @slack-oss-bot in #1604
- Update to Kotlin 2.0.20 by @ZacSweers in #1605
- Update dependency com.android.tools:desugar_jdk_libs to v2.1.1 by @slack-oss-bot in #1607
- Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json-okio to v1.7.2 by @slack-oss-bot in #1608
- Update dependency com.google.testparameterinjector:test-parameter-injector to v1.17 by @slack-oss-bot in #1611
- Update dependency mkdocs to v1.6.1 by @slack-oss-bot in #1612
- Update dependency mkdocs-material to v9.5.34 by @slack-oss-bot in #1613
- Update anvil to v0.3.0 by @slack-oss-bot in #1614
- Update anvil to v0.3.1 by @slack-oss-bot in #1615
- Update agp to v8.6.0 by @slack-oss-bot in #1610
- Update dependency com.android.tools:desugar_jdk_libs to v2.1.2 by @slack-oss-bot in #1620
- Update dependency androidx.activity:activity-compose to v1.9.2 by @slack-oss-bot in #1619
- Update androidx.activity to v1.9.2 by @slack-oss-bot in #1617
- Update androidx.lifecycle to v2.8.5 by @slack-oss-bot in #1618
- Update dependency com.fleeksoft.ksoup:ksoup-ktor2 to v0.1.6 by @slack-oss-bot in #1621
- Update dependency org.jetbrains.kotlinx:kotlinx-collections-immutable to v0.3.8 by @slack-oss-bot in #1628
- Update ksp to v2.0.20-1.0.25 by @slack-oss-bot in #1629
- Update dependency io.gitlab.arturbosch.detekt to v1.23.7 by @slack-oss-bot in #1637
- Update dependency androidx.compose:compose-bom to v2024.09.01 by @slack-oss-bot in #1645
- Update dependency com.fleeksoft.ksoup:ksoup-ktor2 to v0.1.7 by @slack-oss-bot in #1646
- Update dependency co.touchlab.skie to v0.9.0-RC.4 by @slack-oss-bot in #1647
- Update okio to v3.9.1 by @slack-oss-bot in #1648
- Update kotlinx.coroutines to v1.9.0 by @slack-oss-bot in #1650
- Update dependency co.touchlab.skie to v0.9.0-RC.5 by @slack-oss-bot in #1649
- Add support for kotlin-inject-anvil by @ZacSweers in #1635
- Implement CircuitReceiveTurbine by @ZacSweers in #1597
Full Changelog: 0.23.1...0.24.0
0.23.1
- New: Promote
NoOpRetainedStateRegistry
to public API for use in testing and previews. - New: Add
CircuitPreview
helper function for composable previews that contain Circuit content. - Enhancement: When running under
LocalInspectionMode
, Circuit's defaultonUnavailableContent
now shows a simpler non-intrusive placeholder UI instead. - Enhancement: Support secondary injected constructors in code gen.
- Fix: Fix non-dismissable
BottomSheetOverlay
crash when invoking back-press. - Update to Kotlin
2.0.10
. - Update to androidx.annotation
1.8.2
. - Build against KSP
2.0.10-1.0.24
.
What's Changed
- Update dependency mkdocs-material to v9.5.31 by @slack-oss-bot in #1551
- Switch to anvil-ksp fork by @ZacSweers in #1559
- Update roborazzi to v1.26.0 by @slack-oss-bot in #1554
- Update dependency PyYAML to v6.0.2 by @slack-oss-bot in #1555
- Update benchmark to v1.3.0-rc01 by @slack-oss-bot in #1562
- Update coil3 to v3.0.0-alpha10 by @slack-oss-bot in #1563
- Update dependency androidx.annotation:annotation to v1.8.2 by @slack-oss-bot in #1564
- Update agp to v8.5.2 by @slack-oss-bot in #1566
- Update anvil to v0.2.2 by @slack-oss-bot in #1567
- Update ksp to v2.0.10-1.0.24 by @slack-oss-bot in #1558
- Update kotlin monorepo to v2.0.10 by @slack-oss-bot in #1557
- Update renovatebot/github-action action to v40 by @slack-oss-bot in #1568
- Update anvil to v0.2.3 by @slack-oss-bot in #1570
- Small improvements for using circuit in previews by @ZacSweers in #1573
- Support secondary constructors for injection by @ZacSweers in #1574
- Update anvil to v0.2.4 by @slack-oss-bot in #1575
- Update dependency io.reactivex.rxjava3:rxjava to v3.1.9 by @slack-oss-bot in #1576
- Fix non-dismissable bottom sheets being dismissable on backpress by @ZacSweers in #1577
Full Changelog: 0.23.0...0.23.1
0.23.0
- New: Add macOS, windows, linux, tvOS, and watchOS targets to Circuit's runtime and retained artifacts.
- New: Add macOS targets to Circuit's UI, backstack, overlay, test, circuitx (except gesture nav), and foundation artifacts.
- Slightly optimize
pausableState
#1455. - Change:
OverlayHost.showFullScreenOverlay
now returns thePopResult?
that was popped by the screen. - Change: Remove
backstack
dependency fromcircuit-runtime
. It was unnecessary and also accidentally imposed Compose UI on the runtime/presenter artifacts. - Change: Make
Overlay
afun interface
. - Breaking Change: Change
OverlayEffect
to use a newOverlayScope
API that implements bothCoroutineScope
andOverlayHost
, making both contexts available in the lambda. - Update KSP to
2.0.0-1.0.24
. - Update androidx.activity to
1.9.1
. - Update androidx.lifecycle to
2.8.4
. - Update androidx.annotation to
1.8.1
. - Update KotlinPoet
1.18.1
. - Update Compose Multiplatform to
1.6.11
.
Special thanks to @aschulz90 and @chrisbanes for contributing to this release!
What's Changed
- Optimize withCompositionLocalProvider by @ZacSweers in #1455
- Add a test to verify state restoration when using resetRoot by @chrisbanes in #1454
- Move more star sample API code into commonMain by @ZacSweers in #1456
- Update dependency com.slack.eithernet:eithernet to v1.9.0 by @slack-oss-bot in #1459
- Update kct to v0.5.0 by @slack-oss-bot in #1457
- Update ksp to v2.0.0-1.0.22 by @slack-oss-bot in #1458
- Update to Eithernet 2 + commonize more APIs by @ZacSweers in #1460
- Return PopResult from OverlayHost.showFullScreenOverlay() by @aschulz90 in #1447
- Update dependency tornado to v6.4.1 [SECURITY] by @slack-oss-bot in #1463
- Update dependency co.touchlab.skie to v0.8.2 by @slack-oss-bot in #1464
- Update dependency com.facebook:ktfmt to v0.50 by @slack-oss-bot in #1466
- Update dependency mkdocs-material to v9.5.26 by @slack-oss-bot in #1465
- Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json-okio to v1.7.0 by @slack-oss-bot in #1467
- Refresh STAR sample theming by @ZacSweers in #1461
- Update dependency dev.zacsweers.autoservice:auto-service-ksp to v1.2.0 by @slack-oss-bot in #1469
- Commonize remaining star networking operations by @ZacSweers in #1468
- Update agp to v8.4.2 by @slack-oss-bot in #1472
- Update androidx.lifecycle to v2.8.2 by @slack-oss-bot in #1473
- Update dependency androidx.compose:compose-bom to v2024.06.00 by @slack-oss-bot in #1479
- Update compose.material to v1.6.8 by @slack-oss-bot in #1474
- Update compose.runtime to v1.6.8 by @slack-oss-bot in #1475
- Update dependency androidx.compose.animation:animation to v1.6.8 by @slack-oss-bot in #1477
- Update compose.ui to v1.6.8 by @slack-oss-bot in #1476
- Update dependency com.facebook:ktfmt to v0.51 by @slack-oss-bot in #1481
- Update dependency mkdocs-material to v9.5.27 by @slack-oss-bot in #1482
- Update dependency org.jline:jline to v3.26.2 by @slack-oss-bot in #1483
- Update dependency fastlane to v2.221.0 by @slack-oss-bot in #1484
- Update dependency fastlane to v2.221.1 by @slack-oss-bot in #1486
- Update ktor monorepo to v2.3.12 by @slack-oss-bot in #1487
- Update dependency com.vanniktech.maven.publish to v0.29.0 by @slack-oss-bot in #1488
- Update dependency livereload to v2.7.0 by @slack-oss-bot in #1489
- Update dependency androidx.test.ext:junit to v1.2.0 by @slack-oss-bot in #1491
- Update agp to v8.5.0 by @slack-oss-bot in #1480
- Update dependency androidx.test.espresso:espresso-core to v3.6.0 by @slack-oss-bot in #1490
- Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json-okio to v1.7.1 by @slack-oss-bot in #1493
- Adopt newer releases of androidx.benchmark by @ZacSweers in #1495
- Update dependency androidx.test.ext:junit to v1.2.1 by @slack-oss-bot in #1498
- Update dependency androidx.test.espresso:espresso-core to v3.6.1 by @slack-oss-bot in #1497
- Update dependency com.google.truth:truth to v1.4.3 by @slack-oss-bot in #1500
- Update kct to v0.5.1 by @slack-oss-bot in #1501
- Update dependency org.jetbrains.kotlinx:atomicfu to v0.25.0 by @slack-oss-bot in #1502
- Update androidx.lifecycle to v2.8.3 by @slack-oss-bot in #1504
- Update dependency mkdocs-material to v9.5.28 by @slack-oss-bot in #1505
- Update roborazzi to v1.21.0 by @slack-oss-bot in #1506
- Update kotlinpoet to v1.18.0 by @slack-oss-bot in #1507
- Update dependency org.robolectric:robolectric to v4.13 by @slack-oss-bot in #1508
- Update dependency org.jsoup:jsoup to v1.18.1 by @slack-oss-bot in #1510
- Update benchmark to v1.3.0-beta02 by @slack-oss-bot in #1511
- Update agp to v8.5.1 by @slack-oss-bot in #1512
- Update ksp to v2.0.0-1.0.23 by @slack-oss-bot in #1513
- Update dependency gradle to v8.9 by @slack-oss-bot in #1514
- Update dependency mkdocs-material to v9.5.29 by @slack-oss-bot in #1518
- Update roborazzi to v1.22.2 by @slack-oss-bot in #1517
- Update kotlinpoet to v1.18.1 by @slack-oss-bot in #1520
- Update dependency com.google.truth:truth to v1.4.4 by @slack-oss-bot in #1515
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.12.0 by @slack-oss-bot in #1516
- Update coil3 to v3.0.0-alpha08 by @slack-oss-bot in #1496
- Update coil to v2.7.0 by @slack-oss-bot in #1524
- Update roborazzi to v1.23.0 by @slack-oss-bot in #1526
- Update dependency org.jline:jline to v3.26.3 by @slack-oss-bot in #1523
- Update dependency co.touchlab.skie to v0.8.3 by @slack-oss-bot in #1525
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.12.1 by @slack-oss-bot in #1528
- Remove backstack dependency from circuit-runtime by @ZacSweers in #1527
- Update androidx.lifecycle to v2.8.4 by @slack-oss-bot in #1536
- Update dependency androidx.activity:activity-compose to v1.9.1 by @slack-oss-bot in #1537
- Update dependency androidx.annotation:annotation to v1.8.1 by @slack-oss-bot in #1538
- Update anvil to v2.5.0-beta10 by @slack-oss-bot in #1531
- Update coil3 to v3.0.0-alpha09 by @slack-oss-bot in #1534
- Update dependency mkdocs-material to v9.5.30 by @slack-oss-bot in #1532
- Update androidx.activity to v1.9.1 by @slack-oss-bot in #1535
- Update roborazzi to v1.24.0 by @slack-oss-bot in #1541
- Update dependency fastlane to v2.222.0 by @slack-oss-bot in #1539
- Update dependency pymdown-extensions to v10.9 by @slack-oss-bot in #1540
- Update roborazzi to v1.25.0 by @slack-oss-bot in #1545
- Make Overlay a fun interface by @ZacSweers in #1543
- Add more targets! by @ZacSweers in #1544
- Simplify OverlayEffect with OverlayScope by @ZacSweers in #1542
- Update anvil to v2.5.0-beta11 by @slack-oss-bot in #1547
- Update ksp to v2.0.0-1.0.24 by @slack-oss-bot in #1548
Full Changelog: https://github.com/slackhq/circuit/compare/0.22...
0.22.2
- Fix: Fix
pausableState
recomposition loops by avoiding backward snapshot writes. - New: Add
Circuit.presentWithLifecycle
flag to enable/disable automaticpausableState
use. This is enabled by default. - Update Compose Multiplatform to
1.6.11
. - Update androidx.lifecycle to
2.8.1
. - Update androidx.appcompat to
1.7.0
.
Special thanks to @chrisbanes, @adamp, and Chuck Jazdzewski for contributing to this release and helping us find a runtime fix for the pausableState
issue!
What's Changed
- Update dependency dev.zacsweers.moshix to v0.27.1 by @slack-oss-bot in #1440
- Update dependency com.jakewharton.mosaic to v0.12.0 by @slack-oss-bot in #1441
- Update roborazzi to v1.20.0 by @slack-oss-bot in #1433
- Update dependency androidx.appcompat:appcompat to v1.7.0 by @slack-oss-bot in #1443
- Update androidx.lifecycle to v2.8.1 by @slack-oss-bot in #1442
- Update dependency gradle to v8.8 by @slack-oss-bot in #1446
- Add Circuit.presentWithLifecycle config by @ZacSweers in #1450
- Update dependency co.touchlab.skie to v0.8.1 by @slack-oss-bot in #1444
- Update compose.jb to v1.6.11 by @slack-oss-bot in #1452
- Add withCompositionLocalProvider to avoid backward writes by @chrisbanes in #1451
Full Changelog: 0.22.1...0.22.2
0.21.2
- Fix: Fix
pausableState
recomposition loops by avoiding backward snapshot writes. - New: Add
Circuit.presentWithLifecycle
flag to enable/disable automaticpausableState
use. This is enabled by default.
Full Changelog: 0.21.1...0.21.2
0.22.1
- Fix: Fix
rememberRetained
implicitly requiringLocalContext
where it used to no-op
What's Changed
- Bump rexml from 3.2.6 to 3.2.8 by @dependabot in #1435
- Update dependency app.cash.molecule:molecule-runtime to v2 by @slack-oss-bot in #1437
- Short circuit
rememberRetained
if theLocalRetainedStateRegistry
isn't set by @stagg in #1438
Full Changelog: 0.22.0...0.22.1
0.22.0
- Update to Kotlin
2.0.0
. - Update to KSP
2.0.0-1.0.21
. - Update Compose Multiplatform to
1.6.10
. - Switch to the compose compiler shipped with Kotlin.
This release is otherwise identical to 0.21.0
, just updated to Kotlin 2.0.
What's Changed
- Update dependency mkdocs-material to v9.5.25 by @slack-oss-bot in #1432
- Update to K2 by @ZacSweers in #1006
Full Changelog: 0.21.0...0.22.0