

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# CLAUDE.md23This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.45## Documentation67You can find the complete documentation for this project in the `docs/` directory. It describes the architecture, build system, development practices and more in detail the the project.89There is also a minimal, LLM-friendly version of the documentation in `README-LLM.md`. You can refer to the file if you need a quick overview of the project without going through the entire documentation.1011## Build and Development Commands1213### Primary Build System14This project uses **Fastlane** for primary build automation. Key commands:1516```bash17# Install dependencies18bundle install1920# Run all tests across platforms (iOS, macOS, tvOS, watchOS)21bundle exec fastlane tests2223# Run specific platform tests24bundle exec fastlane test destination:"platform=iOS Simulator,name=iPhone 16"2526# Build for specific platform27bundle exec fastlane build destination:"platform=iOS Simulator,name=iPhone 16"2829# Lint CocoaPods spec and Swift Package Manager30bundle exec fastlane lint31```3233### Release Process34```bash35# Full release workflow (tests, linting, versioning, GitHub release, CocoaPods push)36bundle exec fastlane release version:X.X.X37```3839## Architecture Overview4041@docs/architecture.md4243Kingfisher is a modular image loading and caching library with clear separation of concerns:4445### Core Components Flow461. **KingfisherManager** (`Sources/General/KingfisherManager.swift`) - Central coordinator472. **ImageDownloader** (`Sources/Networking/ImageDownloader.swift`) - Network layer483. **ImageCache** (`Sources/Cache/ImageCache.swift`) - Dual-layer caching (memory + disk)494. **ImageProcessor** (`Sources/Image/ImageProcessor.swift`) - Image transformation pipeline5051### Key Architectural Patterns52- **Protocol-oriented design** with `KingfisherCompatible` protocol53- **Namespace wrapper pattern** - All functionality accessed via `.kf` property54- **Builder pattern** - `KF.url()...` method chaining55- **Options pattern** - `KingfisherOptionsInfo` for configuration5657### Module Structure58```59Sources/60├── General/ # Core managers, options, data providers61├── Networking/ # Download, prefetch, session management62├── Cache/ # Multi-layer caching system63├── Image/ # Processing, filters, formats, transitions64├── Extensions/ # UIKit/AppKit/SwiftUI integration65├── SwiftUI/ # SwiftUI-specific components66├── Utility/ # Helper utilities and extensions67└── Views/ # Custom UI components68```6970### Integration Points71- **UIKit**: Extensions for `UIImageView`, `UIButton` via `.kf` namespace72- **SwiftUI**: `KFImage` and `KFAnimatedImage` components73- **Cross-platform**: Extensive conditional compilation for iOS/macOS/tvOS/watchOS/visionOS7475## Platform Support76- **UIKit/AppKit**: iOS 13.0+ / macOS 10.15+ / tvOS 13.0+ / watchOS 6.0+ / visionOS 1.0+77- **SwiftUI**: iOS 14.0+ / macOS 11.0+ / tvOS 14.0+ / watchOS 7.0+ / visionOS 1.0+78- **Swift**: 5.9+ (with Swift 6 strict concurrency support)7980## Testing8182### Test Structure83- **Location**: `Tests/KingfisherTests/`84- **Framework**: XCTest with custom `KingfisherTestHelper`85- **Network mocking**: Uses Nocilla dependency for HTTP stubbing86- **Test assets**: `dancing-banana.gif`, `single-frame.gif`8788### Running Tests89```bash90# All platforms (preferred)91bundle exec fastlane tests9293# Single platform via destination94bundle exec fastlane test destination:"platform=iOS Simulator,name=iPhone 15"95```9697## Documentation System9899Provides a DocC-based documentation for framework users:100101- **DocC integration** with comprehensive tutorials and API docs102- **Location**: `Sources/Documentation.docc/`103- **Online**: Swift Package Index hosted documentation104- **Tutorials**: Both UIKit and SwiftUI getting started guides available
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| vllm-project/vllmAGENTS.md · 89k | AGENTS.md | setuptestlint-formatstyle+5 | 100/100 | 14 days ago | |
| duckduckgo/content-scope-scriptsspecial-pages/AGENTS.md · 70 | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| TryGhost/Ghoste2e/AGENTS.md · 55k | AGENTS.md | setupteststylearch+2 | 100/100 | today | |
| deepseek-ai/deepseek-harnessnative/landlock-run/AGENTS.md · 104k | AGENTS.md | setupteststylearch+3 | 100/100 | today | |
| aaif-goose/gooseAGENTS.md · 53k | AGENTS.md | setupbuildtestlint-format+7 | 100/100 | 8 days ago | |
| n8n-io/n8npackages/@n8n/agents/AGENTS.md · 201k | AGENTS.md | buildteststylearch+3 | 100/100 | 14 days ago | |
| code-yeongyu/oh-my-openagentpackages/web/AGENTS.md · 68k | AGENTS.md | setupbuildtestlint-format+6 | 100/100 | 13 days ago | |
| mui/material-uiAGENTS.md · 99k | AGENTS.md | setupbuildtestlint-format+9 | 100/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/onevcat-kingfisher-agents)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.