siteline/swiftui-introspect
65.9
Adequate · 30 September 2026
6.9k
lines of production code
Swift
primary language
2
measurements over time
What this system is
SwiftUIIntrospect is a Swift library that enables developers to access and customize underlying UIKit and AppKit views from SwiftUI code. It provides a type-safe API with platform-specific version predicates to introspect common controls like lists, forms, and date pickers across iOS, macOS, tvOS, and visionOS. The system includes a comprehensive test suite and a showcase application to demonstrate its capabilities.
Features
New Showcase app demonstrates SwiftUIIntrospect capabilities
The Examples directory now includes a new Showcase application that serves as a comprehensive demo for the SwiftUIIntrospect library. This app features a tabbed interface with dedicated sections for List, ScrollView, Navigation, Presentation, Controls, and UIViewRepresentable, illustrating how to introspect underlying UIKit and AppKit components across iOS, tvOS, visionOS, and macOS. The implementation covers various introspection targets such as windows, tab views, text fields, toggles, sliders, date pickers, segmented controls, search fields, sheets, and full-screen covers, providing users with concrete examples of applying the library's API in real-world SwiftUI scenarios.
Examples · high confidence
New introspection support for Button, ColorPicker, DatePicker, Form, FullScreenCover, List, and Map types
The \Sources/ViewTypes\ module has been restructured with new abstract view type definitions for common SwiftUI controls, enabling users to introspect their underlying native counterparts. This change adds support for \Button\ (macOS only), \ColorPicker\ (iOS, macOS, visionOS), \DatePicker\ (with specific style variants like \.compact\, \.field\, \.graphical\, \.stepperField\, and \.wheel\), \Form\ (iOS, tvOS, visionOS), \FullScreenCover\ (iOS, tvOS, visionOS), \List\ (with style variants like \.bordered\, \.grouped\, \.insetGrouped\, \.inset\, \.sidebar\), and \Map\ (iOS, tvOS, macOS, visionOS). Each type includes platform-specific availability and version mappings (up to iOS/tvOS/macOS/visionOS 27) to ensure accurate introspection of native views such as \NSButton\, \UIColorWell\, \UIDatePicker\, \UITableView\, \UICollectionView\, \UIPresentationController\, \NSTableView\, and \MKMapView\.
Sources/ViewTypes · high confidence
Removals
Removed legacy XCTest scaffold in IntrospectTests
The legacy XCTest scaffold files (Info.plist and IntrospectTests.swift) have been removed from the IntrospectTests directory. This cleanup eliminates the default placeholder test structure that was previously included, streamlining the test bundle by removing unused boilerplate.
IntrospectTests · high confidence
Behavioural changes
New SwiftUI Introspect API with platform version predicates
The library introduces a new \.introspect(...)\ modifier that allows you to customize underlying UIKit or AppKit views from SwiftUI. This new API uses a type-safe \PlatformViewVersionPredicate\ system (e.g., \.iOS(.v13, .v14)\) to target specific platform versions, replacing the previous method of introspection. It supports both \receiver\ and \ancestor\ scopes for finding views, and includes built-in support for iOS, tvOS, macOS, and visionOS versions up to v27.
Sources · high confidence
Removal of Xcode project file
The Introspect.xcodeproj/project.pbxproj file has been deleted, indicating that the project is no longer managed via the traditional Xcode project file format. This suggests a migration to a different build system (such as Swift Package Manager) or a restructuring of the project's build configuration, which may require users to update their integration method for the Introspect framework.
Introspect.xcodeproj · medium confidence
Removal of legacy macOS framework scaffolding
The Introspect module has removed its legacy macOS-specific framework scaffolding, specifically the Info.plist and Introspect.h header files. This cleanup eliminates the old bundle configuration and public header exports that were previously used for the macOS target, aligning the project structure with its current multi-platform support.
Introspect · high confidence
Workspace restructured for SwiftUIIntrospect with updated Xcode settings
The project workspace has been renamed to SwiftUIIntrospect and reorganized to explicitly reference the Showcase and Tests projects. Workspace settings have been updated to Xcode 27 standards, including disabling the automatic creation of contexts and schemes, and the shared scheme is now configured to build and test the SwiftUIIntrospect target with parallelization enabled.
SwiftUIIntrospect.xcworkspace · high confidence
Test coverage
Added comprehensive test suite for SwiftUIIntrospect
Added a new test framework and extensive unit tests covering the SwiftUIIntrospect library. The tests verify platform entity traversal logic, platform version predicates (iOS, macOS, tvOS, visionOS), and introspection capabilities for various SwiftUI views including Buttons, ColorPickers, DatePickers (with various styles), Forms, Lists, and FullScreenCovers across multiple OS versions.
Tests · high confidence
Dependencies
Swift 6.2 upgrade with upcoming features and expanded platform support
The library has been updated to Swift 6.2, enabling several upcoming language features including ExistentialAny, ImmutableWeakCaptures, InferIsolatedConformances, InternalImportsByDefault, MemberImportVisibility, and NonisolatedNonsendingByDefault. Platform support has been explicitly defined for iOS 13+, Mac Catalyst 13+, macOS 12+, tvOS 13+, and visionOS 1, ensuring compatibility with current Apple operating systems.
(dependencies) · high confidence
Housekeeping
Initial repository setup and tooling configuration
The repository has been initialized with essential configuration files to standardize development workflows. This includes an \.editorconfig\ to enforce consistent indentation (tabs for Swift/JSON, spaces for Markdown/YAML) and line endings, a \.gitignore\ to exclude build artifacts and IDE files, and a \.swift-version\ file specifying Swift 6.2 as the target language version. Additionally, code formatting is managed via \SwiftFormat\ (v0.63.0) configured in \.swiftformat\, and pre-commit hooks are defined in \hk.pkl\ and \mise.toml\ to automatically lint Swift files before commits.
(repo-wide) · 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 68 → 66 (-1.7)
- Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 100 → 99 (-0.6)
- Architecture 100 → 100 (+0.0)
- Maturity 63 → 64 (+0.8)
- Readiness 50 → 48 (-2.1)
- Security 100 → 100 (+0.0)
Resolved (3)
- Documentation: no contributor guidance (README.md)
- Documentation: no usage examples (README.md)
- Off-boarding risk: anonymized user #1
New (12)
- Coverage not measured — Swift suite
- Duplicated block (2–6 lines × 11) (Examples/Showcase/Showcase/AppView.swift)
- Duplicated block (5 lines × 2) (Examples/Showcase/Showcase/Controls.swift)
- Duplicated block (5 lines × 2) (Examples/Showcase/Showcase/Controls.swift)
- Duplicated block (5 lines × 2) (Examples/Showcase/Showcase/Controls.swift)
- Duplicated block (6 lines × 3) (Examples/Showcase/Showcase/Controls.swift)
- Duplicated block (7 lines × 2) (Examples/Showcase/Showcase/Controls.swift)
- Duplicated block (7 lines × 3) (Examples/Showcase/Showcase/Controls.swift)
- Duplicated block (8–9 lines × 2) (Examples/Showcase/Showcase/Controls.swift)
- Duplicated block (9 lines × 2) (Examples/Showcase/Showcase/Controls.swift)
- Members sharing a duplicated core (6 members, 50+ identical tokens) (Examples/Showcase/Showcase/AppView.swift)
- Off-boarding risk: anonymized user #1
Changes since last survey
- 4 commits — 3 feature/other, 1 fixes
By area
- (root) — 2 commits
- .github/workflows — 2 commits
Notable commits
- fix: revert(ci): stop running on release branch pushes
- change: ci: run on release branch pushes
- change: docs(readme): update dependency examples for 27.0.0
- change: feat(api): expose range-based platform predicates
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
siteline/swiftui-introspect 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 2fd59a7ae9f7bd6adf110a7342032bed21db38df — 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.