Open itsPronay opened 3 weeks ago
@BenHenning Hey, what do you think about migrating codebase to jetpack compose ? since everyone is adopting it.
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.
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
Describe alternatives you've considered
No response
Additional context
Benefits of Jetpack Compose
Simplified UI Development: Compose allows developers to write less code, reducing boilerplate and making the UI code more intuitive and easier to maintain.
Improved Performance: Compose is designed to be more efficient, which can result in better app performance and responsiveness.
Better Integration with Kotlin: Compose is fully Kotlin-based, providing a seamless development experience with Kotlin features like coroutines and flows.
Future-Proof: Google is actively developing and promoting Compose as the future of Android development, ensuring long-term support and innovation.