oppia / oppia-android

A free, online & offline learning platform to make quality education accessible for all.
https://www.oppia.org
Apache License 2.0
298 stars 501 forks source link

[enhancement]: Migrate codebase to jetpack compose #5422

Open itsPronay opened 3 weeks ago

itsPronay commented 3 weeks ago

Is your feature request related to a problem? Please describe.

Migrate codebase to jetpack compose. Jetpack Compose is the modern toolkit for building native Android UIs. By adopting Compose, Kiwix can simplify UI development, improve maintainability, and ensure the app aligns with the latest Android development practices.

Describe the solution you'd like

Migration can be carried out in 2 phrases, In the first migration, we can migrate screens, and then use them with views In the second migration, we can remove Fragments and Navigation components

To get a full idea of how the migration will take place please view official docs on Migration strategy

image

Describe alternatives you've considered

No response

Additional context

Benefits of Jetpack Compose

itsPronay commented 3 weeks ago

@BenHenning Hey, what do you think about migrating codebase to jetpack compose ? since everyone is adopting it.

BenHenning commented 1 week ago

Thanks for filing this @itsPronay! This has been on our list for many years, but we never actually filed an issue, so this is a great one to use as the main feature request.

At a high-level, we definitely want to move to Jetpack Compose in the long-term. Besides the benefits you listed, Jetpack Compose has very specific benefits that I think we're interested in:

However, there are some cascading challenges that I see with migrating to Compose:

To summarize, both the migration and prepping for it will be a large undertaking. :) However, we are interested in doing this. In fact, we're prototyping our first UI using Compose in #5344 but we'll probably not go past that new UI for now without more of the above addressed.

In terms of timeline, I can't really say when we'll be able to start on these efforts as it greatly depends on contributor availability and willingness. At the moment, we're planning on finishing the Bazel migration in completion this year, but there aren't yet plans for screenshot testing or test uniformity fixing.