Skip to content
CAI
Software that uses CAICheck a score

insidegui/WWDC

51.2

Adequate · 27 September 2026

24.4k

lines of production code

Swift

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This release introduces a major architectural overhaul, centralizing UI resources in a new ConfUIFoundation framework and modernizing the app's core with Swift Package Manager integration and a refactored ConfCore. Significant features include a complete player UI rebuild with Now Playing and Touch Bar support, a new Transcripts package for session content, and a pluggable media download engine. The app also gains live streaming capabilities, deep link handling via an AppCoordinator, and improved community and development infrastructure.

Features

Added Now Playing integration and remote command support

The PlayerUI module now integrates with the system's Now Playing center, displaying track metadata (title, artist, progress, live status, and artwork) in the macOS menu bar and lock screen. Additionally, the player supports standard remote commands including play, pause, stop, toggle play/pause, skip to next/previous track, change playback position, and adjust playback rate via the MPRemoteCommandCenter.

PlayerUI/MediaPlayer Support · high confidence

Added Touch Bar support for the player controls

Introduced a new PUITouchBarController and associated item identifiers to provide native macOS Touch Bar support for the player. The Touch Bar displays controls for play/pause, seeking, playback speed, annotations, and Picture-in-Picture, with the fullscreen button conditionally replaced by an exit fullscreen button when in fullscreen mode.

PlayerUI/Touch Bar Support · high confidence

Added development and community infrastructure files

The repository now includes essential community and development files: a Code of Conduct (CODE\_OF\_CONDUCT.md) and contribution guidelines (CONTRIBUTING.md) to structure community interaction. For developers, a SwiftLint configuration (.swiftlint.yml) enforces code style, while a suite of shell scripts (bootstrap.sh, teamid.sh, cleardata.sh, cleardebugdata.sh, resetSync.sh) automate environment setup, team ID configuration, and data management. The README.md has been significantly expanded to document app features, build instructions, and internal libraries, and .gitignore has been updated to exclude generated configuration files.

(repo-wide) · high confidence

Added main entry point for TranscriptIndexingService

A new main.swift file was added to the TranscriptIndexingService/Source directory, establishing the application's entry point. This file imports the ConfCore framework and initializes the TranscriptIndexingService, allowing the service to be executed directly.

TranscriptIndexingService/Source · high confidence

Added test server scripts for multiple content eras

New shell scripts have been added to the Fixtures directory to launch local test servers for different content sets (2018, 2020, and before-event). Each script ensures the 'http-server' npm package is installed and starts a server on port 9042, serving JSON data from specific directories (e.g., ./json\_2018, ./json\_2020).

Fixtures · high confidence

Added video clip export and live streaming UI components

The app now supports exporting video clips with custom titles, subtitles, and banners, utilizing new helper classes (ClipComposition, ClipRenderer) to handle AVAsset export and progress tracking. Additionally, the Explore tab now features a LiveStreamOverlay for displaying live video streams with countdown timers, and a new ActionLabel component for interactive UI elements.

(repo-wide) · high confidence

Introduce NSColor+Accent header for accent color management

A new header file, NSColor+Accent.h, has been added to the ConfUIFoundation framework. This file defines a graphite accent color constant (kGraphiteAccentColor) and declares an external function (NSColorGetUserAccentColor) to retrieve the user's selected accent color, providing a centralized way to access and manage accent colors within the UI foundation.

ConfUIFoundation/Source/Headers · high confidence

Introduce new media download engine and manager architecture

The media download system has been refactored to support a pluggable engine architecture, introducing \MediaDownloadManager\ to coordinate multiple download engines (such as \AVAssetMediaDownloadEngine\ and \URLSessionMediaDownloadEngine\) and a \FSMediaDownloadMetadataStore\ for persisting download state. This change enables the application to manage media downloads with support for pausing, resuming, and canceling tasks, while also providing a \SimulatedMediaDownloadEngine\ for testing and previewing download states.

WWDC/MediaDownload · high confidence

Introduced ConfUIFoundation framework with shared UI resources

A new ConfUIFoundation framework has been added to the project, containing the public header and an Info.plist configuration. This framework consolidates basic NSColor and font definitions, making these UI resources available for use across the application.

ConfUIFoundation · medium confidence

Introduced ConfUIFoundation module with bundle and subsystem constants

Added the ConfUIFoundation.swift file, which defines a bundle accessor for the framework and declares a subsystem constant for logging or identification purposes.

ConfUIFoundation/Source · high confidence

Introduces new ViewModel and Filter components for the WWDC app

