Skip to content

Add animation codable support and display list effects#849

Merged
Kyle-Ye merged 8 commits intomainfrom
feature/view_updater_animation
Apr 4, 2026
Merged

Add animation codable support and display list effects#849
Kyle-Ye merged 8 commits intomainfrom
feature/view_updater_animation

Conversation

@Kyle-Ye
Copy link
Copy Markdown
Collaborator

@Kyle-Ye Kyle-Ye commented Apr 4, 2026

Changes

  • New Codable Animation Types: Introduced CodableAnimation struct to handle protobuf encoding/decoding of animation objects with support for bezier, spring, fluid spring, delay, repeat, and speed modifiers

  • Effect Animation System: Added CodableEffectAnimation and DisplayListAnimations module with support for:

    • Offset, scale, rotation, and opacity animations
    • EffectAnimation protocol for animatable effect values
    • EffectAnimator for frame-by-frame evaluation
  • Protocol Refactoring:

    • Moved EncodableAnimation protocol definition to CustomAnimation.swift
    • Updated _DisplayList_AnyEffectAnimation to use CodableEffectAnimation.Tag
    • Made animation modifiers (DelayAnimation, SpeedAnimation) package-scoped
  • Test Coverage: Added comprehensive protobuf encoding/decoding tests for:

    • CodableAnimationTests: All animation types and modifiers
    • CodableEffectAnimationTests: All effect animation types
    • CodableEffectAnimationDualTests: SwiftUI compatibility tests
  • Test Infrastructure: Enhanced ProtobufTestHelper to support non-Equatable types through re-encoding validation

@Kyle-Ye Kyle-Ye marked this pull request as ready for review April 4, 2026 06:37
@github-actions github-actions bot added enhancement New feature or request test Test related issue RenderEffect labels Apr 4, 2026
@codecov
Copy link
Copy Markdown

codecov bot commented Apr 4, 2026

Codecov Report

❌ Patch coverage is 71.12299% with 54 lines in your changes missing coverage. Please review.
✅ Project coverage is 27.19%. Comparing base (76c61a9) to head (17994e8).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...ore/Render/DisplayList/DisplayListAnimations.swift 36.76% 43 Missing ⚠️
...Animation/Animation/Codable/CodableAnimation.swift 94.23% 3 Missing ⚠️
...ion/Animation/Codable/CodableEffectAnimation.swift 89.28% 3 Missing ⚠️
...iftUICore/Animation/Animation/DelayAnimation.swift 0.00% 2 Missing ⚠️
.../Animation/Animation/CustomAnimationModifier.swift 50.00% 1 Missing ⚠️
...iftUICore/Animation/Animation/SpeedAnimation.swift 0.00% 1 Missing ⚠️
...Core/Render/DisplayList/DisplayListViewCache.swift 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #849      +/-   ##
==========================================
+ Coverage   26.53%   27.19%   +0.65%     
==========================================
  Files         671      673       +2     
  Lines       44009    44166     +157     
==========================================
+ Hits        11676    12009     +333     
+ Misses      32333    32157     -176     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Kyle-Ye Kyle-Ye merged commit c4fcb72 into main Apr 4, 2026
9 checks passed
@Kyle-Ye Kyle-Ye deleted the feature/view_updater_animation branch April 4, 2026 07:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request RenderEffect test Test related issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant