nathantannar4/Transmission
52.3
Weak · 1 October 2026
31.1k
lines of production code
Swift
primary language
2
measurements over time
What this system is
Transmission is a SwiftUI library that provides advanced view presentation and navigation capabilities for iOS, macOS, tvOS, watchOS, and visionOS. It enables developers to implement complex, gesture-driven transitions such as sheets, popovers, cards, toasts, and matched-geometry zooms through a declarative API. The system manages the underlying UIKit infrastructure to handle custom animations, corner radii, and interactive dismissal patterns while maintaining compatibility with modern Swift versions.
How it got here
2022 — iOS presentation infrastructure overhaul
8 changes.
The project refactored its iOS hosting and navigation infrastructure, replacing legacy components with new controllers and explicit callback systems for better rendering control. This overhaul involved removing custom presentation coordinators and consolidating dependencies, while simultaneously expanding UIKit extensions and SwiftUI integration. A comprehensive example app was added to demonstrate the new presentation and navigation patterns.
2023–2025 — iOS transition and navigation infrastructure
7 changes.
This period focused on building a comprehensive suite of SwiftUI components for iOS 14+, introducing new navigation and context menu elements alongside robust transition styling. The work established custom view controller animators and interactive presentation controllers to support diverse visual effects like zoom, slide, and matched geometry transitions. Additionally, Xcode scheme configurations were added to facilitate direct development and debugging of the example application.
Features
Added Xcode scheme for the Example app
A new Xcode scheme file (Example.xcscheme) has been added to the project, configuring build, test, launch, profile, analyze, and archive actions for the Example.app target. This enables developers to run, test, and debug the example application directly within Xcode using the specified build configurations and debugger settings.
Example/Example.xcodeproj/xcshareddata · high confidence
Example app adds new link and UI demonstration files
The Example project now includes source files for demonstrating various link behaviors and UI components, specifically: PresentationLinkExamples, UnevenCornerRadiiExamples, DestinationLinkExamples, WindowLinkExamples, ShareSheetLinkExamples, QuickLookPreviewLinkExamples, StatusBarAppearanceExamples, and DynamicIslandTransition. These files are registered in the Xcode project build settings and linked against the Transmission framework.
Example/Example.xcodeproj · high confidence
New custom view controller transition animations and infrastructure
This location introduces a new set of custom view controller transition animators for the Transmission library, allowing for more sophisticated presentation and dismissal animations. The diff adds implementations for cross-dissolve transitions with configurable corner radii, slide transitions supporting directional edges and opacity, and a complex matched-geometry transition that supports zoom effects and source-view scaling. These are wired through a new \ViewControllerTransition\ base class that integrates with SwiftUI's \AnyHostingController\ and provides interactive transition support via \UIPercentDrivenInteractiveTransition\. The entry also includes base classes for navigation and presentation controller transitions, establishing the infrastructure for these new visual behaviors.
Sources/Transmission/Sources/Transitions/View Controller Transitions · high confidence
New interactive presentation controllers for iOS
Added a suite of new presentation controllers for iOS 14+ that enable interactive, gesture-driven transitions for modals. This includes CardPresentationController for bottom-anchored cards with customizable corner radii and aspect ratios, SheetPresentationController for multi-detent sheets (large, medium, ideal) with depth tracking, MatchedGeometryPresentationController for zoom-style transitions from a source view, SlidePresentationController for edge-based slide-ins with optional scale effects, and ToastPresentationController for ideal-sized toasts. The update also introduces DelegatedPresentationController for delegate-based dismissal handling, FullScreenPresentationController for rotation-adaptive full-screen presentations, and PopoverPresentationController with custom dimming and passthrough view support.
Sources/Transmission/Sources/Transitions/Presentation Controllers · high confidence
New navigation and context menu components for iOS
Added a suite of SwiftUI components for iOS 14+ to manage view presentation and context menus. This includes \DestinationLink\ and \DestinationLinkModifier\ for pushing new views with customizable transitions (including asymmetric push/pop animations), \DestinationCoordinator\ for programmatic dismissal, \ContextMenuLink\ and \ContextMenuSourceViewLink\ for presenting context menus with previews and accessory views, and \AdaptiveColorSchemeModifier\ for dynamically adjusting the color scheme based on view luminance.
Sources/Transmission/Sources · high confidence
New navigation transition styles for DestinationLink
This location introduces five new presentation transition styles for DestinationLink: crossDissolve, matchedGeometry (including a zoom variant), push, slide, and zoom. These additions expand the available visual effects for navigating between views, allowing users to customize interactions with options such as corner radius adjustments, dimming colors, haptic feedback, and interactive pan gestures.
Sources/Transmission/Sources/Transitions/DestinationLink Transitions · high confidence
New presentation transition styles for PresentationLink
This location introduces a suite of new presentation transition styles for the \PresentationLink\ API, allowing users to customize how views are presented. The changes add dedicated transition implementations for card, cross-dissolve, matched geometry (including a zoom variant), popover, sheet, slide, toast, and zoom presentations. Each style is exposed via static properties and convenience initializers on \PresentationLinkTransition\, providing granular control over visual aspects such as corner radius, edge insets, dimming colors, haptics, and interactivity, while ensuring backward compatibility through fallbacks like \zoomIfAvailable\ for older iOS versions.
Sources/Transmission/Sources/Transitions/PresentationLink Transitions · high confidence
New sample app demonstrating Transmission presentation and navigation patterns
The Example app now includes a comprehensive set of SwiftUI views showcasing the Transmission library's capabilities. This includes interactive demos for PresentationLink (sheet, popover, fullScreen, slide, zoom, card, matchedGeometry, toast), DestinationLink (push, slide, zoom, matchedGeometry), WindowLink (background, overlay, alert levels), ShareSheetLink, and QuickLookPreviewLink. It also features a DynamicIslandTransition example and an UnevenCornerRadii demo that animates grid cells with independent corner rounding.
Example/Example · high confidence
New transition styling and configuration options
Added new configuration structs for customizing view transitions: CornerRadiusOptions (including CornerRadii, CornerCurve, and CornerMask) for precise control over corner shapes and masking; ShadowOptions for defining shadow appearance with presets like prominent and minimal; and ZoomTransitionOptions for configuring dimming colors, blur effects, and presenting view scaling behavior during zoom transitions.
Sources/Transmission/Sources/Transitions · high confidence
Removals
Removal of custom presentation and window management components
The \PresentationCoordinator\, \PresentationLinkAdapter\, \ShareSheetLink\, \TransitionReader\, and \WindowLinkAdapter\ components have been removed from the View layer. This eliminates the library's custom implementations for programmatic view dismissal, sheet/popover/fullscreen presentations, share sheets, interactive transition progress tracking, and multi-window presentations, meaning users can no longer use these specific modifiers or types to manage view presentation states.
Sources/Transmission/Sources/View · high confidence
Behavioural changes
Added Xcode workspace configuration for the Example project
The Example project now includes a dedicated Xcode workspace (Example.xcworkspace) containing the standard workspace data and IDE checks plist. This file was moved from the Swift Package Manager's internal .swiftpm directory to the project's official Xcode project structure, enabling the example app to be opened and managed directly within Xcode.
Example/Example.xcodeproj/project.xcworkspace · high confidence
Expanded UIKit extensions and navigation improvements
This update adds a suite of new Swift extensions for UIKit types—including CALayer, CGAffineTransform, CGPath, CGRect, EdgeInsets, UIAlertController, UIColor, UIContextMenuConfiguration, UIGestureRecognizer, UIPopoverPresentationController, UIScreen, UIScrollView, UISheetPresentationController, UITargetedPreview, UIViewControllerTransitionZoomOptions, UINavigationController, UIView, UIViewController, and UIWindow—providing helpers for corner radii, gesture recognition, sheet detents, and view hierarchy traversal. It also refactors UINavigationController and UIViewController to support batched pop/dismiss operations with completion callbacks, improves navigation bar and tab bar interaction re-enabling during transitions, and updates UIWindow presentation and dismissal to use SwiftUI-style Animation parameters instead of raw boolean flags.
Sources/Transmission/Sources/Extensions · high confidence
New UI utilities and refactored presentation delegates
This update introduces several new supporting UI components for iOS, including DimmingView, DropShadowView, PassthroughView, PassthroughWindow, and PortalView (which wraps the private \_UIPortalView), alongside utility classes for Objective-C runtime introspection (ObjcC, Swizzling, UIGestureRecognizerDelegateProxy, UINavigationControllerDelegateProxy) and a Seed generator for SwiftUI state. Internally, the presentation handling has been refactored: the old view-disappearance-based notification system is replaced by explicit will/did dismiss callbacks on UIViewController and will/did pop callbacks on UINavigationController, utilizing method swizzling on dismiss, pop, and setViewControllers. The HostingViewReader has been renamed to WindowReader and now uses a delegate pattern instead of binding to a host view, and the dependency on the Turbocharger module has been removed in favor of the Engine module.
Sources/Transmission/Sources/Supporting Files · high confidence
Redesigned hosting controllers and snapshot renderer for improved presentation and rendering control
The iOS hosting infrastructure has been refactored to support more robust view presentation and rendering. New \DestinationHostingController\ and \PresentationHostingController\ classes replace the previous \HostingController\, introducing explicit support for tracking content size changes during sheet and popover presentations, handling status bar appearance delegation via \PresentationHostingWindowController\, and synchronizing rendering updates with source view controllers. The legacy \HostingView\, \HostingWindow\, and \AnyHostingView\ types have been removed. Additionally, \SnapshotRenderer\ is now an \ObservableObject\ that exposes a \colorSpace\ property (supporting extended linear, linear, and non-linear sRGB) and uses a dedicated window for rendering, replacing the previous \UIGraphicsImageRenderer\-based approach.
Sources/Transmission/Sources/Hosting · high confidence
Dependencies
Swift 6.0 upgrade, expanded platform support, and dependency consolidation
The project now requires Swift tools version 6.0 and extends support to macOS 10.15, tvOS 13, watchOS 6, and visionOS 1. The 'Turbocharger' dependency has been removed, and the 'Engine' dependency has been updated to version 2.18.0.
(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 51 → 52 (+1.4)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 78 → 79 (+0.6)
- Architecture 96 → 87 (-8.6)
- Maturity 52 → 52 (+0.1)
- Readiness 31 → 36 (+5.0)
- Security 100 → 100 (+0.0)
- Event-Driven 73 → 73 (+0.0)
Resolved (10)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (5 lines × 2) (Sources/Transmission/Sources/Transitions/DestinationLink Transitions/ZoomDestinationLinkTransition.swift)
- Duplicated block (6–8 lines × 3) (Example/Example/DynamicIslandTransition.swift)
- Hotspot: Sources/Transmission/Sources/AdaptiveColorSchemeModifier.swift (Sources/Transmission/Sources/AdaptiveColorSchemeModifier.swift)
- Hotspot: Sources/Transmission/Sources/Transitions/DestinationLink Transitions/PushDestinationLinkTransition.swift (Sources/Transmission/Sources/Transitions/DestinationLink Transitions/PushDestinationLinkTransition.swift)
- Hotspot: Sources/Transmission/Sources/Transitions/Presentation Controllers/MatchedGeometryPresentationController.swift (Sources/Transmission/Sources/Transitions/Presentation Controllers/MatchedGeometryPresentationController.swift)
- Hotspot: Sources/Transmission/Sources/Transitions/PresentationLink Transitions/PopoverPresentationLinkTransition.swift (Sources/Transmission/Sources/Transitions/PresentationLink Transitions/PopoverPresentationLinkTransition.swift)
- Hotspot: Sources/Transmission/Sources/Transitions/PresentationLink Transitions/SheetPresentationLinkTransition.swift (Sources/Transmission/Sources/Transitions/PresentationLink Transitions/SheetPresentationLinkTransition.swift)
- Hotspot: Sources/Transmission/Sources/Transitions/View Controller Transitions/CrossDissolveTransitionAnimator.swift (Sources/Transmission/Sources/Transitions/View Controller Transitions/CrossDissolveTransitionAnimator.swift)
New (53)
- Documentation: no architecture or design documentation (README.md)
- Duplicated block (10 lines × 2) (Sources/Transmission/Sources/Extensions/UIAlertController+Extensions.swift)
- Duplicated block (11 lines × 2) (Example/Example/DestinationLinkExamples.swift)
- Duplicated block (11 lines × 2) (Example/Example/DestinationLinkExamples.swift)
- Duplicated block (11 lines × 2) (Example/Example/PresentationLinkExamples.swift)
- Duplicated block (11 lines × 3) (Sources/Transmission/Sources/Extensions/CALayer+CornerRadii.swift)
- Duplicated block (11 lines × 3) (Sources/Transmission/Sources/Extensions/UIPopoverPresentationController+Extensions.swift)
- Duplicated block (12 lines × 2) (Sources/Transmission/Sources/Extensions/UIContextMenuConfiguration+Extensions.swift)
- Duplicated block (13 lines × 2) (Example/Example/PresentationLinkExamples.swift)
- Duplicated block (13 lines × 2) (Sources/Transmission/Sources/DestinationSourceViewLink.swift)
- Duplicated block (14 lines × 2) (Example/Example/DestinationLinkExamples.swift)
- Duplicated block (15 lines × 2) (Example/Example/QuickLookPreviewLinkExamples.swift)
- Duplicated block (15 lines × 2) (Example/Example/ShareSheetLinkExamples.swift)
- Duplicated block (15 lines × 2) (Sources/Transmission/Sources/ContextMenuAccessoryView.swift)
- Duplicated block (15 lines × 2) (Sources/Transmission/Sources/Supporting Files/PortalView.swift)
- Duplicated block (15–16 lines × 3) (Sources/Transmission/Sources/TransitionSourceHostingView.swift)
- Duplicated block (16 lines × 2) (Example/Example/DestinationLinkExamples.swift)
- Duplicated block (16 lines × 2) (Sources/Transmission/Sources/MenuSourceViewLink.swift)
- Duplicated block (16 lines × 4) (Example/Example/DestinationLinkExamples.swift)
- Duplicated block (16–17 lines × 2) (Sources/Transmission/Sources/TransitionSourceHostingView.swift)
- …and 33 more
Changes since last survey
- 2 commits — 2 feature/other, 0 fixes
By area
- Sources/Transmission — 2 commits
Notable commits
- change: 2.17.1
- change: 2.18.0
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
nathantannar4/Transmission 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 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 70572960caf9e9b898aeafb41428c607d97da141 — 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-e569280dd5e2.