The WWDC/ViewModels directory now includes new files for managing session playback, downloads, and search filtering. Specifically, the app adds DownloadViewModel and PlaybackViewModel to handle media states and AVPlayer integration, while introducing a new search filtering system with FilterType, MultipleChoiceFilter, OptionalToggleFilter, TextualFilter, and ToggleFilter to manage user-selected criteria. Additionally, SessionRow and SessionViewModel are introduced to structure session data and expose reactive properties for the UI.

WWDC/ViewModels · high confidence

Introduces protocol-based delegates for player UI and timeline annotations

The PlayerUI module now exposes a set of public protocols to decouple the player view and timeline interactions from concrete implementations. PUIPlayerViewDelegates provides callbacks for Picture-in-Picture state changes, fullscreen toggling, and annotation selection. PUIPlayerViewAppearanceDelegate allows the host application to control the visibility of various player controls (timeline, subtitles, speed, annotations) and configure skip durations. Additionally, PUITimelineAnnotation and PUITimelineDelegate protocols define the structure for timeline annotations and their interactive behaviors (highlight, select, move, delete). These changes enable external apps to implement custom UI behaviors and manage annotations without modifying the core player logic.

PlayerUI/Protocols · high confidence

New Transcripts package for downloading and caching session transcripts

The Transcripts package has been introduced to handle the downloading, caching, and storage of video session transcripts. It includes a \TranscriptDownloader\ that fetches a manifest of available transcripts, downloads them with progress and completion callbacks, and stores them via a \TranscriptStorage\ protocol. The implementation features a \Coalescer\ to batch storage operations and uses \OSLog\ for structured logging. Test coverage includes decoding tests for the manifest and transcript content, as well as integration tests for the downloader's caching and filtering logic.

Packages/Transcripts · high confidence

New app architecture and session management

The app has been refactored with a new \AppCoordinator\ that manages the main window, tabs (Explore, Schedule, Videos), and the video player. This change introduces a new \AppCommandsReceiver\ to handle deep links and app commands (such as favorite, watch, download, and calendar integration). The \AppCoordinator\ also manages the shelf, related sessions, bookmarks, and user activities, providing a centralized point for navigation and state management.

WWDC/Bootstrap · high confidence

New asset catalog and UI resources for the About window and preferences

The app's asset catalog has been reorganized into a modern xcassets structure, introducing new image sets for the sidebar and UI (account, avatar, bookmarks, calendar, clip, chromecast, copy, download, favorite, featured, general, lab/live indicators, news, schedule, share, slides, special, star, trash, videos, window) and vector datasets (ClipTemplate, share-vector). A new AboutWindowController.xib defines the 'About' window layout, displaying version, creator, and contributor details. Additionally, a Preferences.storyboard introduces settings for search scope (bookmarks, transcripts) and periodic refresh, while Info.plist adds the UIDesignRequiresCompatibility flag and URL schemes.

WWDC/Resources · high confidence

New player UI components and controls

The player interface has been rebuilt with new SwiftUI-based components, including a redesigned timeline view, a new annotation window controller, and a playback speed toggle. The update introduces a floating time preview layer for the timeline, a dedicated view for detached playback status (Picture-in-Picture/Full Screen), and a new button component that bridges AppKit and SwiftUI for player controls.

PlayerUI/Views · high confidence

New utility helpers and UI fixes in the WWDC app

Added several new utility extensions and components to the WWDC/Util directory, including Combine publisher helpers for UI binding, a variadic combineLatest operator, a SwiftUI view modifier for custom cursor shapes, a custom text layout for better wrapping during resize, and a SwiftUI environment key for selection state. The update also introduces an image download center with caching, a search field wrapper, and a scroller style modifier. Additionally, a fix addresses the NSSearchField clear button behavior to ensure state is synchronized before triggering search actions.

WWDC/Util · high confidence

New utility helpers for UI foundation

Added several new utility files to the ConfUIFoundation framework: BackForwardSkipDuration to define standard skip durations (5, 10, 15, and 30 seconds); CALayer+Asset to handle loading CALayer assets from the asset catalog and manage animation states; NSColor+Hex to parse hex color strings; PreviewSupport to detect SwiftUI preview environments; and UILog for conditional debug logging.

ConfUIFoundation/Source/Util · high confidence

Removals

Removal of the ViewUtils Xcode project file

The Xcode project file (project.pbxproj) for the ViewUtils framework has been deleted from the repository. This change removes the build configuration and file references for the ViewUtils framework, indicating that this component is no longer part of the project's build structure.

ViewUtils/ViewUtils.xcodeproj · high confidence

Removed legacy app architecture and data models

The app's original implementation has been removed, including the \DataStore\ singleton, \Session\ model, and associated view controllers like \VideoWindowController\ and \VideosViewController\. This cleanup eliminates the legacy codebase, likely to support a modernized architecture or framework migration.

WWDC · high confidence

