Activity Indicator: Remove branching of SwiftUI views to improve performance and readability #1957
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Platforms Impacted
Description of changes
Using conditional branching in SwiftUI views leads to performance issues as explained here in this WWDC video.
In
ActivityIndicator
, theView.modifyIf
method is used multiple times which results in conditional branching of SwiftUI views. They cause performance issues and are not so easy to read. They can be easily avoided as shown in the changes.Ideally, I would prefer that
modifyIf
extension is removed and condition branching of SwiftUI views is done explicitly so that developers can be easily made aware of its performance issues.Binary change
Total increase: 0 bytes
Total decrease: -42,168 bytes
Full breakdown
Verification
Tested the demo app to ensure to no change in the ActivityIndicator's behaviour. It still appears and runs the same.
Visual Verification
Pull request checklist
This PR has considered:
Microsoft Reviewers: Open in CodeFlow