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

[Fabric] IOS - Log in - App flickers when open it #16799

Closed
1 of 6 tasks
kbecciv opened this issue Mar 31, 2023 · 9 comments
Closed
1 of 6 tasks

[Fabric] IOS - Log in - App flickers when open it #16799

kbecciv opened this issue Mar 31, 2023 · 9 comments
Assignees

Comments

@kbecciv
Copy link

kbecciv commented Mar 31, 2023

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Action Performed:

  1. Close the NewDot app.
  2. Open NewDot app
  3. Put your credentials
  4. Close the app and re-open the app

Expected Result:

App is not flickering when open it

Actual Result:

App flickers when open it

Workaround:

Unknown

Platforms:

Which of our officially supported platforms is this issue occurring on?

  • Android / native
  • Android / Chrome
  • iOS / native
  • iOS / Safari
  • MacOS / Chrome / Safari
  • MacOS / Desktop

Version Number: 1.2.88.0

Reproducible in staging?: NO

Reproducible in production?:

If this was caught during regression testing, add the test name, ID and link from TestRail:

Email or phone of affected tester (no customers):

Logs: https://stackoverflow.com/c/expensify/questions/4856

Notes/Photos/Videos: Any additional supporting documentation

Bug5999778_flash_ios.mp4

Expensify/Expensify Issue URL:

Issue reported by: Applause - Internal Team

Slack conversation:

View all open jobs on GitHub

@kbecciv kbecciv added Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Mar 31, 2023
@MelvinBot
Copy link

Triggered auto assignment to @tjferriss (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

@MelvinBot
Copy link

Bug0 Triage Checklist (Main S/O)

  • This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
  • This bug is not a duplicate report (check E/App issues and #expensify-bugs)
    • If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead
  • This bug is reproducible using the reproduction steps in the OP. S/O
    • If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
    • If the reproduction steps aren't clear and you determine the correct steps, please update the OP.
  • This issue is filled out as thoroughly and clearly as possible
    • Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.
  • I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

@kbecciv kbecciv assigned roryabraham and unassigned tjferriss Mar 31, 2023
@kbecciv kbecciv removed Daily KSv2 Bug Something is broken. Auto assigns a BugZero manager. labels Mar 31, 2023
@melvin-bot melvin-bot bot added the Monthly KSv2 label Apr 4, 2023
@j-piasecki
Copy link
Contributor

Hi! I'll be working on this issue.

1 similar comment
@WoLewicki
Copy link
Contributor

Hi! I'll be working on this issue.

@WoLewicki
Copy link
Contributor

This issue seems to be the result of two separate issues, first being Bootsplash library not working on Fabric, so it does not disappear only after the content is ready, which has been fixed with 36a6ff5 (#13767). Second was the jumping caused by the avatar image rendering only after the onyx state is resolved. While it was loading, null is rendered by onyx, and the style of the whole element depends on the style of AvatarWithIndicator component. Since it changes from null to a view with height: 40, the whole header gets bigger height and the content below jumps a bit.
We believe it should not be like that. The placeholder for the image should be visible from the beginning since it does not use any of the onyx data. We moved the part that uses onyx to the separate Indicator component and it works just fine then: 8a3b24f (#13767). wdyt @mountiny @roryabraham @AndrewGable ?

As a side note, this was not visible on the old arch, but we are not sure why. Maybe because the rerenders are batched more often then and the state with null instead of content does not render, or maybe we just did not spot such case and it is an issue there too.

@mountiny
Copy link
Contributor

I think that sounds as a good solution and also great investigation @WoLewicki

@roryabraham
Copy link
Contributor

Yeah, that sounds like a good solution.

While it was loading, null is rendered by onyx

This is a bit of a separate conversation, but I've recently been thinking we should change Onyx to remove that behavior and just make subscribers responsible for handling when the data is not present. The only trick is that it's not easy to tell the difference between "data not read yet" and "data not present", but I'm not sure if that really matters.

This would also enable us to make a useOnyx hook, which we can't necessarily do without breaking this behavior of rendering null while data is being loaded.

@j-piasecki
Copy link
Contributor

No longer flickering when building the app from the current (WoLewicki@e12c1cf) andrew-fabric branch:

ios-startup.mov

@melvin-bot
Copy link

melvin-bot bot commented Sep 4, 2023

@j-piasecki, @WoLewicki, this Monthly task hasn't been acted upon in 6 weeks; closing.

If you disagree, feel encouraged to reopen it -- but pick your least important issue to close instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

No branches or pull requests

7 participants