Automattic / pocket-casts-android

Pocket Casts Android 🎧
Mozilla Public License 2.0
2.53k stars 210 forks source link

Convert remaining screens to use Jetpack Compose #753

Open mchowning opened 1 year ago

mchowning commented 1 year ago

We really like Jetpack Compose, but we're in an unfortunate in-between place where we have a fair number of screens written in compose, while most of the app is still using Views. Let's work on converting the remaining screens in the app to use Jetpack Compose.

Keep in mind that we do not have to convert entire screens at a time, the interoperability APIs allow us to use things like a ComposeView to convert just a part of a View to use compose.

In Progress

kevinjoramos commented 10 months ago

I want to work on this issue, but it's been open for a while. Do you know if anyone has already started working on this? Are there any screens you'd like to convert first?

mchowning commented 10 months ago

👋 @kevinjoramos !

I want to work on this issue.

That's great!

Do you know if anyone has already started working on this?

It's an ongoing effort that we've been slowly chipping away at. There are still a lot of screens that need to be converted.

Are there any screens you'd like to convert first?

Not in particular. My suggestion would be to just find a screen (or part of a screen) in the app that you're interested in converting and post a comment on this issue letting us know your working on converting it. Thanks so much for your help! 🙇

RyanKoech commented 9 months ago

Hello @mchowning!

Not in particular. My suggestion would be to just find a screen (or part of a screen) in the app that you're interested in converting and post a comment on this issue letting us know your working on converting it.

Does that mean that several people can work on this task at the same time?

mchowning commented 9 months ago

Does that mean that several people can work on this task at the same time?

Absolutely! Just leave a message here letting everyone know what you're working on so we don't have two people doing the same thing. There's more than enough screens to go around! 😄

CookieyedCodes commented 9 months ago

@mchowning would it be good for a Dev to put together a to-do list that shows and tracks what needs to be done that would be better for live updates of what's in progress & what needs to be done (similar to the recentish last minute bookmark fixes) your call tho 😅

mchowning commented 9 months ago

If anyone leaves a comment that they're working on something, I'll edit the issue description at the top to reflect that. I don't think we need a list of every screen that still needs to be converted to compose since it's pretty easy to find most of them just by searching for the XML layout files.

RyanKoech commented 9 months ago

In that case, let me give ChangeEmailFragment a shot at it.

RyanKoech commented 9 months ago

In that case, let me give ChangeEmailFragment a shot at it.

Any guidance on how to handle automotive and wear os if any?

mchowning commented 9 months ago

Any guidance on how to handle automotive and wear os if any?

Thanks for asking! It can be hard to tell quickly from the code which parts of the app are reused, so it's a good idea to at least make sure the automotive and wear apps will build and, ideally, give them each a quick smoke test to make sure they still generally work fine, particularly if you are changing any shared logic.

The watch and automotive apps can be run using an emulator in Android Studio, so it's easy to test without a watch or car.

RyanKoech commented 9 months ago

Thanks, @mchowning. I have also seen some xml layouts have car and app variants. Is there a specific way car and mobile layouts are handle in jetpack compose? Maybe an example if any could help too.

RyanKoech commented 8 months ago

Hello Team. Put up a PR. Kindly review.

kevinjoramos commented 6 months ago

If it's okay with everyone, I'll start working on converting the ChangePwdFragment to compose.

Generally, I'll approach this by following RyanKoech's implementation of the ChangeEmailFragment.

mchowning commented 6 months ago

👍 Sounds good @kevinjoramos ! Thanks!