Releases: slackhq/circuit
Release list
0.11.0
- [runtime] Fix race condition in
EventListener.start()callback. - [code gen] Update to Dagger 2.47.
- [docs] No longer recommend or require extracting intermediate event sink variables. This is no longer an issue 🎉.
- Update Molecule to
1.0.0.
Thanks to @bryanstern for contributing to this release!
What's Changed
- Update roborazzi to v1.4.0-alpha-4 by @slack-oss-bot in #728
- Update dependency dev.zacsweers.autoservice:auto-service-ksp to v1.1.0 by @slack-oss-bot in #729
- Update dependency gradle to v8.2.1 by @slack-oss-bot in #730
- Update dependency mkdocs-macros-plugin to v1.0.2 by @slack-oss-bot in #731
- Update dependency pymdown-extensions to v10.1 by @slack-oss-bot in #736
- Update dependency click to v8.1.5 by @slack-oss-bot in #734
- Update dagger to v2.47 by @slack-oss-bot in #735
- Remove intermediate event sinks by @ZacSweers in #733
- Update dependency com.github.ajalt.clikt:clikt to v4.1.0 by @slack-oss-bot in #739
- Update roborazzi to v1.4.0-alpha-5 by @slack-oss-bot in #738
- Update dependency PyYAML to v6.0.1 by @slack-oss-bot in #741
- Update dependency app.cash.paparazzi to v1.3.1 by @slack-oss-bot in #742
- Update benchmark to v1.2.0-beta01 by @slack-oss-bot in #745
- Update dependency click to v8.1.6 by @slack-oss-bot in #746
- Update dependency mkdocs-material to v9.1.19 by @slack-oss-bot in #747
- Fix EventListener.start callback order by @bryanstern in #740
- Update dependency app.cash.molecule:molecule-runtime to v1 by @slack-oss-bot in #750
Full Changelog: 0.10.1...0.11.0
0.10.1
- [runtime] Make
CircuitContentoverload withNavigatorpublic. - [runtime] Remember
PresenterandUiinCircuitContent. - [runtime] Fix kdoc typo in
RememberRetained.
Special thanks to @chrisbanes and @bryanstern for contributing to this release!
What's Changed
- Update dependency com.jakewharton.mosaic to v0.7.1 by @slack-oss-bot in #709
- Update dependency gradle to v8.2 by @slack-oss-bot in #710
- Update dependency com.vanniktech.maven.publish to v0.25.3 by @slack-oss-bot in #711
- Enable lint on test sources too by @ZacSweers in #708
- Update dependency mkdocs-material to v9.1.18 by @slack-oss-bot in #714
- Update dependency com.github.ajalt.clikt:clikt to v4 by @slack-oss-bot in #716
- Update dependency click to v8.1.4 by @slack-oss-bot in #718
- Fix kdoc typo in RememberRetained.kt by @bryanstern in #721
- Update .gitignore by @ZacSweers in #723
- Update dependency com.squareup.okio:okio to v3.4.0 by @slack-oss-bot in #724
- Remember Presenter and UI in CircuitContent by @chrisbanes in #726
- Update roborazzi to v1.4.0-alpha-3 by @slack-oss-bot in #725
- Make CircuitContent overload with Navigator public by @chrisbanes in #727
New Contributors
- @chrisbanes made their first contribution in #726
Full Changelog: 0.10.0...0.10.1
0.10.0
- [runtime] Fix wrong compose-compiler used in iOS targets. Now we're using the compose-multiplatform fork.
- [runtime] Allow creation of multiple
RetainedStateRegistryinstances. - [docs] Add clarifying links to Events docs.
- [samples] Add new image detail view in STAR sample.
- Update Molecule to
0.11.0. - Update AndroidX compose-compiler to
1.4.8. - Update compose-multiplatform to
1.4.1. - Update to coroutines
1.7.2. - Update to Turbine
1.0.0. - Update to Kotlin
1.8.22.
Special thanks to @bryanstern, @saket, and @chrisbanes for contributing to this release!
What's Changed
- Update dependency MarkupSafe to v2.1.3 by @slack-oss-bot in #664
- Control all config changes in sample android apps by @ZacSweers in #666
- Update dependency org.jetbrains.dokka to v1.8.20 by @slack-oss-bot in #668
- Couple small star sample fixes by @ZacSweers in #670
- Update dependency androidx.compose:compose-bom to v2023.06.00 by @slack-oss-bot in #674
- Update benchmark to v1.2.0-alpha15 by @slack-oss-bot in #672
- Update ksp to v1.8.22-1.0.11 by @slack-oss-bot in #675
- Update kotlin monorepo to v1.8.22 by @slack-oss-bot in #673
- Add clarifying links to States and Events documentation by @bryanstern in #677
- Allow creation of multiple RetainedStateRegistry instances by @saket in #679
- Update dependency com.google.auto.service:auto-service-annotations to v1.1.1 by @slack-oss-bot in #680
- Update to Compile SDK 34 by @ZacSweers in #676
- Update dependency mkdocs-material to v9.1.16 by @slack-oss-bot in #683
- Update dependency com.google.truth:truth to v1.1.5 by @slack-oss-bot in #684
- Update dependency com.github.ajalt.clikt:clikt to v3.5.4 by @slack-oss-bot in #685
- Update dependency app.cash.turbine:turbine to v1 by @slack-oss-bot in #686
- Update dependency androidx.compose:compose-bom to v2023.06.01 by @slack-oss-bot in #689
- Update compose.material3 to v1.1.1 by @slack-oss-bot in #688
- Update dependency mkdocs-material to v9.1.17 by @slack-oss-bot in #690
- Update benchmark to v1.2.0-alpha16 by @slack-oss-bot in #687
- Integrate image viewer in Star sample by @ZacSweers in #669
- Update dependency androidx.activity:activity-ktx to v1.8.0-alpha06 by @slack-oss-bot in #691
- Update kotlinpoet to v1.14.2 by @slack-oss-bot in #656
- Update compose.jb to v1.4.1 by @slack-oss-bot in #692
- Update dependency app.cash.molecule:molecule-runtime to v0.10.0 by @slack-oss-bot in #693
- Update sqldelight to v2.0.0-rc02 by @slack-oss-bot in #697
- Publish docs with releases by @ZacSweers in #694
- Couple small sample fixes by @ZacSweers in #699
- Update leakcanary to v2.12 by @slack-oss-bot in #703
- Update kotlinx.coroutines to v1.7.2 by @slack-oss-bot in #702
- Update dependency com.jakewharton.mosaic to v0.7.0 by @slack-oss-bot in #701
- Update dependency androidx.compose.compiler:compiler to v1.4.8 by @slack-oss-bot in #700
- Update dependency app.cash.molecule:molecule-runtime to v0.11.0 by @slack-oss-bot in #705
- Don't use the compose compiler for multiplatform by @ZacSweers in #707
New Contributors
- @bryanstern made their first contribution in #677
- @saket made their first contribution in #679
- @chrisbanes made their first contribution in #707
Full Changelog: 0.9.1...0.10.0
0.9.1
0.9.0
Preliminary support for iOS targets
Following the announcement of Compose for iOS alpha, this release adds ios() and iosSimulatorArm64() targets for the Circuit core artifacts. Note that this support doesn't come with any extra APIs yet for iOS, just basic target support only. We're not super sure what direction we want to take with iOS, but encourage others to try it out and let us know what patterns you like. We have updated the Counter sample to include an iOS app target as well, using Circuit for the presentation layer only and SwiftUI for the UI.
Note that circuit-codegen and circuit-codegen-annotations don't support these yet, as Anvil and Dagger only support JVM targets.
More details can be found in the PR: #583
Misc
- Use new baseline profile plugin for generating baseline profiles.
- Misc sample app fixes and updates.
- Add window size class example to STAR sample.
- Switch to Roborazzi for screenshot test samples.
- Small documentation updates.
- Add bi-directional Flow/Circuit interop to interop sample.
Note that we unintentionally used an experimental animation API for NavigatorDefaults.DefaultDecotration, which may cause R8 issues if you use a newer, experimental version of Compose animation. To avoid issues, copy the animation code and use your own copy compiled against the newest animation APIs. We'll fix this after Compose 1.5.0 is released.
Dependency updates
androidx.activity -> 1.7.2
compose -> 1.4.3
compose-compiler -> 1.4.7
coroutines -> 1.7.1
kotlin -> 1.8.21
kotlinpoet -> 1.13.2
turbine -> 0.13.0
What's Changed
- Update dependency mkdocs-material to v9.1.6 by @slack-oss-bot in #546
- Update dependency pymdown-extensions to v9.11 by @slack-oss-bot in #547
- Update dependency androidx.datastore:datastore-preferences to 1.1.0-alpha04 by @slack-oss-bot in #545
- Update kotlinpoet to v1.13.0 by @slack-oss-bot in #542
- Update dependency Pygments to v2.15.0 by @slack-oss-bot in #552
- Integrate SqlDelight for Star sample repository and make it a more realistic and robust impl by @ZacSweers in #549
- Extract maven snapshot URLs to avoid renovate indexing them by @ZacSweers in #551
- Update dependency androidx.compose.material3:material3 to v1.1.0-beta02 by @slack-oss-bot in #558
- Update dependency androidx.benchmark:benchmark-macro-junit4 to v1.2.0-alpha13 by @slack-oss-bot in #556
- Update okhttp to v5.0.0-alpha.11 by @slack-oss-bot in #561
- Update dependency gradle to v8.1 + AGP 8 by @slack-oss-bot in #563
- Update dependency com.vanniktech.maven.publish to v0.25.2 by @slack-oss-bot in #566
- Update dependency Pygments to v2.15.1 by @slack-oss-bot in #570
- Update dependency tornado to v6.3 by @slack-oss-bot in #571
- Update snapshots and remove stale snapshots by @ZacSweers in #560
- Add bi-directional flow/circuit interop to samples by @ZacSweers in #555
- Update androidx-activity to v1.7.1 by @slack-oss-bot in #572
- Update compose-material to v1.4.2 by @slack-oss-bot in #573
- Update dependency androidx.compose:compose-bom to v2023.04.01 by @slack-oss-bot in #580
- Update compose-runtime to v1.4.2 by @slack-oss-bot in #574
- Update dependency androidx.compose.animation:animation to v1.4.2 by @slack-oss-bot in #576
- Update dependency androidx.test.uiautomator:uiautomator to v2.3.0-alpha03 by @slack-oss-bot in #581
- Update compose-ui to v1.4.2 by @slack-oss-bot in #575
- Update dependency androidx.compose.foundation:foundation to v1.4.2 by @slack-oss-bot in #578
- Update dependency androidx.compose.material3:material3 to v1.1.0-rc01 by @slack-oss-bot in #579
- Update to Kotlin 1.8.20 + switch to Roborazzi by @ZacSweers in #454
- Update dependency gradle to v8.1.1 by @slack-oss-bot in #584
- Update dependency tornado to v6.3.1 by @slack-oss-bot in #585
- Update dependency mkdocs-material to v9.1.7 by @slack-oss-bot in #586
- Update roborazzi to v1.1.0-rc-1 by @slack-oss-bot in #587
- Update dependency com.autonomousapps.dependency-analysis to v1.20.0 by @slack-oss-bot in #589
- Update dependency termcolor to v2.3.0 by @slack-oss-bot in #590
- Update dependency mkdocs-material to v9.1.8 by @slack-oss-bot in #591
- Update kotlin monorepo to v1.8.21 by @slack-oss-bot in #592
- Enable auto-merge with merge queue by @ZacSweers in #588
- Simplify circuit/screen wording by @ZacSweers in #582
- Update ksp to v1.8.21-1.0.11 by @slack-oss-bot in #593
- Minor documentation updates by @kierse in #594
- Update kotlinpoet to v1.13.1 by @slack-oss-bot in #595
- Update dagger to v2.46 by @slack-oss-bot in #596
- Update dependency org.jsoup:jsoup to v1.16.1 by @slack-oss-bot in #598
- Update dependency com.facebook:ktfmt to v0.44 by @slack-oss-bot in #597
- Update agp to v8.0.1 by @slack-oss-bot in #599
- Update roborazzi to v1.1.0 by @slack-oss-bot in #600
- Update dependency mkdocs to v1.4.3 by @slack-oss-bot in #601
- Update dependency mkdocs-material to v9.1.9 by @slack-oss-bot in #602
- Update dependency org.robolectric:robolectric to v4.10.1 by @slack-oss-bot in #603
- Update dependency androidx.profileinstaller:profileinstaller to v1.3.1 by @slack-oss-bot in #611
- Update dependency androidx.compose.animation:animation to v1.4.3 by @slack-oss-bot in #608
- Update dependency androidx.compose.foundation:foundation to v1.4.3 by @slack-oss-bot in #610
- Update dependency androidx.benchmark:benchmark-macro-junit4 to v1.2.0-alpha14 by @slack-oss-bot in #607
- Update compose-material to v1.4.3 by @slack-oss-bot in #604
- Update compose-runtime to v1.4.3 by @slack-oss-bot in #605
- Update dependency org.robolectric:robolectric to v4.10.2 by @slack-oss-bot in #612
- Update kotlinpoet to v1.13.2 by @slack-oss-bot in #614
- Update dependency androidx.compose:compose-bom to v2023.05.00 by @slack-oss-bot in #613
- Update dependency androidx.compose.compiler:compiler to v1.4.7 by @slack-oss-bot in #609
- Update compose-ui to v1.4.3 by @slack-oss-bot in #606
- Initial iOS support by @ZacSweers in #583
- Fix Animal description can be null by @ZacSweers in #616
- Fix PetDetailTest by @ZacSweers in #618
- Use M3 WindowSizeClass for Star sample size handling by @ZacSweers in #617
- Update dependency mkdocs-material to v9.1.11 by @slack-oss-bot in #619
- Update dependency androidx.core:core-ktx to v1.10.1 by @slack-oss-bot in #622
- Update dependency androidx.compose:compose-bom to v2023.05.01 by @slack-oss-bot in #621
- Update compose-material3 to v1.1.0 by @slack-oss-bot in #620
- Update kotlinx-coroutines to v1.7.1 by @slack-oss-bot in #615
- Update dependency app.cash.turbine:turbine to v0.13.0 by @slack-oss-bot in #624
- Update dependency mkdocs-material to v9.1.12 by @slack-oss-bot in #627
- Update dagger to v2.46.1 by @slack-oss-bot in #626
- Update moshi to v1.15.0 by @slack-oss-bot in #628
- Small STAR sample preview fixes by @ZacSweers in #625
- Update dependency pymdown-extensions to v10 by @slack-oss-bot in #630
- Update dependency tornado to v6.3.2 by @slack-oss-bot in #629
- Update dependency ...
0.8.0
[Core] Split up core artifacts.
circuit-runtime: common runtime components likeScreen,Navigator, etc.circuit-runtime-presenter: thePresenterAPI, depends oncircuit-runtime.circuit-runtime-ui: theUiAPI, depends oncircuit-runtime.circuit-foundation: the circuit foundational APIs likeCircuitConfig,CircuitContent, etc. Depends on the first three.
The goal in this is to allow more granular dependencies and easier building against subsets of the API. For example, this would allow a presenter implementation to easily live in a standalone module that doesn't depend on any UI dependencies. Vice versa for UI implementations.
Where we think this could really shine is in multiplatform projects where Circuit's UI APIs may be more or less abstracted away in service of using native UI, like in iOS.
circuit-runtime artifact
| Before | After |
|---|---|
| com.slack.circuit.CircuitContext | com.slack.circuit.runtime.CircuitContext |
| com.slack.circuit.CircuitUiState | com.slack.circuit.runtime.CircuitUiState |
| com.slack.circuit.CircuitUiEvent | com.slack.circuit.runtime.CircuitUiEvent |
| com.slack.circuit.Navigator | com.slack.circuit.runtime.Navigator |
| com.slack.circuit.Screen | com.slack.circuit.runtime.Screen |
circuit-runtime-presenter artifact
| Before | After |
|---|---|
| com.slack.circuit.Presenter | com.slack.circuit.runtime.presenter.Presenter |
circuit-runtime-ui artifact
| Before | After |
|---|---|
| com.slack.circuit.Ui | com.slack.circuit.runtime.ui.Ui |
circuit-foundation artifact
| Before | After |
|---|---|
| com.slack.circuit.CircuitCompositionLocals | com.slack.circuit.foundation.CircuitCompositionLocals |
| com.slack.circuit.CircuitConfig | com.slack.circuit.foundation.CircuitConfig |
| com.slack.circuit.CircuitContent | com.slack.circuit.foundation.CircuitContent |
| com.slack.circuit.EventListener | com.slack.circuit.foundation.EventListener |
| com.slack.circuit.NavEvent | com.slack.circuit.foundation.NavEvent |
| com.slack.circuit.onNavEvent | com.slack.circuit.foundation.onNavEvent |
| com.slack.circuit.NavigableCircuitContent | com.slack.circuit.foundation.NavigableCircuitContent |
| com.slack.circuit.NavigatorDefaults | com.slack.circuit.foundation.NavigatorDefaults |
| com.slack.circuit.rememberCircuitNavigator | com.slack.circuit.foundation.rememberCircuitNavigator |
| com.slack.circuit.push | com.slack.circuit.foundation.push |
| com.slack.circuit.screen | com.slack.circuit.foundation.screen |
More Highlights
- [Core] Remove Android-specific
NavigableCircuitContentand just use common one. Back handling still runs throughBackHandler, but is now configured inrememberCircuitNavigator. - [Core] Add
defaultNavDecorationtoCircuitConfigto allow for customizing the defaultNavDecorationused inNavigableCircuitContent. - [Core] Mark
CircuitUiStateas@Stableinstead of@Immutable. - [Code gen] Capitalize generated class names when source is a presenter function.
- [Sample] New
:samples:tacosorder builder sample to demonstrate complex state management. - [Sample]
NavigableCircuitContentexample in the desktop counter. - [Dependencies] Update compose to
1.4.1. - [Dependencies] Update compose-compiler to
1.4.4. - [Dependencies] Update androidx.activity to
1.7.0. - [Dependencies] Update molecule to
0.7.1.
What's Changed
- Update dependency com.diffplug.spotless to v6.15.0 by @slack-oss-bot in #452
- Update dependency androidx.browser:browser to v1.5.0 by @slack-oss-bot in #451
- Update dependency com.android.tools:desugar_jdk_libs to v2 by @slack-oss-bot in #453
- Update dependency Markdown to v3.4.1 by @slack-oss-bot in #440
- Update dependency gradle to v8 by @slack-oss-bot in #455
- Change state and event marker interfaces to
@Stableby @ZacSweers in #459 - Update dependency mkdocs-material to v9.0.13 by @slack-oss-bot in #458
- Update dependency org.jsoup:jsoup to v1.15.4 by @slack-oss-bot in #457
- Update dependency gradle to v8.0.1 by @slack-oss-bot in #456
- Update dependency com.github.ben-manes.versions to v0.46.0 by @slack-oss-bot in #461
- Update dependency app.cash.molecule:molecule-runtime to v0.7.1 by @slack-oss-bot in #460
- Update dependency androidx.compose.compiler:compiler to v1.4.3 by @slack-oss-bot in #463
- Update dependency mkdocs-material to v9.0.14 by @slack-oss-bot in #464
- Update dependency com.jakewharton.mosaic to v0.4.0 by @slack-oss-bot in #462
- Add StableCoroutineScope by @ZacSweers in #466
- Make events immutable again by @ZacSweers in #465
- Sorting project includes by @kierse in #467
- Update dependency mkdocs-material to v9.0.15 by @slack-oss-bot in #469
- Update dependency com.github.ajalt.clikt:clikt to v3.5.2 by @slack-oss-bot in #468
- Update where we setup BackHandler for Android by @kierse in #470
- Updated processor to generate classes with uppercase first letter by @kierse in #471
- Update dependency com.diffplug.spotless to v6.16.0 by @slack-oss-bot in #474
- Update agp to v7.4.2 by @slack-oss-bot in #473
- Update dependency mkdocs-material to v9.1.0 by @slack-oss-bot in #479
- Update plugin com.gradle.enterprise to v3.12.4 by @slack-oss-bot in #478
- Update dependency pymdown-extensions to v9.10 by @slack-oss-bot in #483
- Update dependency mkdocs-material to v9.1.1 by @slack-oss-bot in #482
- Update dependency org.jline:jline to v3.23.0 by @slack-oss-bot in #485
- Update dependency org.jetbrains.dokka to v1.8.10 by @slack-oss-bot in #481
- Update dependency app.cash.molecule:molecule-runtime to v0.8.0 by @slack-oss-bot in #488
- Update compose-jb to v1.3.1 by @slack-oss-bot in #486
- Update dependency mkdocs-material to v9.1.2 by @slack-oss-bot in #487
- Update dependency com.jakewharton.mosaic to v0.5.0 by @slack-oss-bot in #489
- Update androidx-lifecycle to v2.6.0 by @slack-oss-bot in #484
- Update plugin dependencyGuard to v0.4.2 by @slack-oss-bot in #493
- Update dependency androidx.profileinstaller:profileinstaller to v1.3.0-rc01 by @slack-oss-bot in #492
- Clean up HomeScreen nav example by @ZacSweers in #475
- Split core artifacts by @ZacSweers in #490
- Update dependency com.diffplug.spotless to v6.17.0 by @slack-oss-bot in #497
- Update plugin dependencyGuard to v0.4.3 by @slack-oss-bot in #495
- Update dependency mkdocs-material to v9.1.3 by @slack-oss-bot in #494
- Update plugin com.gradle.enterprise to v3.12.5 by @slack-oss-bot in #500
- Update androidx-lifecycle to v2.6.1 by @slack-oss-bot in #502
- Update compose-runtime to v1.4.0 by @slack-oss-bot in #509
- Update androidx-activity to v1.7.0 by @slack-oss-bot in #507
- Update dependency androidx.profileinstaller:profileinstaller to v1.3.0 by @slack-oss-bot in #505
- Update dependency androidx.compose.compiler:compiler to v1.4.4 by @slack-oss-bot in #504
- Update dependency androidx.compose.animation:animation to v1.4.0 by @slack-oss-bot in #511
- Update dependency androidx.compose:compose-bom to v2023.03.00 by @slack-oss-bot in #513
- Update dependency androidx.compose.foundation:foundation to v1.4.0 by @slack-oss-bot in #512
- Update compose-ui to v1.4.0 by @slack-oss-bot in...
0.7.0
- New: Multiplatform support for
NavigableCircuitContent! Special thanks to @ashdavies for contributions to make this possible. - Fix:
circuit-retainedminSdk is now 21 again. We accidentally bumped it to 28 when merging in its instrumentation tests. - Enhancement: embedded baseline profiles are now embedded per-artifact instead of in the root
circuit-coreartifact. - Enhancement:
circuit-retainedis now covered in embedded baseline profiles. - [Code Gen] Update Dagger to
2.45. - [Code Gen] Update KSP to
1.8.10-1.0.9. - Update to compose-compiler
1.4.2. - Update to Kotlin
1.8.10.
What's Changed
- Navigation Common by @ashdavies in #425
- Fix some missing CircuitContexts in docs by @ZacSweers in #426
- Update setup doc by @ZacSweers in #427
- Use collectStableBaselineProfile() and regenerate profile by @ZacSweers in #432
- Collapse NavigableCircuitContent functions by @ashdavies in #433
- Update dependency mkdocs-material to v9.0.11 by @slack-oss-bot in #435
- Update dependency com.diffplug.spotless to v6.14.1 by @slack-oss-bot in #438
- Update dependency com.android.tools:desugar_jdk_libs to v1.2.2 by @slack-oss-bot in #441
- Update dependency com.facebook:ktfmt to v0.43 by @slack-oss-bot in #443
- Update dependency com.autonomousapps.dependency-analysis to v1.19.0 by @slack-oss-bot in #442
- Update dependency androidx.appcompat:appcompat to v1.6.1 by @slack-oss-bot in #444
- Update kotlin to v1.8.10 by @slack-oss-bot in #436
- Update dependency androidx.compose.compiler:compiler to v1.4.2 by @slack-oss-bot in #445
- Update dagger to v2.45 by @slack-oss-bot in #447
- Update dependency mkdocs-material to v9.0.12 by @slack-oss-bot in #446
- Fix accidental minSdk 28 in circuit-retained and split baseline profiles by @ZacSweers in #449
Full Changelog: 0.6.0...0.7.0
0.6.0
Happy groundhog day!
-
Breaking API change:
Ui.Content()now contains aModifierparameter.This allows you to pass modifiers on to UIs directly.
public interface Ui<UiState : CircuitUiState> { - @Composable public fun Content(state: UiState) + @Composable public fun Content(state: UiState, modifier: Modifier) } -
New: Add
Navigator.resetRoot(Screen)function to reset the backstack root with a new root screen. There is a correspondingawaitResetRoot()function added toFakeNavigator. -
New: Add
EventListener.startcallback function. -
New: Add Compose UI dependency to circuit-core (to support
Modifierin the API). -
Fix: Fix
CircuitContext.putTaggenerics. -
Fix: Fix KSP code gen artifact to just be a pure JVM artifact.
-
Fix:
EventListener.onState's type is nowCircuitUiStateinstead ofAny. -
Removed:
ScreenUiis now removed andUi.Factorysimply returnsUiinstances now. -
API Change:
CircuitConfig.onUnavailableContentis now no longer nullable. By default it displays a big ugly error text. If you want the previous behavior of erroring, replace it with a composable function that just throws an exception. -
Dependency updates
Kotlin 1.8.0
Compose-JB 1.3.0
KSP 1.8.0-1.0.9
Compose Runtime 1.3.3
Compose UI 1.3.3
Compose Animation 1.3.3
0.5.0
- Enhancement: Circuit no longer requires manual provisioning of its internal backing
ViewModels. This is now done automatically by the Circuit itself. - Enhancement:
circuit-retainedis now fully optional and not included as a transitive dependency of circuit-core. If you want to use it, see its installation instructions in its README. - Enhancement: Mark
Screenas@Immutable. - Breaking API Change:
LocalCircuitOwneris now justLocalCircuitConfigto be more idiomatic. - Breaking API Change:
LocalRetainedStateRegistryOwneris now justLocalRetainedStateRegistryto be more idiomatic. - Breaking API Change:
Continuityis nowinternaland not publicly exposed since it no longer needs to be manually provided. - Breaking API Change:
ViewModelBackStackRecordLocalProvideris nowinternaland not publicly exposed since it no longer needs to be manually provided. - Fix: Add missing license info to pom.
- Dependency updates
[versions] anvil = "2.4.3" compose-jb = "1.2.2" compose-animation = "1.3.2" compose-compiler = "1.3.2" compose-foundation = "1.3.1" compose-material = "1.3.1" compose-material3 = "1.0.1" compose-runtime = "1.3.2" compose-ui = "1.3.2" kotlin = "1.7.22"
0.4.0
- Breaking API Change:
PresenterandUifactories'create()functions now offer aCircuitContextparameter in place of aCircuitConfigparameter. This class contains aCircuitConfig, a tagging API, and access to parent contexts. This allows for plumbing your own metadata through Circuit's internals such as tracing tools, logging, etc. - Enhancement: New lifecycle functions added to
EventListener.onBeforeCreatePresenteronAfterCreatePresenteronBeforeCreateUionAfterCreateUionUnavailableContentonStartPresentonDisposePresentonStartContentonDisposeContentdispose
- Update Compose to
1.3.1. - Update Compose (JB) to
1.2.1. - Update Molecule to
0.6.1. - Added a demo to the STAR sample that shows how to navigate to standard Android components (#275).
What's Changed
- Update dependency pymdown-extensions to v9.8 by @slack-oss-bot in #270
- Update compose-jb to v1.2.1 by @slack-oss-bot in #269
- Update dependency androidx.test.espresso:espresso-core to v3.5.0 by @slack-oss-bot in #271
- Update dependency androidx.test.ext:junit to v1.1.4 by @slack-oss-bot in #272
- Update dependency androidx.compose.material3:material3 to v1.0.1 by @slack-oss-bot in #274
- Update compose to v1.3.1 by @slack-oss-bot in #273
- Update dependency mkdocs-material to v8.5.9 by @slack-oss-bot in #276
- Update dagger to v2.44.1 by @slack-oss-bot in #278
- Update dependency app.cash.molecule:molecule-runtime to v0.6.0 by @slack-oss-bot in #283
- Update plugin com.gradle.enterprise to v3.11.4 by @slack-oss-bot in #282
- Update ksp to v1.7.21-1.0.8 by @slack-oss-bot in #281
- Update dependency mkdocs-material to v8.5.10 by @slack-oss-bot in #280
- Revert "Update ksp to v1.7.21-1.0.8" by @jpetote in #284
- Update dependency com.autonomousapps.dependency-analysis to v1.14.1 by @slack-oss-bot in #286
- Update dagger to v2.44.2 by @slack-oss-bot in #285
- Updated STAR demo to support navigating to standard Android by @kierse in #275
- Update leakcanary to v2.10 by @slack-oss-bot in #288
- Update dependency com.github.ben-manes.versions to v0.44.0 by @slack-oss-bot in #287
- Update dependency app.cash.molecule:molecule-runtime to v0.6.1 by @slack-oss-bot in #289
- Update copyright headers by @ZacSweers in #290
- Update dependency io.gitlab.arturbosch.detekt to v1.22.0 by @slack-oss-bot in #294
- Update dependency termcolor to v2.1.1 by @slack-oss-bot in #292
- Update dependency com.autonomousapps.dependency-analysis to v1.15.0 by @slack-oss-bot in #293
- Update dependency com.autonomousapps.dependency-analysis to v1.16.0 by @slack-oss-bot in #298
- Update dependency mkdocs-material-extensions to v1.1.1 by @slack-oss-bot in #297
- Disable snapshots in renovate by @ZacSweers in #296
- Update accompanist to v0.27.1 - autoclosed by @slack-oss-bot in #291
- Fix some mkdocs API links by @ZacSweers in #301
- Enable changelog and discussion links on site by @ZacSweers in #303
- Fix snapshots config in renovate by @ZacSweers in #299
- Update ksp to v1.7.22-1.0.8 by @slack-oss-bot in #313
- Revert "Update ksp to v1.7.22-1.0.8 (#313)" by @kierse in #315
- Update dependency mkdocs-material to v8.5.11 by @slack-oss-bot in #316
- Update accompanist to v0.28.0 by @slack-oss-bot in #317
- Update dependency com.diffplug.spotless to v6.12.0 by @slack-oss-bot in #320
- Update dependency com.autonomousapps.dependency-analysis to v1.17.0 by @slack-oss-bot in #319
- Update dependency dev.zacsweers.moshix to v0.20.0 by @slack-oss-bot in #324
- Update dependency pymdown-extensions to v9.9 by @slack-oss-bot in #323
- Implement CircuitContext by @ZacSweers in #325
- Update benchmark and regenerate baseline profiles by @ZacSweers in #326
Full Changelog: 0.3.1...0.4.0