Skip to content
CAI
Software that uses CAICheck a score

snail-z/DawnTransition

47.3

Weak · 1 October 2026

13.3k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

DawnTransition is an iOS library that provides a collection of custom view controller transition animations, such as card, cube, and elastic slide effects. It includes safety guards to prevent interface freezes during transitions and supports integration via both Swift Package Manager and CocoaPods. The project also supplies demo applications to showcase these interactive animation capabilities.

Features

Add DawnTransition sample app with interactive animation demos

The Sample directory now includes a complete demo application for the DawnTransition library, featuring a main list view to browse animation categories and specific demo screens for navigation and modal transitions. Users can interactively test various transition effects, including push, pull, page-in/out, zoom-slide, and fade animations, as well as a new 'Spring (Interactive)' demo that utilizes the renamed DawnAnimationElasticSlide class to demonstrate custom elastic animations with gesture support.

Sample · high confidence

Added Xcode workspace configuration for Swift Package Manager

A new \contents.xcworkspacedata\ file has been added to the \.swiftpm/xcode/package.xcworkspace\ directory, establishing the standard Xcode workspace structure required for the Swift Package Manager to integrate with Xcode projects. This allows developers to open the package directly in Xcode for easier debugging and development workflows.

.swiftpm · high confidence

Added privacy manifest file

A new PrivacyInfo.xcprivacy file has been added to the Sources directory. This manifest declares that the app does not collect data types, does not access restricted APIs, does not use tracking domains, and does not perform tracking, ensuring compliance with Apple's App Privacy requirements.

Sources · high confidence

New Package and Pod demo applications for DawnTransition

Added two new example applications, PackageDemo and PodDemo, to demonstrate integration of the DawnTransition library via Swift Package Manager and CocoaPods respectively. PackageDemo is a standalone iOS app that links the DawnTransition package directly, while PodDemo is a CocoaPods workspace containing a comprehensive example app with multiple sample view controllers (including layout and image transition demos) and unit tests.

Example/PodDemo · high confidence

New custom transition animations and gesture safety guards

This update introduces several new custom view controller transition animations, including Card, Cube, Diffuse, Drawer, Elastic Slide, and Flip, allowing for more varied and polished UI interactions. To prevent interface freezes and hierarchy conflicts during these transitions, the library now includes guards that disable container view interactions and temporarily suspend the UINavigationController's interactive pop gesture recognizer while an animation is in progress, restoring them upon completion.

Sources/DawnTransition · high confidence

Behavioural changes

12 commits (0 fixes) modifying Example

A change to existing behaviour in Example — 12 commits, 1 file.

Example · medium confidence · unverified

Added iOS privacy manifest and updated license metadata

The project now includes a PrivacyInfo.xcprivacy file to declare access to file timestamp APIs (reason C617.1) and confirm no tracking or data collection, ensuring compliance with Apple's privacy requirements. Additionally, the LICENSE file has been updated to reflect the current copyright holder (haoz, 2024).

(repo-wide) · high confidence

Dependencies

Add CocoaPods and Swift Package Manager manifests for DawnTransition

The project now includes distribution manifests for CocoaPods (DawnTransition.podspec) and Swift Package Manager (Package.swift), enabling installation via these package managers. The CocoaPods spec defines version 1.3.2 with a minimum iOS deployment target of 13.0 and includes a privacy manifest. An example Podfile and lockfile are also added, referencing DawnTransition and the DawnKit dependency (version 1.0.2).

(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 44 → 47 (+2.9)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 97 → 97 (+0.3)
  • Architecture 93 → 98 (+5.1)
  • Maturity 38 → 48 (+10.3)
  • Readiness 17 → 19 (+2.1)
  • Security 95 → 95 (+0.0)

Resolved (5)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (13 lines × 2) (Sample/AnimationTargetDemoViewController.swift)
  • Low cohesion: DawnTransitionExampleViewController (LCOM4 6) (Sample/DawnTransitionExampleViewController.swift)
  • Low cohesion: ModalDemoViewController (LCOM4 4) (Sample/ModalDemoViewController.swift)

New (4)

  • DawnDriver.complete (cognitive 20) (Sources/DawnTransition/DawnDriver.swift)
  • Duplicated block (8 lines × 3) (Sources/DawnTransition/DawnAnimationCube.swift)
  • Inconsistent dismissal API for Drawer animation. While all other animation types implement the standard dawnAnimationDismissing(DawnDriver) method to integrate with the transition driver, DawnAnimationDrawer exposes a custom overlayDismiss method that requires manual invocation with specific parameters (driver, direction, action), breaking the uniform interface pattern.
  • MethodTooLong: DawnAnimationType.stage (Sources/DawnTransition/DawnAnimationType.swift)

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

Survey your own repository

snail-z/DawnTransition 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 72ff5e23e1f98467a4f27643b627ac5879bd3890 — 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.