Commit Graph

12 Commits

Author SHA1 Message Date
Arkadiusz Fal
be4e1adb9b Fix all SwiftLint violations across codebase
Resolves 130+ violations including deployment target checks, code style issues, and formatting inconsistencies. Adds SwiftLint disable comments for compiler-required availability checks while maintaining deployment target compliance.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:35 +01:00
Arkadiusz Fal
f4d4daccd0 Optimize SwiftUI performance throughout the app
This commit addresses multiple SwiftUI performance bottlenecks identified
through code analysis, focusing on view rendering efficiency, list
performance, and memory usage optimization.

Key improvements:

- HomeView: Optimize async task management using structured concurrency
  with async let to handle multiple Defaults updates in a single task

- VideoCell: Remove GeometryReader from VideoCellThumbnail to eliminate
  layout thrashing; change @ObservedObject to computed property for shared
  ThumbnailsModel

- ThumbnailView: Cache URL extension computation in init() instead of
  recalculating on every body evaluation

- FavoriteItemView: Replace filter().prefix() with early-exit loop and
  capacity reservation for significant performance gain on large lists

- ContentItemView: Optimize FetchRequest creation with direct predicate
  construction only for video items, empty predicate for others

- VideoPlayerView: Fix playerSize didSet trigger by moving
  updateSidebarQueue() calls to explicit onChange/onAppear handlers

- FeedView: Replace .unique() with Set-based deduplication for O(n)
  performance and reduced allocations

- VerticalCells: Remove expensive sorting on every redraw; items should
  be pre-sorted from source

These optimizations follow SwiftUI best practices by minimizing expensive
computations in view bodies, caching computed values, using efficient data
structures, and avoiding unnecessary redraws and layout passes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:14:35 +01:00
Arkadiusz Fal
94915b0496 Revert "Drop iOS 14 and macOS 11 support"
This reverts commit dcef7f47ff.
2023-10-15 13:35:23 +02:00
Arkadiusz Fal
dcef7f47ff Drop iOS 14 and macOS 11 support 2023-07-24 19:45:30 +02:00
Arkadiusz Fal
71a3d54201 Always use WebImage with Piped 2023-02-05 14:24:17 +01:00
Arkadiusz Fal
52f96c3837 Fix thumnbnail placeholders 2023-02-05 14:24:16 +01:00
Arkadiusz Fal
9f3a94137c Fix thumbnail view 2023-02-05 14:24:13 +01:00
Arkadiusz Fal
5054f828de Use CachedAsyncImage if possible 2023-02-05 14:24:13 +01:00
Arkadiusz Fal
d5626b877c Don't observe thumbnails model in thumbnails view 2023-02-05 14:24:10 +01:00
Arkadiusz Fal
e3daa738ce Fix thumbnails 2023-02-05 14:24:08 +01:00
Arkadiusz Fal
5e0f13cace Subscribed channels list in tab navigation 2023-02-05 14:24:08 +01:00
Arkadiusz Fal
7ba743afbc Use ImageManager of SDWebImageSwiftUI 2023-02-05 14:24:07 +01:00