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

Rewrite Issue 1: The Jetpack Compose Migration #11198

Open
opusforlife2 opened this issue Jun 21, 2024 · 18 comments
Open

Rewrite Issue 1: The Jetpack Compose Migration #11198

opusforlife2 opened this issue Jun 21, 2024 · 18 comments
Labels
discussion This needs to be discussed before anything is done feature request Issue is related to a feature in the app GUI Issue is related to the graphical user interface rewrite Issues and PRs related to rewrite

Comments

@opusforlife2
Copy link
Collaborator

opusforlife2 commented Jun 21, 2024

Feature description

Newpipe is intended to be migrated completely to Jetpack Compose. This is a meta issue to coordinate efforts and keep everyone informed.

Why do you want this feature?

See #10118.

Additional information

@snaik20 @uragiristereo @imashnake0 @lm41 @YongJunLim @AaronRietschlin @sandy-8925 @PrimoDev23 @EricDriussi @rahul-gill @Profpatsch @Chinaqth @acrodemocide @fuzzblob @XilinJia @GGindin @davidasunmo @chriss2401

You've been bulk-pinged because you volunteered at some point or other to help with the rewrite. Well, Newpipe is intending to avoid obscurity and obsolescence by clawing its way into the modern Android world, and now we've finally gotten to a state where you can help.

This is issue number 1 for tracking the rewrite efforts. More to follow. Let us know if you're willing and currently able to participate.

If anyone is already a Jetpack Compose expert/veteran here, please let us know about that too. Not everyone on the team is familiar with it.

Also, here's a bit of guidance from @Stypox on this: Guidelines.pdf

@opusforlife2 opusforlife2 added feature request Issue is related to a feature in the app GUI Issue is related to the graphical user interface discussion This needs to be discussed before anything is done labels Jun 21, 2024
@opusforlife2
Copy link
Collaborator Author

Ideally, we need small, incremental, no-brainer PRs so that nothing breaks as far as possible. Also so that reviewing and merging them is dead simple.

@snaik20
Copy link
Contributor

snaik20 commented Jun 22, 2024

I have a solid understanding of Jetpack Compose and have begun migrating the settings pages to Compose. However, I've recently been occupied with other tasks and haven't been able to submit new PRs. I expect to be available in 1-2 weeks and will strive to contribute regularly.

If anyone is interested in helping with the settings redesign, I would greatly appreciate it. I can review contributions and take ownership of the settings module.

@opusforlife2
Copy link
Collaborator Author

Settings really is the first thing that needs to be overhauled. I'm glad you're working on it.

@rahul-gill
Copy link

rahul-gill commented Jun 23, 2024

I'll add some compose specific points to keep in mind when writing new code and reviewing compose related pull requests:

  • compose is still a little behind in performance so we should make sure in code reviews to identify anything that'll contribute to performance betterment or degradation.
  • We should adopt a bottom-up approach, beginning with the foundational styling code, followed by the development of individual components, and culminating in the integration of these components into the screens.
    This method ensures that initial pull requests are self-contained and minimize breakage. In reviews, we'll be able to identify performance issues etc.
    We'll be able to use current styling info this way
  • we need to make sure somehow that new components works under different screen size, font size, screen zoom etc. configurations.

On refactor branch, currently, there's only rudimentary styling handling.

I'm good with layouts so I'll be able to help with basic styling code and making layout that'll work with different screen sizes properly

@TheLogicals
Copy link

TheLogicals commented Jun 24, 2024

@snaik20 I'd be happy to assist and have experience with Jetpack Compose as well as XML. Please let me know how I can contribute.

@snaik20
Copy link
Contributor

snaik20 commented Jun 24, 2024

@snaik20 I'd be happy to assist and have experience with Jetpack Compose as well as XML. Please let me know how I can contribute.

You could start adding PRs for #9587. I have added the Jetpack compose setup and some initial work for debug page. So you could build on that and add me as reviewer for your PRs. Note that the compose work is currently added in refactor branch. So you need to use it as base for your PRs.

@opusforlife2
Copy link
Collaborator Author

