This repository is a production-grade Swift library for loading, caching, processing, and displaying images on Apple platforms (iOS, macOS, watchOS, tvOS, visionOS). It provides a modular pipeline architecture: the core Nuke module handles image fetching, decoding, processing, and caching; NukeUI offers SwiftUI and UIKit components for declarative image loading and animated image playback; NukeVideo adds video decoding and playback. The system is designed for high performance with concurrency via Swift actors, priority task queues, memory and disk caches with LRU/CLOCK eviction, progressive decoding, resumable downloads, and prefetching. Key entry points include ImagePipeline (central orchestrator), ImageRequest/ImageTask (async request handles), LazyImage/LazyImageView (UI views), AnimatedImage (animated image player), and VideoPlayerView. Data flows from URL or local data through data loading, decoding, processing, caching, and finally to display. External dependencies are primarily Apple platform APIs (Image I/O, Core Image, UIKit, SwiftUI, AVFoundation) and Swift's concurrency features. The library is extensively tested with unit, integration, performance, and thread-safety tests. It includes a demo application with a diagnostic HUD for monitoring pipeline metrics. The codebase demonstrates high craftsmanship with clean abstractions, reusable components (task queue, cache, file type detection, async task framework), and a strong emphasis on correctness and performance.
rules_ios is a Bazel rule set for building Apple platform applications (iOS, macOS, tvOS, watchOS). It provides rules for creating apps, frameworks, extensions, app clips, tests, and handling Apple-specific complexities like code signing, resource bundling, and multi-architecture support. The repository integrates with rules_apple and rules_swift, offering a Bazel-native alternative to Xcode builds. Key features include automatic handling of Apple Silicon compatibility via import_middleman, VFS overlays for faster builds, and comprehensive test generation. The tooling directory contains utilities like arm64-to-sim for running arm64 binaries in x86_64 simulators and SSH password helpers for VM-based testing.
This repository serves as the source for a GitHub Pages site that publishes technical notes and learning resources under the 'Today I Learned' (TIL) format. It contains organized markdown files covering a wide range of software development topics, with particular emphasis on Apple platforms (iOS, macOS, etc.), but also including general programming, software practices, and other technical subjects. The site is built and deployed using GitHub Actions, with a simple Makefile automating the commit and push process for updating notes. The architecture is a straightforward static site where markdown content is converted to HTML by GitHub Pages. While primarily a content repository, it does contain reusable components such as a specific iOS universal links handling code snippet and automation patterns for repository maintenance.