Goal
Remove the two temporary file_length exceptions introduced with SwiftLint by refactoring the oversized files below the 800-line project limit.
Current files:
ComputerSolitaire/Views/Shared/ContentView.swift — approximately 1,523 lines. It currently coordinates board layout, interaction, animation, lifecycle, and persistence.
ComputerSolitaire/Views/Cards/Styles/PixelCardViews.swift — approximately 910 lines. It currently contains both the static pixel-art sprite catalog and rendering code.
Desired outcome
Split each file along stable ownership boundaries while preserving behavior and keeping the architecture easy to navigate. Extracted types must live in appropriate feature or domain locations; do not create catch-all support files or place non-view responsibilities in a views folder.
Goal
Remove the two temporary
file_lengthexceptions introduced with SwiftLint by refactoring the oversized files below the 800-line project limit.Current files:
ComputerSolitaire/Views/Shared/ContentView.swift— approximately 1,523 lines. It currently coordinates board layout, interaction, animation, lifecycle, and persistence.ComputerSolitaire/Views/Cards/Styles/PixelCardViews.swift— approximately 910 lines. It currently contains both the static pixel-art sprite catalog and rendering code.Desired outcome
Split each file along stable ownership boundaries while preserving behavior and keeping the architecture easy to navigate. Extracted types must live in appropriate feature or domain locations; do not create catch-all support files or place non-view responsibilities in a views folder.