Skip to content
CAI
Software that uses CAICheck a score

krzysztofzablocki/LifetimeTracker

54.0

Adequate · 30 September 2026

2.4k

lines of production code

Swift

with Objective-C

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

LifetimeTracker is a memory leak detection library for iOS and macOS applications that provides a customizable on-device dashboard for visualizing detected issues. It supports both Swift and Objective-C, offering configurable UI styles such as bar and circular widgets with options to control visibility and appearance. The system allows developers to monitor leak counts and integrate with external logging via callbacks, ensuring compatibility across modern Apple platforms and package managers.

Features

Add Objective-C example application

An Objective-C example app has been added to demonstrate integration with the LifetimeTracker framework. The project includes standard iOS application files (AppDelegate, ViewController, storyboards) and is configured to use CocoaPods, linking against the LifetimeTracker pod (version 1.7.1) to provide a functional demo of the library's leak detection and dashboard features in an Objective-C environment.

ExampleObjC · high confidence

Dashboard customization, Objective-C support, and leak logging

The dashboard integration now supports visual customization, allowing users to configure visibility (always visible, always hidden, or visible only when issues are detected) and choose between bar and circular styles with custom text colors. Full Objective-C support has been added, including integration examples and configuration via \LifetimeConfiguration\. Additionally, a new \onLeakDetected\ callback allows developers to log leak details to external sources. The README has been updated to reflect these changes, including Swift Package Manager installation instructions and Danger integration.

(repo-wide) · high confidence

Introduce customizable bar and circular dashboard UIs with iOS 13 support

The iOS source now includes a complete dashboard interface with two visual styles: a bar-style dashboard and a circular floating widget. Users can select their preferred style and customize the text colors for states with no issues versus detected leaks via the \LifetimeTrackerDashboardIntegration\ API. The implementation adds support for iOS 13 scene delegates to ensure the overlay windows display correctly on modern iOS versions, and includes a settings sheet that allows users to hide the dashboard until more issues are detected, until a new issue type appears, or permanently.

Sources/iOS · high confidence

Removals

Removed legacy DashboardViewController and XIB

The DashboardViewController class and its associated DashboardViewController.xib interface file have been deleted from the Sources/DashboardView directory. This removes the previous implementation of the dashboard view controller, which previously managed the summary label, expand/collapse state, and table view layout via the XIB.

Sources/DashboardView · high confidence

Behavioural changes

Example project renamed and CocoaPods support files regenerated

The Example application project has been renamed from LifetimeTracker to Example, updating the Xcode project structure, build targets, and schemes to reflect the new name. Additionally, the CocoaPods support files have been regenerated to align with this renaming, replacing the old Pods-LifetimeTracker\_Example and Pods-LifetimeTracker\_Tests configurations with Pods-Example and Pods-Example\_Tests, ensuring the example app correctly links and builds against the updated pod structure.

Example · high confidence

Redesigned dashboard UI with localization and multi-style support

The LifetimeTracker dashboard has been completely overhauled to support multiple visual styles, including a new circular dashboard view and a bar-style dashboard, replacing the previous single-view implementation. The UI now properly supports localization via a dedicated bundle resolution mechanism that works correctly across Swift Package Manager and CocoaPods installations, ensuring strings are displayed in the user's language. Additionally, the dashboard now groups tracked items and displays leak counts instead of generic issue counts, providing clearer visibility into memory management problems.

Sources · high confidence

Updated Xcode scheme configurations for Xcode 12.1

The Xcode project schemes for iOS, macOS, tvOS, and watchOS targets have been upgraded to version 12.1 (LastUpgradeVersion 1210). This update reorganizes the test and launch actions by moving the primary framework macro expansion to the top of the test action list and removes empty AdditionalOptions blocks, ensuring compatibility with modern Xcode versions.

LifetimeTracker.xcodeproj/xcshareddata · high confidence

Xcode project updated to support Xcode 12.1 and new dashboard UI components

The Xcode project configuration has been upgraded to target Xcode 12.1 (LastUpgradeCheck 1210) and now includes the source files and resources for the new dashboard UI features. This adds support for Bar and Circular dashboard views, a table-based dashboard view, and a visibility toggle option, alongside associated view controllers, storyboards, XIBs, and localization strings.

LifetimeTracker.xcodeproj · high confidence

Test coverage

Added tests for dashboard visibility and maxCount modification logic

Added unit tests to verify that the dashboard visibility behavior (always hidden, always visible, visible with issues) correctly determines window hiding, and that modifying the maxCount configuration dynamically updates both entry and group max counts, including handling overridden group max counts and leak detection callbacks.

Tests · high confidence

Dependencies

LifetimeTracker v1.8.3: macOS support, Swift 5, and iOS 12+ requirement

This release updates the CocoaPods spec and Swift Package Manager manifest to version 1.8.3, introducing native macOS support (deployment target 10.13) alongside the existing iOS support. The iOS deployment target has been raised to 12.0, and the project now requires Swift 5.0. The package structure has been refined to include specific source files, resource bundles, and localization settings for both platforms.

(dependencies) · high confidence

Housekeeping

Added dummy Swift file to influence repository language detection

A new file named \ignore.swift\ has been added to the Resources directory. This file contains repeated print statements and serves no functional purpose other than to ensure the repository is identified as a Swift project on platforms like GitHub, addressing a presentation issue rather than a product feature.

Resources · 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 48 → 54 (+6.5)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 50 → 88 (+37.8)
  • Maturity 44 → 44 (+0.0)
  • Readiness 33 → 38 (+4.9)
  • Security 100 → 100 (+0.0)

Resolved (2)

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

New (4)

  • Coverage not measured — Swift suite
  • Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
  • Off-boarding risk: anonymized user #1
  • Redundant configuration methods. setup and configure appear to serve overlapping purposes for initializing or updating the tracker's behavior. setup allows setting a leak callback and an update callback, while configure only sets an update callback. This creates ambiguity about whether configure is a subset of setup, a replacement, or for a different lifecycle stage.

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

Survey your own repository

krzysztofzablocki/LifetimeTracker 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 36844ff21b385ca138ae680d9947a14a37dd08bc — 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.