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 Jetpack Compose (master) #5616

Open
westnordost opened this issue May 5, 2024 · 1 comment
Open

Migrate to Jetpack Compose (master) #5616

westnordost opened this issue May 5, 2024 · 1 comment
Labels
iOS necessary for iOS port

Comments

@westnordost
Copy link
Member

This is the master ticket for migrating from the Android view system (layout XMLs etc.) to Jetpack Compose as UI framework.

The primary reason for this is #5421: To make possible an iOS version of this app that has a shared codebase for the UI through the use of Compose Multiplatform. The first step however is to migrate to Jetpack Compose and only later switch to Compose Multiplatform.

The first foray into Jetpack Compose has been made in PR #5447, I am also new to this but I tried to follow guidelines closely how things should be done, so feel free to look into that PR to learn how the UI code typically looks like before and after.

Contributing

As this is a larger undertaking which can be implemented step by step - this ticket shall serve as a master ticket. Whenever you would like to contribute, post on which screen or view you would like to work on now here and later post a PR when you are done.

Migration is generally done bottom-up, i.e. start with single views first and then work your way up to the screen-level, see Migration Strategy. For converting a whole screen, it is very advisable to do this only after the Fragment or Activity in question has been refactored to use ViewModels, see #5530.

@westnordost westnordost added the iOS necessary for iOS port label May 5, 2024
@westnordost
Copy link
Member Author

westnordost commented May 23, 2024

Current blockers and issues with Compose:

  • Appear-animation missing for achievements and links screen. Lazy item animations not supported by Jetpack Compose yet.

  • Fancy animate-from-icon animation is missing for achievement dialog. Not supported by Jetpack Compose yet

  • (Material2) DatePicker and TimePicker (dialogs) are not available in Jetpack Compose (yet). Necessary for: Logs screen, any quest where a time needs to be set (opening hours, collection times, ...)

  • scroll bars are not supported by Jetpack Compose yet. (They would be handy at least in the Logs screen)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
iOS necessary for iOS port
Projects
Status: In Progress
Development

No branches or pull requests

1 participant