Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚦 Implement KMP navigation #588

Merged
merged 10 commits into from
Sep 25, 2023
Merged

Conversation

igorescodro
Copy link
Owner

Moving away from AndroidX Navigation to Voyager. Much easier than I though and very similar to Koin APIs and DSLs.

The existing navigation module was revamped to be a KMP module and
starting using Voyager as the navigation framework. For now, only the
Task and Category flows were added. Future changes will add the
remaining ones and also we will investigate if it's worth it to move the
tab navigation to this library too.

Since the module was an Android library and still referenced, everything
was commented at this moment.
In order to make sure that iOS will keeping running, all the Interactors
that are not implemented will be disabled. In the future, a more
scalable solution will be implemented to handle both the cases where
iOS will have a dedicated implementation and also the ones that should
be ignored.
Screen related to the Task feature were ported to the Voyager setup
Screen related to the Category feature were ported to the Voyager setup
The Home feature was updated to be more aligned with the new navigation
system
The Shared feature was updated to be more aligned with the new
navigation system
More code was commented to make the code compile. Future changes will
simply remove this legacy NavGraph entirely.
As expected, a few things were reported and fixed
When doing some changes in the code structure, some stuff were broken.
Fixed.
Temporary solution to fix domain the unit tests. Since the Notification,
Alarm and Widget/Glance features are not ported to KMM, the DI will
provide a nullable injection for those Interactors. Unfortunately, Koin
does not support `getOrNull` with the Constructor DSL so we are back
to the ugly injection temporarily.
@igorescodro igorescodro merged commit 4e8c861 into alkaa-compose-multiplatform Sep 25, 2023
3 of 5 checks passed
@igorescodro igorescodro deleted the kmp/navigation branch September 25, 2023 18:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant