Expensify / App

Welcome to New Expensify: a complete re-imagination of financial collaboration, centered around chat. Help us build the next generation of Expensify by sharing feedback and contributing to the code.
https://new.expensify.com
MIT License
3.5k stars 2.85k forks source link

[Native Share] Implement Native Share for IOS #48788

Open grgia opened 1 month ago

grgia commented 1 month ago

Description

This is a tracking issue for the IOS implementation of the Native Share project. This section of the project will be handled separately but merged alongside the Android issue.

Project

https://docs.google.com/document/d/14C1VifxvIXeyLAf0XstbC-wvyAb5SQZ0AOw0-jLRyZs/edit

Tracking

https://github.com/Expensify/App/issues/36613

Issue OwnerCurrent Issue Owner: @BrtqKr
BrtqKr commented 1 month ago

Hey, I'm from SWM, I'd like to take care of this issue.

melvin-bot[bot] commented 1 month ago

@grgia, @BrtqKr Whoops! This issue is 2 days overdue. Let's get this updated quick!

melvin-bot[bot] commented 1 month ago

@grgia, @BrtqKr 6 days overdue. This is scarier than being forced to listen to Vogon poetry!

melvin-bot[bot] commented 1 month ago

@grgia, @BrtqKr 8 days overdue is a lot. Should this be a Weekly issue? If so, feel free to change it!

melvin-bot[bot] commented 1 month ago

@grgia, @BrtqKr 10 days overdue. Is anyone even seeing these? Hello?

grgia commented 1 month ago

Bumped for update / steps for unblocking permissions

BrtqKr commented 1 month ago

I am focusing on split navigation atm. I'll try to check the setup whenever it's applied and try to continue whenever the navigation is ready.

melvin-bot[bot] commented 1 month ago

@grgia, @BrtqKr Whoops! This issue is 2 days overdue. Let's get this updated quick!

BrtqKr commented 3 weeks ago

Taking care of this atm. I've checked the groups before the weekend and they seemed to work as expected.

BrtqKr commented 3 weeks ago

Working on the files processing - they are being saved correctly from the share extenbsion, but there's something wrong with retrieving them on the react native side. This might be something related to the permissions, but I'll try to confirm it tomorrow.

grgia commented 3 weeks ago

Thanks @BrtqKr- do you have a draft PR up for your branch?

BrtqKr commented 3 weeks ago

Not yet, wired it up though and the files are being passed to the react native wihthout any issues, so happily there's no need for the additional set-ups. I'll be verifying the scanning/sending with the passed files tomorrow, so this would probably be the initial version for the ios. I'll share more details next evening.

BrtqKr commented 3 weeks ago

Moving forward with that - wired up most of the js parts - I'll continue working on that and the files cleanup after sharing tomorrow

grgia commented 3 weeks ago

Sounds great, thanks @BrtqKr

BrtqKr commented 3 weeks ago

Still working on the JS part - today it was mostly persistence and onyx-related things, which are necessary for removing files - it's not done yet though

BrtqKr commented 3 weeks ago

Continued the topic from yesterday. I've found some edge cases about the cleanup part - there's an issue when the share attempt gets cancelled and the file isn't removed properly, but we can handle this by performing cleanups for the files older than a week. Besides I had to slightly modify the model for the image, but apply small updates to the doc when I'm sure everything works.

grgia commented 2 weeks ago

Great @BrtqKr, do you have an idea for when we might be able to get this into the review stage?

BrtqKr commented 2 weeks ago

@grgia, I've finished wiring up the core version for the ios today. Also, @filip-solecki mentioned that there wasn't much left regarding the Android native part, so I'd say that the remaining things before the PR would be:

  1. Adjust the data format on Android to match the ios (I had to slightly change the format to handle some cases on the react-native side)
  2. Finish the file removal
  3. Adjust the display for the files
  4. Pass to @staszekscp and @war-in to apply the hybrid app-related changes and test it properly

The first three points shouldn't take much time since those are just the follow-ups to the already existing parts (the second point is a bit troublesome to test though). I'm not sure about the fourth point. As long as everything goes as expected on the hybrid part we should be able to send the final version sometime at the beginning the next week, but this is something @staszekscp or @war-in would need to estimate when they start applying the changes.

https://github.com/user-attachments/assets/5c5bfd4a-4b0e-4537-94d5-cefc8d6b3cca

filip-solecki commented 2 weeks ago

Hi! Quick update - I took the issue from @BrtqKr and I'll work on both right now as JS part will be shared for both Android and iOS

melvin-bot[bot] commented 2 weeks ago

@grgia, @BrtqKr Whoops! This issue is 2 days overdue. Let's get this updated quick!

grgia commented 1 week ago

@BrtqKr This update looks great, thank you! Cool to see this start to take form

grgia commented 1 week ago

Hi! Quick update - I took the issue from @BrtqKr and I'll work on both right now as JS part will be shared for both Android and iOS

@filip-solecki great, could you give me an update of where you're at with this for the week?

grgia commented 1 week ago

Also @filip-solecki (cc @BrtqKr ) do you have a rough ETA for when we can get the PR up for these?

filip-solecki commented 1 week ago

Hi! Still working on Submit page which is a little bit tricky as it combines a lot of logic. I am going to be OOO from tomorrow till the end of the week, so the realistic ETA for PR is Wednesday/Thursday of the next week, maybe earlier(Monday/Tuesday) if there will be someone available to continue current work

cdOut commented 1 week ago

Hi, since Filip is going to be OOO for the rest of this week I'll be taking over the share flow tasks for that timeframe.

cdOut commented 1 week ago

Hey, quick update. I've got into the project and finished the Submit flow for IOS. I've also fixed the issue with the images sometimes not displaying properly on the receipt page. I'm now looking into merging the Android branch for the native share flow into the IOS one to consolidate it into one.

melvin-bot[bot] commented 1 week ago

@grgia, @BrtqKr, @filip-solecki Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

grgia commented 5 days ago

@cdOut @filip-solecki Could you post a current update?

filip-solecki commented 4 days ago

Sure, @cdOut is fixing image displaying issues which happen sometimes and he also finished Submit flow so we have to finish Android and merge it here and we can push it to review and tests and adjust it later to HybridApp

melvin-bot[bot] commented 2 days ago

@grgia, @BrtqKr, @cdOut, @filip-solecki 6 days overdue. This is scarier than being forced to listen to Vogon poetry!