Skip to content
CAI
Software that uses CAICheck a score

EmergeTools/Pow

62.1

Adequate · 30 September 2026

10.7k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Pow is a Swift library that provides a collection of visual, audio, and haptic effects for SwiftUI applications. It enables developers to animate state changes with customizable transitions and sensory feedback, while supporting multiple Apple platforms including iOS, macOS, visionOS, and tvOS. The system includes an example app to demonstrate these capabilities and uses Fastlane for automated build and testing workflows.

Features

Added Fastlane automation for iOS builds and Emerge integration

Introduced Fastlane configuration files (Fastfile, Pluginfile, README.md) to automate the iOS build process. The new 'build' lane compiles the app for both Debug and Release configurations, dynamically toggling preview features in Package.swift, and integrates with the EmergeTools plugin to upload build artifacts for PR analysis when a pull request number is provided.

Fastlane · high confidence

New Pow Example app for SwiftUI

The repository now includes a complete iOS example application ('Pow Example') that demonstrates the Pow framework's capabilities. This app features a categorized list of interactive demos, including 'Screens' (SocialFeed, Checkout), 'Conditional Effects' (PushDown, Repeat, Smoke), 'Change Effects' (Glow, Jump, Ping, Pulse, Rise, Shake, Shine, SoundEffects, Spin, Spray), and 'Transitions' (Anvil, Blinds, Blur, Boing, Clock, FilmExposure, Flicker, Flip, Glare, Iris, Move, Poof, Pop, Skid, Snapshot, Swoosh, Vanish, Wipe). The example app is built with SwiftUI, requires iOS 16 to run, and links against the Pow framework to showcase these visual and audio feedback effects.

Example · high confidence

New SwiftUI transitions: Anvil, Blinds, Blur, Boing, Clock, FilmExposure, Flicker, Flip, Glare, and Iris

The Pow library adds a suite of new custom transitions to \AnyTransition.MovingParts\, allowing developers to apply distinctive visual effects to view insertions and removals. These include \anvil\ (a drop with shake and dust), \blinds\ (venetian or vertical slat reveal), \blur\ (sharpness fade), \boing\ (elastic deformation), \clock\ (circular wipe), \filmExposure\ and \snapshot\ (light/dark fade effects), \flicker\ (visibility toggling), \flip\ (3D rotation), \glare\ (diagonal wipe with streak), and \iris\ (growing/shrinking circle mask). Each transition is implemented as a \ViewModifier\ with configurable parameters such as duration, direction, and style, and includes debug previews for interactive testing.

Sources/Pow/Transitions · high confidence

New infrastructure for animations, haptics, and platform support

This update introduces a comprehensive set of internal infrastructure components to the Pow library. It adds a new \AngleControl\ SwiftUI view for interactive angle adjustment, with specific handling for \ControlSize.extraLarge\ to ensure compatibility with Xcode versions prior to 15. The library now includes a robust haptics system (\Haptics\) that correctly manages the CoreHaptics engine lifecycle by stopping and restarting it when the app enters the background or foreground, preventing haptic failures. Additionally, the diff adds extensive support for 3D transformations (\Transform3DEffect\, \TRS\), particle layers, spring animations, and type-erased view modifiers, while also introducing conditional effects (\WhileEffect\) and ensuring compilation support for visionOS and tvOS.

Sources/Pow/Infrastructure · high confidence

New visual and sensory change effects for Pow

This release adds a suite of new change effects to the Pow library, allowing views to animate in response to state changes. Visual effects include \glow\ (with customizable color and radius), \jump\ (with configurable height), \shake\ (with \default\, \fast\, or custom phase length rates), \shine\ (with configurable angle and duration), \pulse\ (emitting growing/fading shapes in fill or stroke modes), \rise\ (floating particles from a specific origin), \smoke\ (continuous particle emission), and \spin\ (with configurable axis and velocity rates). Additionally, sensory feedback is introduced via \hapticFeedback\ (triggering notification, impact, or selection haptics on iOS) and \soundFeedback\ (playing custom audio resources on iOS).

Sources/Pow/Effects · high confidence

Test coverage

Added initial test suite for Pow

Added a new test target, PowTests, containing a basic XCTestCase class to begin exercising the Pow library.

Tests · high confidence

Dependencies

Add Ruby and Swift package dependencies

The project now includes a Gemfile and Gemfile.lock that introduce the fastlane and git Ruby gems, along with their transitive dependencies, to support CI/CD and automation workflows. Additionally, a Package.swift file defines the Swift Package 'Pow', targeting iOS 15, macOS 12, macCatalyst 15, and tvOS 15, and declares a dependency on the 'SnapshotPreviews-iOS' package from EmergeTools at version 0.10.21 to enable snapshot preview functionality.

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

Lenses

  • Code Health 97 → 95 (-2.5)
  • Architecture 100 → 94 (-5.7)
  • Maturity 50 → 50 (+0.0)
  • Readiness 49 → 53 (+3.7)
  • Security 87 → 91 (+4.1)

Resolved (3)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Off-boarding risk: anonymized user #1

New (50)

  • Coverage not measured — Swift suite
  • Duplicated block (10 lines × 2) (Example/Pow Example/Examples/Change Effects/SoundEffectsExample.swift)
  • Duplicated block (10 lines × 2) (Sources/Pow/Effects/SpinEffect.swift)
  • Duplicated block (10 lines × 6) (Sources/Pow/Transitions/Anvil.swift)
  • Duplicated block (11 lines × 3) (Sources/Pow/Transitions/Boing.swift)
  • Duplicated block (11 lines × 9) (Sources/Pow/Transitions/Blinds.swift)
  • Duplicated block (12 lines × 2) (Sources/Pow/Transitions/Boing.swift)
  • Duplicated block (12 lines × 2) (Sources/Pow/Transitions/Clock.swift)
  • Duplicated block (12 lines × 3) (Example/Pow Example/Examples/Change Effects/GlowExample.swift)
  • Duplicated block (13 lines × 2) (Sources/Pow/Infrastructure/WhileEffect.swift)
  • Duplicated block (13 lines × 3) (Sources/Pow/Effects/RisingParticleEffect.swift)
  • Duplicated block (13 lines × 3) (Sources/Pow/Transitions/Anvil.swift)
  • Duplicated block (14 lines × 2) (Sources/Pow/Effects/SprayEffect.swift)
  • Duplicated block (14 lines × 2) (Sources/Pow/Transitions/Boing.swift)
  • Duplicated block (14 lines × 2) (Sources/Pow/Transitions/Clock.swift)
  • Duplicated block (16 lines × 2) (Sources/Pow/Transitions/FilmExposure.swift)
  • Duplicated block (16 lines × 7) (Sources/Pow/Transitions/Anvil.swift)
  • Duplicated block (17 lines × 2) (Example/Pow Example/Examples/Change Effects/GlowExample.swift)
  • Duplicated block (17 lines × 2) (Sources/Pow/Transitions/Move.swift)
  • Duplicated block (17–18 lines × 9) (Sources/Pow/Transitions/Blinds.swift)
  • …and 30 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

EmergeTools/Pow 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 1b4b1dda28c50b95f0872927ee2226fe8b58950e — 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.