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

πŸ›€οΈ Migrate to the Compose Multiplatform Navigation #779

Open
wants to merge 17 commits into
base: main
Choose a base branch
from

Conversation

igorescodro
Copy link
Owner

@igorescodro igorescodro commented Oct 9, 2024

Migrating to the new Compose Multiplatform Navigation library and implementing a new navigation system based on events.

Fix #661

@igorescodro igorescodro force-pushed the update/navigation branch 3 times, most recently from f2fa0d4 to adafe7d Compare January 18, 2025 22:00
A new Compose Navigation dependency was added once Voyager doesn't seem
to be maintained anymore.
New destinations and events were created to represent all the app's
screens and how to interact between them.
Initial structure connecting the AndroidX Navigation with our custom
implementation created.
All the existing destinations were migrated from Voyager to the new
navigation system. Future commits will handle the deep links and port
more destinations (such as confirmation dialogs) to this system.
New mandatory tag added after updating Compose
Since Compose Multiplatform does not fully support deep links, the
initial implementation was created, and it will be updated when the
support is ready. For now, every deep link will simply open Alkaa's main
screen.
A new module and a  Wrapper to provide the `PermissionsController`
instance. This class holds a single instance of `PermissionsController`
since Moko does not allow `BindEffect` to be called outside an Activity
context (Alkaa uses in a `dialog` destination).
The behavior for keep the tab state after rotating the screen was
re-introduced. Small changes were needed to ensure the data can be
properly stored in the `Bundle`.
After the recent updates, the `rememberSaveable` for the `LocalDateTime`
was not working properly. For now, the value will be stored as a `Long`
and converted to DateTime as needed.
Adding ModalBottomSheet implementations to show the content in a
BottomSheet for the Category Edit/Add and Task Add.
Additional functions called to improve the navigation. The improvements
are:
- Avoid navigating to the same place if it's already on top
- Save and restore state for the TopLevel destinations
New module created to avoid circular dependencies. Ideally, the
interfaces from `navigation` should be moved here. For now, it is what
it is. πŸ˜€
A new structure was created to emit the changes in the Top Level
destinations and update the Bottom Navigation (or NavRail) and the Top
App Bar. The solution is based on the official Navigation Compose
documents and Now in Android project.
The build task is failing even though the app is working fine. Time to
fix.
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.

App Theme is not working
1 participant