Skip to content

NavigationStack recomposing problem #462

@fwilldev

Description

@fwilldev

Hello,

I am currently migrating my app to skip.

With the help of Claude Code I made a lot of progress, but I hit a blocker due to infinite recomposes - which makes my app unbearably laggy.

I am aware of #441 and #440 - so it seems no fix is currently available for this.

Environment

  • Skip Fuse app; skip-ui 1.56.0, skip-fuse-ui 1.17.0, skip-model 1.7.5, skip 1.9.3
  • Physical device: Samsung Galaxy A16, Android 16 (API 36)

Evidence (Layout Inspector, app sitting idle)

  • NavDisplay, RenderEntry, and collectPreferences (inside the nav entry) increment every frame - continuously, with no user interaction.
  • A bare NavigationStack { Text("x") } is idle (0 recompositions). The loop only appears once the nav entry's content contributes preferences (real screens with a nav bar/normal content).

What I already tried (none fixed it):

  • Removed SideEffect { saveableStateHolder.removeState(true) } from Main.kt — reduced per-frame cost but the loop continued.

So because this is a big roadblocker for me, my questions are:

  1. Is there any app-side workaround to avoid the per-frame preference recomposition i am not aware of, until a fix lands?

Happy to share more info if needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions