SDWebImage/SDWebImageSwiftUI
64.7
Adequate · 30 September 2026
2.7k
lines of production code
Swift
primary language
2
measurements over time
What this system is
SDWebImageSwiftUI is a Swift library that provides SwiftUI-compatible views for loading, caching, and displaying images from URLs. It offers specialized components like AnimatedImage for handling static and animated formats, alongside WebImage for standard image loading with progress tracking and placeholder support. The system integrates with the underlying SDWebImage core for decoding and caching, while exposing convenient APIs for indicators, transitions, and animation controls across Apple platforms.
Features
Add macOS, tvOS, and watchOS demo applications
The Example project now includes dedicated demo applications for macOS, tvOS, and watchOS, in addition to the existing iOS demo. These new targets allow users to preview and test the library's capabilities across all Apple platforms, including support for vector images (SVG, PDF) and animated formats on these devices.
Example · high confidence
Convenient SwiftUI transition APIs with duration support
The library now provides convenient static properties and methods on SwiftUI's \AnyTransition\ to simplify image transition usage. Users can apply standard transitions like \.fade\, \.flipFromLeft\, \.flipFromRight\, \.flipFromTop\, and \.flipFromBottom\ directly. Additionally, each transition now supports an optional \duration\ parameter (e.g., \.fade(duration: 0.5)\) that applies an ease-in-out animation, allowing for smoother and more controlled visual effects when images appear or disappear.
SDWebImageSwiftUI/Classes/Transition · high confidence
Initial release of SDWebImageSwiftUI with AnimatedImage and WebImage views
This change introduces the SDWebImageSwiftUI library, providing SwiftUI-compatible views for image loading and animation. It adds \AnimatedImage\ for displaying static and animated images (including GIFs) with support for custom placeholders, animation control bindings, and advanced playback options like loop count and buffer size. It also adds \WebImage\, a view for loading images from URLs that supports progress tracking, success/failure callbacks, and placeholder views. The implementation includes platform-specific wrappers (\AnimatedImageViewWrapper\) to handle intrinsic content sizing and layout correctly across iOS, macOS, tvOS, and watchOS, and relies on the \SDWebImage\ core library for caching and decoding.
SDWebImageSwiftUI/Classes · high confidence
New SwiftUI indicator API with progress support
The library introduces a new \Indicator\ struct and \IndicatorViewModifier\ that allow users to display loading states using SwiftUI's \ProgressView\. This new API supports both simple activity indicators and progress indicators with a \Double\ progress value, replacing the previous legacy \ActivityIndicator\ and \ProgressIndicator\ implementations. The feature is available for iOS 14+, macOS 11+, tvOS 14+, and watchOS 7+.
SDWebImageSwiftUI/Classes/Indicator · high confidence
Xcode project restructured to support visionOS and Carthage
The SDWebImageSwiftUI Xcode project has been reorganized to add support for the visionOS platform and to enable building via Carthage. This change introduces separate build configurations and framework targets for iOS, macOS, tvOS, watchOS, and visionOS, ensuring that the SDWebImage dependency is weakly linked rather than embedded, which resolves issues with framework duplication. Additionally, a privacy manifest file has been added to the project resources to comply with Apple's privacy requirements.
SDWebImageSwiftUI.xcodeproj · high confidence
Behavioural changes
Added shared Xcode schemes for macOS, tvOS, watchOS, and visionOS
Shared Xcode schemes are now included for the macOS, tvOS, watchOS, and visionOS targets, enabling these platforms to be built, tested, and archived directly from the Xcode project file.
SDWebImageSwiftUI.xcodeproj/xcshareddata · high confidence
Removal of placeholder file in Assets directory
The .gitkeep placeholder file in the SDWebImageSwiftUI/Assets directory has been removed. This change resolves a pathing issue related to privacy information, ensuring the Assets directory structure is correctly configured for the library's resource handling.
SDWebImageSwiftUI/Assets · medium confidence
SDWebImageSwiftUI module version updated to 3.1.4
The SDWebImageSwiftUI module's Info.plist has been updated to set the short version string to 3.1.4. This change reflects the current release version of the library, ensuring that applications linking against this module report the correct version information.
SDWebImageSwiftUI/Module · high confidence
Updated workspace configuration to use CocoaPods for test cases
The project workspace has been reconfigured to manage test cases via CocoaPods instead of Carthage. This change updates the workspace file to reference the example Xcode project, aligning the development environment with the CocoaPods dependency management strategy.
SDWebImageSwiftUI.xcworkspace · medium confidence
Fixes
Added PrivacyInfo.xcprivacy manifest to SDWebImageSwiftUI
A new PrivacyInfo.xcprivacy file has been added to the SDWebImageSwiftUI resources. This manifest declares that the library does not track users, does not access restricted APIs, and does not collect or transmit data to tracking domains, ensuring compliance with Apple's App Tracking Transparency and privacy manifest requirements.
SDWebImageSwiftUI/Resources · high confidence
Test coverage
Added unit tests for AnimatedImage, WebImage, and ImageManager
New unit tests have been added to the Tests directory to verify the behavior of the AnimatedImage and WebImage components, as well as the ImageManager. Using ViewInspector, the tests cover initialization via name, data, and URL, binding updates for animation control, modifier application (such as indicators and transitions), and caching behaviors including memory cache hits and misses. The suite also includes tests for EXIF orientation handling and platform-specific view inspection on iOS and macOS.
Tests · high confidence
Dependencies
Release v3.1.4 with Xcode 26 compliance and SDWebImage 5.21.1 upgrade
This release updates the SDWebImage dependency to version 5.21.1 to ensure compatibility with Xcode 26. The CHANGELOG.md has been updated to document this change, and the Carthage Cartfile has been adjusted to reflect the new dependency version. Additionally, a carthage.sh script was added to handle Xcode 12+ architecture exclusions for simulators, and CI configuration (.travis.yml) and documentation (README.md) were updated to support modern build environments and visionOS.
(repo-wide) · high confidence
SDWebImageSwiftUI v3.1.4 release with platform updates and dependency bump
This release updates the SDWebImageSwiftUI package to version 3.1.4, raising the minimum deployment targets to iOS 14, macOS 11, tvOS 14, and watchOS 7, while adding support for visionOS 1.0. The underlying SDWebImage dependency is upgraded to version 5.21.1, and the package now includes a privacy manifest resource. Additionally, the project structure was updated to support Swift Package Manager via a new Package.swift and Package.resolved file, and the CocoaPods configuration was adjusted to use the main SDWebImage organization repository.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 64 → 65 (+0.8)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 97 → 96 (-0.6)
- Architecture 80 → 94 (+14.2)
- Maturity 55 → 55 (+0.0)
- Readiness 67 → 71 (+3.8)
- Security 64 → 64 (+0.0)
Resolved (3)
- Documentation: no architecture or design documentation (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
New (8)
- Coverage not measured — Swift suite
- Duplicated block (11 lines × 3) (Example/SDWebImageSwiftUIDemo/ContentView.swift)
- Duplicated block (17 lines × 2) (SDWebImageSwiftUI/Classes/Image.swift)
- Duplicated block (8 lines × 2) (SDWebImageSwiftUI/Classes/AnimatedImage.swift)
- Inconsistent callback naming convention. The View-based API uses 'onSuccess' (and onFailure/onProgress), while the Manager-based API uses 'setOnSuccess' (and setOnFailure/setOnProgress). The 'set' prefix is redundant and inconsistent with the declarative style of the View API.
- Inconsistent indicator API design. AnimatedImage exposes a low-level SDWebImageIndicator type directly, while WebImage exposes a high-level, SwiftUI-native Indicator type with a builder closure. This forces developers to use different patterns for similar functionality depending on which component they choose.
- Outdated: sdwebimage
- WebImage.body (cognitive 17) (SDWebImageSwiftUI/Classes/WebImage.swift)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
SDWebImage/SDWebImageSwiftUI was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 30 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit d1f7b2b48ef9dfbcea42c27dccff55f3eac5a28f — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-cb25ca4feafa.