Architecture

Modernized project structure and dependencies

The Xcode project has been modernized by upgrading the project file format to version 74 and migrating to Swift Package Manager for dependency management. This includes adding frameworks like EventKit, CloudKit, and PIP, as well as integrating libraries such as RealmSwift, ConfCore, and Sparkle. The build process now embeds new frameworks (RealmSwift, ConfUIFoundation, PlayerUI) and an XPC service (TranscriptIndexingService), while removing legacy references to ViewUtils and SwiftyJSON.

WWDC.xcodeproj · high confidence

Behavioural changes

Centralized color and font definitions in ConfUIFoundation

Basic NSColor and font definitions have been moved to the ConfUIFoundation framework, establishing a shared set of color constants (such as primary, secondary, and tertiary text colors, as well as background and selection colors) and font utilities (including a rounded system font helper and an attributed string creation method). This centralizes UI styling resources for reuse across the application.

ConfUIFoundation/Source/Definitions · high confidence

New and updated player control icons

The player UI now includes fresh asset catalogs for standard controls (play, pause, volume, subtitles, AirPlay, fullscreen, and picture-in-picture) and new icons for timeline interactions (time bubble, bookmarks, and forward/backward skip buttons). Speed selection icons have also been updated to support 1.25x, 1.75x, and 2x playback speeds, ensuring the interface visually reflects these new playback options.

PlayerUI/Resources · high confidence

New color, image, and speed definitions for the player UI

The player UI now uses centralized definitions for colors, icons, and playback speeds. Colors for labels, borders, and progress bars are mapped to system-standard vibrant colors (e.g., labelColor, quaternaryLabelColor) to ensure consistency across the interface. Image assets for player controls, including play/pause, skip, fullscreen, PiP, and speed indicators, are now defined in a dedicated module, supporting various control sizes and touch bar scaling. Additionally, a structured enum for playback speeds (ranging from 0.5x to 2x, plus custom rates) is introduced, providing icons and titles for each speed option.

PlayerUI/Definitions · medium confidence

New utility extensions for video layout, media validation, and settings persistence

The PlayerUI/Util directory now includes several new utility files that enhance video playback and UI behavior. AVPlayer+Layout.swift introduces a fittingRect method to calculate video aspect ratios and update layout guides, ensuring video guides update correctly. AVPlayer+Validation.swift adds methods to validate media duration and detect when playback has finished. PUISettings.swift persists user preferences for volume, playback speed, and label display. Additional utilities include AVAsset+AsyncHelpers.swift for safe duration loading, NSEvent+ForceTouch.swift for touch force detection, NumericContentTransition.swift for SwiftUI numeric animations, and String+CMTime.swift for time formatting.

PlayerUI/Util · medium confidence

PlayerUI module refactored and standardized

The PlayerUI framework has been restructured: a new SwiftLint configuration was added to suppress cyclomatic complexity and block-based KVO warnings. The module's header file was created to expose versioning constants, and the Info.plist was migrated to use xcconfig variables (MARKETING\_VERSION, PRODUCT\_BUNDLE\_IDENTIFIER, COPYRIGHT) for versioning, while also moving the plist from the ViewUtils directory to the PlayerUI directory.

PlayerUI · medium confidence

Redesigned app window chrome and tabbed navigation

The app's main window now features a custom title bar with a tab bar, replacing the previous title bar and tab implementation. This change introduces new view controllers for managing the main window, title bar, and tabbed navigation, while also adding an 'About' window controller and updating the download management interface to use SwiftUI.

WWDC/Controllers · high confidence

Refactored core data models and API client for improved reliability and modernization

The ConfCore package was refactored to modernize the codebase and improve reliability. The AppleAPIClient was rewritten to use the Siesta library for network requests, enabling more robust handling of configuration, sessions, and news data. New or updated data models including Bookmark, Favorite, Event, and FeaturedSection were introduced to support features like CloudKit syncing, favoriting, and curated content. Additionally, the codebase was updated to use modern Swift concurrency patterns (Combine) and improved logging through a unified Logging protocol, enhancing maintainability and debuggability.

Packages/ConfCore/ConfCore · high confidence

Removed custom player and window utilities

The ViewUtils framework has removed the GRPlayerView, GRPlayerWindow, and GRWindowMovingView classes, along with the ViewUtils.h umbrella header. This eliminates the custom implementation for hiding the title bar, window dragging, and video player view, which previously provided these capabilities to the application.

ViewUtils/ViewUtils · high confidence

Restored Xcode workspace configuration files

The Xcode project's workspace configuration was restored by re-adding the workspace data file (contents.xcworkspacedata) and the IDE workspace checks plist (IDEWorkspaceChecks.plist). This ensures the workspace correctly references the project and maintains the 32-bit warning state, which is required for the project to open and build correctly in Xcode.

