Philip Dukhov
03/12/2025, 6:11 AMPhilip Dukhov
03/12/2025, 2:08 PMPhilip Dukhov
03/24/2025, 5:57 AMtypeOf related to generic type
data class InstanceToRetain<T>(val value: T)
retainedSimpleInstance { InstanceToRetain(0) }
Looks like it's something you've faced already, what do you think is the best workaround here? For now I switched to T::class, it obviously loses nested T info, but at least it would crash in debug app version if I try to use the same key somewhere, so it's easier to catch during development.sasikanth
03/26/2025, 4:24 AMVaibhav Jaiswal
04/05/2025, 1:37 PMCan
04/09/2025, 9:15 AMbringToFront function in RootComponent. If the userβ_for some mysterious reason_βstarts rapidly switching between tabs, the navigation can get stuck on one of the screens. When that happens, the screen becomes unresponsive to clicks. We share the RootComponent in android and iOS and it affects both. I also noticed the same issue in the sample Decompose app.Andrey Larionov
04/09/2025, 6:07 PM1.8.0-beta01
When I changed it with 1.7.3 ---> πAndrew Steinmetz
04/20/2025, 8:27 PMComponentContext, I wrote a library that extends kotlin-inject-anvil to help bind and generate the assisted factory interface glue code to bind it in the kotlin-inject dependency graph that I thought others who use the library might be interested in.
https://plusmobileapps.com/blog/2025/04/04/kotlin-inject-anvil-extensions/Vaibhav Jaiswal
05/01/2025, 11:20 AMdoOnCreate but i am facing a bug that
it sometimes completes after the ChildComponent is created, which then crashes as the app as db goes empty
I want it to complete first (success or failure), then the ChildStack child components to be createdVaibhav Jaiswal
05/01/2025, 2:32 PMGuyaume Tremblay
05/01/2025, 8:30 PMListDetailPaneScaffold with ?Arkadii Ivanov
05/03/2025, 12:33 AM3.4.0-alpha01 is released!
π Use SPDX identifier in POMs
π Relax StrictMode with restarting the Activity stack for deep links
π Don't restart Activity stack when there is no deep link
π Added backHandlerPriority argument to childContext extension function
π Updated Compose to 1.8.0-rc01 and compileSdkVersion to 35
Release notes: https://github.com/arkivanov/Decompose/releases/tag/3.4.0-alpha01Alexandru Caraus
05/13/2025, 1:17 PMCXwudi
05/19/2025, 11:37 PMchildPanels() called backHandler . As the name suggested, it allows the user to provide a customized back handler, and one of the handlers I provided is that in a MultiModeChildPanelsBackHandler where in triple mode, pressing back goes to dual mode, and dual to single.
https://gist.github.com/CXwudi/03c5c7fae17518912b305f4e4b0423ea
Let me know what do you thoughtCXwudi
05/19/2025, 11:48 PMAdaptiveDetailsHorizontalChildPanelsLayout at https://gist.github.com/CXwudi/218dacd0b39c5f24ee5a6e6b2ebc6f9e where the detail page is adaptive but the other two have configurable fixed size. Let me know what do you think?Rok Oblak
05/24/2025, 5:20 AM3.3.0 + CMP 1.7.3 worked fine
upgrading to CMP 1.8.0 started crashing whenever back swipe was performed (something in a coroutine crashed, but crashlog is hard to decipher; normal back button i.e. pop from stack worked fine)
then keeping CMP 1.8.0 but upgrading Decompose to 3.4.0-alpha01 fixed it againArkadii Ivanov
05/31/2025, 12:22 PMPagesNavigator#setItems extension function
π Deprecated Value#getValue operator overload
π Exposed ChildPagesPager typealias
π Avoid using Modifier.graphicLayer in predictive back animatables
π Fixed IndexOutOfBoundsException in ChildPages
Release notes: https://github.com/arkivanov/Decompose/releases/tag/3.4.0-alpha02John O'Reilly
06/08/2025, 5:38 PMArkadii Ivanov
06/14/2025, 11:58 AMVaibhav Jaiswal
06/27/2025, 7:59 AMArkadii Ivanov
06/28/2025, 1:15 PMJetpackComponentContext API
π Updated Compose to 1.8.2
π Fixed ClassCastException in SlotNavigator#dismiss on wasmJs on Kotlin 2.2
Release notes: https://github.com/arkivanov/Decompose/releases/tag/3.4.0-alpha03Vaibhav Jaiswal
07/07/2025, 12:24 PMretainedComponent which means that the rootComponent survives config change
And this root Component has a stack navigation, so does this mean the child components for each screen in the nav will also survive config change?UzMbApps
07/12/2025, 5:38 AMfun fadeThroughAnimator(
animationSpec: FiniteAnimationSpec<Float> = tween(220),
minAlpha: Float = 0f,
minScale: Float = 0.92f,
): StackAnimator = stackAnimator(animationSpec = animationSpec) { factor, direction, content ->
if (direction.isEnter) {
val alpha = getFadeAlpha(factor, minAlpha)
val scale = 1f - abs(factor) * (1f - minScale)
content(
Modifier
.alpha(alpha)
.scale(scale)
)
}
}
//....
Scaffold(...
content = { innerPadding ->
Children(
modifier = Modifier.fillMaxSize().padding(innerPadding),
stack = stack,
animation = stackAnimation(fadeThroughAnimator())
) { child ->
Hi Arkadii, I'm facing a small issue... the fadeThroughAnimator animation works just as I want, but it doesn't keep the screen state. How can I fix that?Philip Dukhov
08/07/2025, 9:56 AMstackAnimation, which is probably related to movableContent, as discussed here.
When I push a screen with a text field and this text field focuses automatically with a launched effect, the text field becomes unfocused after the transition finishes. If this is not a known bug and you need a reproducible example, let me know. I stopped investigating when I found that removing stackAnimation fixed the bug.
Using extensions-compose-experimental also solves the issue.
My questions are:
1. What are the plans for the experimental module? Is it planned to replace extensions-compose?
2. Do you use it in your production apps? Are there any known issues with it compared to extensions-compose?Philip Dukhov
08/18/2025, 2:43 PMMaterialPredictiveBackAnimatable for myself to be closer to what the system settings app has. The current version feels a bit strange in the final disappearing stage to me. Let me know if you're interested in such a contribution.
However, I noticed that you updated the alpha version to eliminate the use of the graphicsLayer https://github.com/arkivanov/Decompose/issues/877.
Do you know if this issue has been reported? I use graphicsLayer because I feel it's a performant solution. I'd like to reconsider it, knowing the corner cases where it could fail.Arkadii Ivanov
09/06/2025, 7:00 PM3.4.0-alpha04 is released!
π Explicit error handling in Relay
π Expose StackAnimationScope from ChildStack instead of AnimatedVisibilityScope
π Use graphicsLayer with CompositingStrategy.Offscreen in predictive back animations
π Renamed androidPredictiveBackAnimatable to androidPredictiveBackAnimatableV1
π Added androidPredictiveBackAnimatableV2 from Android Vanilla Ice Cream
π Fixed incorrect enter shape in androidPredictiveBackAnimatable when not fullscreen
π Fixed ChildPages animation sometimes stuck when interrupted
π Fixed Child Slot state not saved when not active
π Fixed CCE in SlotNavigator#dismiss on wasmJs
Release notes: https://github.com/arkivanov/Decompose/releases/tag/3.4.0-alpha04Arkadii Ivanov
09/07/2025, 6:59 PMArkadii Ivanov
09/09/2025, 8:06 PM3.4.0-alpha05 is released!
π Fixed ChildPages composable discards the selected index change while not in composition
Release notes: https://github.com/arkivanov/Decompose/releases/tag/3.4.0-alpha05Arkadii Ivanov
09/12/2025, 9:58 PM3.4.0-beta01 is released!
π Fixed Web History Navigation duplicates history items when nested
Release notes: https://github.com/arkivanov/Decompose/releases/tag/3.4.0-beta01Arkadii Ivanov
09/28/2025, 4:39 PM3.4.0 is released!
π New Child Items navigation model for lazy lists
π New JetpackComponentContext API
π New predictive back animation from Android Vanilla Ice Cream and Baklava
π The ChildStack composable function now exposes StackAnimationScope instead of AnimatedVisibilityScope
π Other improvements and fixes
Release notes: https://github.com/arkivanov/Decompose/releases/tag/3.4.0