@TheLogicals Would you like to be added to the volunteer list?

@xidsyed

This comment was marked as resolved.

@opusforlife2

This comment was marked as resolved.

@lm41
Copy link

lm41 commented Jul 22, 2024

Do you think a shared screen implementation like https://github.com/florisboard/florisboard/blob/master/app/src/main/kotlin/dev/patrickgold/florisboard/lib/compose/FlorisScreen.kt would be a good idea and a good starting point?
It is used like this

@braiso-22
Copy link

braiso-22 commented Jul 31, 2024

@snaik20 I'd be happy to assist and have experience with Jetpack Compose as well as XML. Please let me know how I can contribute.

You could start adding PRs for #9587. I have added the Jetpack compose setup and some initial work for debug page. So you could build on that and add me as reviewer for your PRs. Note that the compose work is currently added in refactor branch. So you need to use it as base for your PRs.

Hi @snaik20 I want to help with #9587 but I see @Stypox closed #10850 here #10849 (comment) how do I get started, I'm new to opensource projects and I'm a bit lost

@snaik20
Copy link
Contributor

snaik20 commented Aug 4, 2024

You could follow the plan here #10849 (comment). I'm working on settings page redesign but haven't got time recently to add to it.

@snaik20 I'd be happy to assist and have experience with Jetpack Compose as well as XML. Please let me know how I can contribute.

You could start adding PRs for #9587. I have added the Jetpack compose setup and some initial work for debug page. So you could build on that and add me as reviewer for your PRs. Note that the compose work is currently added in refactor branch. So you need to use it as base for your PRs.

Hi @snaik20 I want to help with #9587 but I see @Stypox closed #10850 here #10849 (comment) how do I get started, I'm new to opensource projects and I'm a bit lost

@braiso-22
Copy link

Ok, I'm going to start redoing the history and cache settings screen, looks simple to me

@snaik20
Copy link
Contributor

snaik20 commented Aug 4, 2024

Ok, I'm going to start redoing the history and cache settings screen, looks simple to me

Thanks, I will help you out with reviews. Note that existing changes are in refactor branch, so base your changes on top of that

@rahul-gill
Copy link

Hi, I've created some draft code for settings screen in compose.
This is the code
This file shows a simple example of how we might use the compose components made.
This is a little preview:

Screen_recording_20240811_233655.webm

If this seems fine, I'll write concrete code for the current settings layout but there's another issue of new settings layout, so what should be done.

@toliuweijing
Copy link

toliuweijing commented Aug 12, 2024

Hi, I would love to contribute.

Not sure if this was asked before, but is there a list / plan for devs to claim ownership of a subcomponent before submitting PR(e.g. comment fragment, playlist fragment)? So a new dev can check the list and claim one of the remaining work, avoiding duplicated effect.

cc @opusforlife2 @snaik20 for insight

@opusforlife2
Copy link
Collaborator Author

@rahul-gill There's already a PR for the issue you linked. You could check that out first.

@toliuweijing There's no such generalised checklist. For now, you could comment here that you're taking up a specific component to make sure someone hasn't already started working on it.

@acrodemocide
Copy link

I responded to a similar issue that I was tagged in, but I thought I would respond here as well. The short answer is that I love this app and so have been wanting to volunteer some of my free time to help. Most of my experience is as a full stack web engineer, but I'm mildly familiar with Android and have been learning about JetPack Compose. As such, most of my focus has been on reviewing pull requests and testing the APK from the build on my Android as part of that review process.

I'll report back any questions or concerns I have on code changes in the review as well as the result of testing the APK on my Android. I may try my hand at picking up an issue for converting some of the code into JetPack compose (or I might even pick up an issue that fixes a bug and make the conversion as part of that process).

@ShareASmile ShareASmile added the rewrite Issues and PRs related to rewrite label Oct 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion This needs to be discussed before anything is done feature request Issue is related to a feature in the app GUI Issue is related to the graphical user interface rewrite Issues and PRs related to rewrite
Projects
Status: No status
Development

No branches or pull requests

10 participants