Skip to content

Add animation codable support and display list effects - #849

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

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

Conversation

@Kyle-Ye

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

Copy link
Copy Markdown
Member

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
@codecov

codecov Bot commented Apr 4, 2026

Copy link
Copy Markdown

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
@Kyle-Ye Kyle-Ye added area: animation Animation, transitions, transactions, or timing behavior. area: rendering DisplayList, render backends, renderer hosts, drawing, and effects. area: tests Test suites, UI tests, fixtures, snapshots, and test support code. type: feature New API, behavior, platform support, or user-facing capability. type: tests Test coverage, test infrastructure, snapshots, or test-only changes. labels May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: animation Animation, transitions, transactions, or timing behavior. area: rendering DisplayList, render backends, renderer hosts, drawing, and effects. area: tests Test suites, UI tests, fixtures, snapshots, and test support code. type: feature New API, behavior, platform support, or user-facing capability. type: tests Test coverage, test infrastructure, snapshots, or test-only changes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant