0.8.0
[Core] Split up core artifacts.
circuit-runtime
: common runtime components likeScreen
,Navigator
, etc.circuit-runtime-presenter
: thePresenter
API, depends oncircuit-runtime
.circuit-runtime-ui
: theUi
API, 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
NavigableCircuitContent
and just use common one. Back handling still runs throughBackHandler
, but is now configured inrememberCircuitNavigator
. - [Core] Add
defaultNavDecoration
toCircuitConfig
to allow for customizing the defaultNavDecoration
used inNavigableCircuitContent
. - [Core] Mark
CircuitUiState
as@Stable
instead of@Immutable
. - [Code gen] Capitalize generated class names when source is a presenter function.
- [Sample] New
:samples:tacos
order builder sample to demonstrate complex state management. - [Sample]
NavigableCircuitContent
example 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
@Stable
by @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 #510
- Update compose-material to v1.4.0 by @slack-oss-bot in #508
- Update dependency Markdown to v3.4.3 by @slack-oss-bot in #503
- Update accompanist to v0.30.0 by @slack-oss-bot in #506
- Update dependency com.vanniktech.maven.publish to v0.25.0 by @slack-oss-bot in #515
- Update dependency com.vanniktech.maven.publish to v0.25.1 by @slack-oss-bot in #516
- Update dependency mkdocs-material to v9.1.4 by @slack-oss-bot in #517
- Update plugin com.gradle.enterprise to v3.12.6 by @slack-oss-bot in #519
- Extend counter sample with additional screen for basic navigation by @ashdavies in #498
- Update coil to v2.3.0 by @slack-oss-bot in #520
- Clean up filter UI, M3 bottom sheet, and color tweaks by @ZacSweers in #514
- Ignore magic numbers in non-production code by @kierse in #522
- Add new Tacos sample app demonstrating Presenter Composition by @kierse in #496
- Update dependency app.cash.turbine:turbine to v0.12.2 by @slack-oss-bot in #525
- Update dependency app.cash.turbine:turbine to v0.12.3 by @slack-oss-bot in #526
- Update dependency mkdocs-material to v9.1.5 by @slack-oss-bot in #529
- Update dependency com.android.tools:desugar_jdk_libs to v2.0.3 by @slack-oss-bot in #528
- Taco sample fast follows by @kierse in #523
- Update accompanist to v0.30.1 by @slack-oss-bot in #530
- Move default NavDecoration to CircuitConfig by @ZacSweers in #533
- Update compose-runtime to v1.4.1 by @slack-oss-bot in #535
- Update dependency androidx.compose.animation:animation to v1.4.1 by @slack-oss-bot in #537
- Update dependency androidx.compose:compose-bom to v2023.04.00 by @slack-oss-bot in #539
- Update dependency androidx.core:core-ktx to v1.10.0 by @slack-oss-bot in #540
- Update dependency com.diffplug.spotless to v6.18.0 by @slack-oss-bot in #541
- Update dependency androidx.compose.foundation:foundation to v1.4.1 by @slack-oss-bot in #538
- Update renovatebot/github-action action to v36 by @slack-oss-bot in #543
- Update compose-ui to v1.4.1 by @slack-oss-bot in #536
- Update compose-material to v1.4.1 by @slack-oss-bot in #534
- Update dependency gradle to v8.0.2 by @slack-oss-bot in #480
Full Changelog: 0.7.0...0.8.0