Releases: slackhq/circuit
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
0.21.1
0.21.0
- New: Add WASM targets.
- New: Add
FakeNavigator
functions to check for the lack of pop/resetRoot events. - New: Add
FakeNavigator
constructor param to add additional screens to the backstack. - New: Add support for static UIs. In some cases, a UI may not need a presenter to compute or manage its state. Examples of this include UIs that are stateless or can derive their state from a single static input or an input [Screen]'s properties. In these cases, make your screen implement the
StaticScreen
interface. When aStaticScreen
is used, Circuit will internally allow the UI to run on its own and won't connect it to a presenter if no presenter is provided. - New: Add
RecordLifecycle
andLocalRecordLifecycle
composition local, allowing UIs and presenters to observe when they are 'active'. Currently, a record is considered 'active' when it is the top record on the back stack. - New: Add a
rememberRetainedSaveable
variant that participates in bothRetainedStateRegistry
andSaveableStateRegistry
restoration, allowing layered state persistence.- The logic is the following upon
rememberRetainedSaveable
entering composition:- consume from both
RetainedStateRegistry
andSaveableStateRegistry
, if available - if the retained value is available, use that
- otherwise, if the saveable restored value is available, use that
- otherwise, re-initialize the value
- consume from both
- There is also an overload of
rememberRetained
that explicitly requires aSaver
parameter.
- The logic is the following upon
- Behaviour Change: Presenters are now 'paused' when inactive and replay their last emitted
CircuitUiState
when they are not active. Presenters can opt-out of this behavior by implementingNonPausablePresenter
. - Behaviour Change:
NavigatorImpl.goTo
no longer navigates if theScreen
is equal toNavigator.peek()
. - Behaviour Change:
Presenter.present
is now annotated with@ComposableTarget("presenter")
. This helps prevent use of Compose UI in the presentation logic as the compiler will emit a warning if you do. Note this does not appear in the IDE, so it's recommended to useallWarningsAsErrors
to fail the build on this event. - Behaviour Change: Guard against
Navigator.goTo()
calls to the same current screen. - Change:
Navigator.goTo
now returns a Bool indicating navigation success. - Change: Move iOS
GestureNavigationDecoration
impl tocommonMain
and rename toCupertinoGestureNavigationDecoration
. - Change: Target jvmTarget
1.8
in core libraries. - Fix: Fix saveable state being restored when using reset root navigation events.
- Deprecation:
FakeNavigator.assertIsEmpty
andexpectNoEvents
(use the specific event type methods instead) - Mark
Presenter.Factory
as@Stable
. - Mark
Ui.Factory
as@Stable
. - Mark
CircuitContext
as@Stable
. - Mark
EventListener
as@Stable
. - Mark
EventListener.Factory
as@Stable
. - [samples] Improve interop sample significantly.
- Update Kotlin to
1.9.24
. - Update KSP to
1.9.24-2.0.20
. - Update compose-compiler to
1.5.14
. - Update KotlinPoet to
1.17.0
. - Update androidx.lifecycle to
2.8.0
. - Update Molecule to
1.4.3
. - Update androidx.annotation to
1.8.0
. - Update kotlinx.coroutines to
1.8.1
. - Update Compose Multiplatform to
1.6.2
. - Update Compose UI to
1.6.7
. - Update Compose Runtime to
1.6.7
. - Update Compose Animation to
1.6.7
. - Update Compose Material to
1.6.7
. - Update androidx.core to
1.13.1
. - Update androidx.activity to
1.9.0
. - Update dagger to
2.51.1
. - Update uuid to
0.8.4
.
Special thanks to @chrisbanes, @alexvanyo, @eboudrant, @edenman, and @JustinBis for contributing to this release!
What's Changed
- Update retrofit to v2.10.0 by @slack-oss-bot in #1293
- Update agp to v8.3.1 by @slack-oss-bot in #1292
- Update dependency com.benasher44:uuid to v0.8.4 by @slack-oss-bot in #1294
- Update dependency androidx.compose:compose-bom to v2024.03.00 by @slack-oss-bot in #1302
- Update dependency androidx.compose.foundation:foundation to v1.6.4 by @slack-oss-bot in #1301
- Update compose.ui to v1.6.4 by @slack-oss-bot in #1298
- Update dependency androidx.compose.animation:animation to v1.6.4 by @slack-oss-bot in #1299
- Update compose.runtime to v1.6.4 by @slack-oss-bot in #1297
- Update compose.material to v1.6.4 by @slack-oss-bot in #1296
- Update dependency mkdocs-material to v9.5.15 by @slack-oss-bot in #1303
- Update dependency gradle to v8.7 by @slack-oss-bot in #1304
- Update dependency androidx.compose.compiler:compiler to v1.5.11 by @slack-oss-bot in #1300
- Add WASM support by @ZacSweers in #1245
- Update dependency io.gitlab.arturbosch.detekt to v1.23.6 by @slack-oss-bot in #1306
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.9.0 by @slack-oss-bot in #1308
- Revamp interop sample by @ZacSweers in #1193
- Update kct to v0.4.1 by @slack-oss-bot in #1307
- Update dependency com.github.ajalt.clikt:clikt to v4.3.0 by @slack-oss-bot in #1310
- Update molecule to v1.4.2 by @slack-oss-bot in #1309
- Update retrofit to v2.11.0 by @slack-oss-bot in #1311
- Update dependency org.robolectric:robolectric to v4.12 by @slack-oss-bot in #1314
- Update dagger to v2.51.1 by @slack-oss-bot in #1313
- Update dependency mkdocs-material to v9.5.17 by @slack-oss-bot in #1315
- Update dependency org.robolectric:robolectric to v4.12.1 by @slack-oss-bot in #1316
- Update compose.material to v1.6.5 by @slack-oss-bot in #1318
- Update compose.runtime to v1.6.5 by @slack-oss-bot in #1319
- Update compose.ui to v1.6.5 by @slack-oss-bot in #1320
- Update dependency androidx.compose.foundation:foundation to v1.6.5 by @slack-oss-bot in #1322
- Update dependency androidx.compose.animation:animation to v1.6.5 by @slack-oss-bot in #1321
- Update dependency androidx.datastore:datastore-preferences to v1.1.0-rc01 by @slack-oss-bot in #1323
- Update dependency androidx.compose:compose-bom to v2024.04.00 by @slack-oss-bot in #1324
- Update dependency fastlane to v2.220.0 by @slack-oss-bot in #1325
- Remember keys in rememberSaveableBackStack by @JustinBis in #1326
- Update ksp to v1.9.23-1.0.20 by @slack-oss-bot in #1327
- Update actionsdesk/lfs-warning action to v3.3 by @slack-oss-bot in #1328
- Update sqldelight to v2.0.2 by @slack-oss-bot in #1329
- Update ktor to v2.3.10 by @slack-oss-bot in #1332
- Update agp to v8.3.2 by @slack-oss-bot in #1333
- Update compose.jb to v1.6.2 by @slack-oss-bot in #1335
- Update roborazzi to v1.12.0 by @slack-oss-bot in #1336
- Update gradle/wrapper-validation-action action to v3 by @slack-oss-bot in #1337
- Navigator - Guard against a goTo to the current screen by @stagg in #1331
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.10.0 by @slack-oss-bot in #1339
- Update dependency co.touchlab.skie to v0.6.3 by @slack-oss-bot in #1338
- Update dependency mkdocs-material to v9.5.18 by @slack-oss-bot in #1340
- Update dependency co.touchlab.skie to v0.6.4 by @slack-oss-bot in #1341
- Update benchmark to v1.2.4 by @slack-oss-bot in #1343
- Update compose.material to v1.6.6 by @slack-oss-bot in #1344
- Update compose.runtime to v1.6.6 by @slack-oss-bot in #1345
- Update dependency androidx.compose.animation:animation to v1.6.6 by @slack-oss-bot in #1347
- Update dependency androidx.compose.compiler:compiler to v1.5.12 by @slack-oss-bot in #1348
- Update dependency androidx.compose.foundation:foundation to v1.6.6 by @slack-oss-bot in #1349
- Update dependency androidx.compose:compose-bom to v2024.04.01 by @slack-oss-bot in #1350
- Update dependency androidx.datastore:datastore-preferences to v1.1.0 by @slack-oss-bot in #1351
- Update dependency com.willowtreeapps.assertk:assertk to v0.28.1 by @slack-oss-bot in https://github.com/slackhq/circuit/pu...