Zhuinden / simple-stack

[ACTIVE] Simple Stack, a backstack library / navigation framework for simpler navigation and state management (for fragments, views, or whatevers).
Apache License 2.0
1.36k stars 76 forks source link

KMM support? #273

Open uberchilly opened 1 year ago

uberchilly commented 1 year ago

Hello @Zhuinden, is there a plan to add support for KMM given recent news about jetpack compose being supported by KMM now and simple-stack already supporting compose-only navigation it would be kind of interesting to have full circle simple-stack for navigation and DI via scoped services?

Zhuinden commented 1 year ago

Hello, technically it would have to be a separate KMP-first Kotlin port of simple-stack, while removing some limiting features (see backstack.persistViewToState() and anything that directly depends on Parcelable).

Objectively I do have interest in this (the KMP landscape basically has Decompose as a navigation framework + the attempts in https://github.com/dbaroncelli/D-KMP-sample ) as there's clearly an opening, but I have no idea when I'd find the time to work on that atm.

What I'm sure about though is that if I were to create one, it'd have to be on MavenCentral, so I guess I'll have to figure out how to set up those PGP keys and whatnot. They do have a guide for that here though https://kotlinlang.org/docs/multiplatform-publish-lib.html#structure-of-publications .

But I agree, it'd be really cool. 😁

matejdro commented 1 year ago

I think Parcelable can be solved fairly simply by using expect..actual methods of the KMP (where parcelation on the non-Android platform would presumably just be no-op).

I guess the biggest hurdle here is actually rewriting the library in Kotlin?