Page MenuHomePhabricator

GSoC 2026: Modularization + Jetpack Compose in Android Commons App
Open, Needs TriagePublic

Description

Project title: Modularization + Jetpack Compose
Brief summary: The project aims to revamp the app architecture using Jetpack Compose.
Expected outcomes: Redesign with the help of Compose and modularise the app.
Skills required/preferred: Strong Android fundamentals, Kotlin, Jetpack Compose
Possible mentors: @Kaartic (past maintainer), @Neeldoshii
Expected size of the project: 350 hours
Rating: Medium
Microtasks: Please read gsoc.md which guides you on how to choose an issue and perform a microtask.
Any other additional information for contributors: https://github.com/commons-app/apps-android-commons
Why are you proposing this project? We're proposing a revamp as the app architecture has now become outdated, making it difficult to maintain as it no longer follows the latest Android practices.
What is the expected impact? Complete modularization and at least 40% codebase fully utilising Compose. App modernization will help improve its stability and maintainability in the long-run.

Why it matters?
Currently, the app uses a very old architecture, which makes it harder to change, test, and maintain. Every new feature or bug fix takes more time than it should, and the risk of breaking something is very high. Moving to a modular setup with Jetpack Compose will make the code cleaner and easier to understand for the new contributors who are otherwise fluent with the latest Android development standards. The usage of Jetpack Compose will help us give the app a modern look and feel, something that our users have been complaining about since a very long time.

Who it helps?

  • Users: They get a more stable app, fewer crashes and UI bugs, and faster improvements. They would no longer find the UI outdated.
  • New volunteer contributors: The code becomes easier to work with, easier to test, and easier for new contributors to learn.
  • The project long-term: A modern, well-structured codebase is easier to maintain and scale, which helps the community keep the app healthy for years.

Event Timeline

Hi @RitikaPahwa4444 thank you for your proposal. Please note that you must have at least 2 mentors for a project; be sure to include their Phab usernames. Also you must include microtasks, ideally linked to this task.

We will not be able to accept your proposal without these. Thanks!

Hi @LGoto, thank you for checking the proposal. I have reached out to the mentors to get their Phabricator handles and had created this ticket to share it with them. Is there a way to convert this proposal into draft until I get the details?

@RitikaPahwa4444 There is no draft option but now that we know you are still working on this, it's fine. Please keep in mind the deadline of 26 January 2026 to complete your proposal.

Nicolas_Raoul renamed this task from GSoC 2026: Implement lossless transformations OR modularization+Compose to GSoC 2026: Modularization + Jetpack Compose.Sat, Jan 24, 1:38 PM
Nicolas_Raoul updated the task description. (Show Details)
Nicolas_Raoul updated the task description. (Show Details)

Please note that you must have at least 2 mentors for a project; be sure to include their Phab usernames. Also you must include microtasks, ideally linked to this task.

Hi @LGoto, we've added these details now to the description.

Aklapper renamed this task from GSoC 2026: Modularization + Jetpack Compose to GSoC 2026: Modularization + Jetpack Compose in Android Commons App.Sat, Jan 24, 3:56 PM

Hi @RitikaPahwa4444 Please add the microtasks for this project.

Also it would be helpful if you could provide more details about the impact, for example: why does it matter? who does it help?

Thanks!

@LGoto we have defined how to choose a microtask here: https://github.com/commons-app/commons-app-documentation/blob/master/android/gsoc.md. It has been added to the description. Is there anything else that you would like us to add?

I will define the impact in terms of the parameters you've defined.

@RitikaPahwa4444 A microtask should be an easy, self-contained task on Phabricator that prospective contributors can work on to get familiar with the project and technologies. It's a bit confusing to go to https://github.com/commons-app/commons-app-documentation/blob/master/android/gsoc.md and not see an obvious list of tasks. Also the "Tasks" section links to one declined task and one discussion threat which does not seem to be an actual task. Could you please select some sample tasks to help contributors get started?

@LGoto we've made our microtask selection flexible and this is how we've been doing for all the previous GSoC editions. My personal observation with selected microtasks is that contributors end up fighting for the tasks. Double effort doesn't help us and do not want anyone's effort to go in vain. Moreover, we don't want to set wrong expectations in terms of selections. We can link good first issues to get newcomers started, but that might not guarantee a selection. They might think "we did the given task but still did not get selected". Slightly complex tasks makes it challenging for the newcomers.

If this is a specific requirement that Wikimedia will go with this year, we'll plan on some tasks and reconsider how we select candidates.

Also the "Tasks" section links to one declined task and one discussion threat which does not seem to be an actual task.

Thank you, I've updated the task section to remove the declined task. What's the other threat that you're referring to? I'm not sure if any other concerns were discussed for the other idea.

I'll add the Phabricator links of these ideas too along with the GitHub issues if that's what you're talking about :)

My apologies for the typo, I meant "thread" not "threat" - for example: https://github.com/commons-app/apps-android-commons/issues/1192

Adding Phabricator links for the issues would be great, thanks!