insidegui/WWDC
51.2
Adequate · 27 September 2026
24.4k
lines of production code
Swift
primary language
4
measurements over time
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.