Feature/kuba nowakowski/home preload#73218
Conversation
Codecov Report❌ Patch coverage is
... and 73 files with indirect coverage changes 🚀 New features to boost your workflow:
|
|
@linhvovan29546 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
I'm just testing on the iOS simulator, it seems faster when switching between the |
|
@WojtekBoman What were the issues due to which we did not enable it in a first place? I think there were some blockers, are those all addressed here? Can we add the tests steps to the PR? @Ollyws Since you had been reviewing the original preloading feature, can you continue the review here please |
|
@sumo-slonik can you please leave performance metrics comparing before and after using the heavy copilot account SWM got access to (cc @blazejkustra) Lets please do that on all performance PRs to compare the before and after with numbers |
|
🚧 @mountiny has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪
|
While testing this PR, it seems that I’ve managed to get through the bugs that appeared earlier. Later today I’ll also add to the test steps the scenarios from the issues that were problematic before, and link the related bug issues. |
Today I worked all day on the search tab preload, and I ran into a few issues that I wanted to tackle fresh. I’ll take care of them first thing tomorrow morning. |
|
@mountiny As I mentioned earlier, the performance gain from the preload is best illustrated in the attached recording, the profiler results don’t fully reflect the actual improvement. Here are the averaged results from several attempts: main| account → inbox: 2.09s with preload enabled| account → inbox: 0.47s I’ve attached a slow-motion video for clarity. main_1.mp4 |
|
@aimane-chnaif please go ahead with the review |
|
Testing all these regressions which were fixed by disable preloading for Inbox and Reports tabs:
Result: not reproducible 69741.mov69812.mov69816.mov |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppandroid.movAndroid: mWeb Chromemchrome.moviOS: HybridAppios.moviOS: mWeb Safariios.movMacOS: Chrome / Safarimsafari.mov |
|
Performance comparison: comparison.mov |
src/libs/Navigation/AppNavigator/usePreloadFullScreenNavigators.ts
Outdated
Show resolved
Hide resolved
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.2.42-0 🚀
|
|
🚀 Deployed to production by https://github.com/luacmartins in version: 9.2.42-11 🚀
|
Explanation of Change
Adding a preload mechanism to the inbox tab, which improves the user experience when switching between tabs.
main.mp4
Fixed Issues
$ #72122
$ #71587
PROPOSAL:
Tests
Test Steps:
2.1. Reports
2.2. Workspaces (including opening a specific workspace view and selecting a report that redirects to the Inbox)
2.3. Account
From each of these tabs, go to the Inbox tab.
Expected Result:
Offline tests
unnesesary
QA Steps
same as test
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: mWeb Chrome
Screen.Recording.2025-10-23.at.10.08.15.mov
iOS: Native
branch.mov
iOS: mWeb Safari
Screen.Recording.2025-10-23.at.09.53.02.mov
MacOS: Chrome / Safari
Screen.Recording.2025-10-22.at.15.11.29.mov
MacOS: Desktop
Screen.Recording.2025-10-23.at.10.13.51.mov