Skip to content
CAI
Software that uses CAICheck a score

siteline/swiftui-introspect

65.9

Adequate · 30 September 2026

6.9k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

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.