WWDC.xcodeproj/project.xcworkspace · medium confidence

Transcript indexing moved to a new XPC service

Transcript indexing has been moved into a dedicated XPC service, defined by the new \TranscriptIndexingService\ bundle. This change isolates the indexing logic into its own process, with the service type set to 'Application' in the new \Info.plist\ and associated entitlements.

TranscriptIndexingService · high confidence

Updated Xcode scheme configurations for WWDC and iCloud targets

The Xcode project schemes for the main WWDC app and the iCloud-enabled variant have been updated to version 1.8 and 1.3 respectively, reflecting the latest Xcode 16.40 upgrade. The main scheme now includes command-line arguments for debug storage and UI logging, while the iCloud scheme configures specific build settings and test targets (ConfCoreTests, TranscriptsTests) with various debug flags like background sync and network debugging.

WWDC.xcodeproj/xcshareddata · high confidence

Fixes

Added Xcode workspace configuration for ConfCore package

A new Xcode workspace file (contents.xcworkspacedata) was added for the ConfCore package, establishing the project's workspace structure to support building and testing within the Swift Package Manager environment.

Packages/ConfCore/.swiftpm · high confidence

Dependencies

Updated Swift Package Manager dependencies

The project's Swift Package Manager configuration has been updated with new dependency pins and package definitions. Key updates include Sparkle (version 2.9.2 in the workspace resolver), RealmSwift (20.0.3), Alamofire (5.7.1), Siesta (1.5.2), and various Apple open-source libraries such as Swift Collections (1.0.4), Swift Algorithms (1.2.1), Swift Concurrency Extras (1.3.1), and Swift Numerics (1.0.3). The ConfCore package now explicitly declares dependencies on these libraries, and the workspace resolver reflects these specific versions.

(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 46 → 51 (+5.7)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 93 (-6.6)
  • Architecture 87 (new)
  • Maturity 51 → 61 (+9.7)
  • Readiness 17 → 77 (+59.9)
  • Security 100 → 95 (-5.0)
  • Domain Modelling 89 (new)
  • Accessibility 25 (new)

Resolved (5)

  • Dimension evaluation failed
  • No automated tests
  • No exposed public API
  • No tests found
  • Test reliability not included

New (94)

  • Boot.bootstrapDependencies (cognitive 22) (WWDC/Bootstrap/Boot.swift)
  • Change coupling: AppCoordinator.swift ↔ FilterType.swift (WWDC/Bootstrap/AppCoordinator.swift)
  • Change coupling: AppleAPIClient.swift ↔ Storage.swift (Packages/ConfCore/ConfCore/AppleAPIClient.swift)
  • ClassTooLong: PUIPlayerView (PlayerUI/Views/PUIPlayerView.swift)
  • ClassTooLong: PUITimelineView (PlayerUI/Views/PUITimelineView.swift)
  • ClassTooLong: UserDataSyncEngine (Packages/ConfCore/ConfCore/UserDataSyncEngine.swift)
  • Coverage not measured — Swift suite
  • Documentation: no installation or build instructions (README.md)
  • Duplicated block (10 lines × 2) (WWDC/Controllers/Search/SearchCoordinator.swift)
  • Duplicated block (11 lines × 2) (Packages/ConfCore/ConfCore/Focus.swift)
  • Duplicated block (11 lines × 2) (Packages/ConfCore/ConfCore/Session.swift)
  • Duplicated block (12 lines × 2) (WWDC/MediaDownload/Engines/AVAssetMediaDownloadEngine.swift)
  • Duplicated block (13 lines × 2) (WWDC/Controllers/Sessions/SessionRowProvider.swift)
  • Duplicated block (13 lines × 2) (WWDC/MediaDownload/Engines/AVAssetMediaDownloadEngine.swift)
  • Duplicated block (17 lines × 2) (WWDC/Controllers/Sessions/SessionRowProvider.swift)
  • Duplicated block (19 lines × 2) (WWDC/Controllers/Search/SearchCoordinator.swift)
  • Duplicated block (21 lines × 2) (WWDC/MediaDownload/Engines/AVAssetMediaDownloadEngine.swift)
  • Duplicated block (23–34 lines × 2) (WWDC/Controllers/Sessions/SessionRowProvider.swift)
  • Duplicated block (27 lines × 2) (WWDC/MediaDownload/Engines/AVAssetMediaDownloadEngine.swift)
  • Duplicated block (5 lines × 2) (ConfUIFoundation/Source/Util/NSColor+Hex.swift)
  • …and 74 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

insidegui/WWDC 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 27 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 67266753e15992ff57e9358d7953c854032582ce — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-d00c643c3f66.