A runtime tool for iOS/macOS developers to detect retain cycles and memory leaks during development with on-screen notifications.
LifetimeTracker is a runtime tool for iOS and macOS developers that detects retain cycles and memory leaks during app development. It provides immediate visual notifications within the app, helping developers identify memory issues as they write code rather than after the fact. The tool tracks object lifetimes and alerts when configured limits are exceeded, simplifying memory management debugging.
iOS and macOS developers working with Swift or Objective-C who need to proactively identify and fix memory leaks during development, particularly those building complex view hierarchies or managing many view controllers and view models.
Developers choose LifetimeTracker because it provides real-time, in-app notifications for memory issues, works with both Swift and Objective-C, and integrates easily into existing workflows. Unlike Instruments or FBRetainCycleDetector, it offers continuous monitoring during development, reducing debugging time and catching problems earlier.
Find retain cycles / memory leaks sooner.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Monitors object lifetimes and alerts immediately during development via on-screen notifications, reducing the need for sporadic Instruments runs.
Works with both Swift and Objective-C, unlike FBRetainCycleDetector which relies on Objective-C runtime, making it suitable for mixed codebases.
Provides configurable bar or circular style notifications that surface issues in-app, enhancing developer awareness without external tools.
Integrates with Danger to automate PR checks for `trackLifetime()` calls and leak verification, ensuring code quality in collaborative workflows.
Requires explicit `trackLifetime()` calls in each tracked class's initializers, which can be tedious and error-prone in large codebases.
Only tracks configured objects and max counts; it doesn't perform deep runtime inspection like FBRetainCycleDetector, potentially missing complex leaks.
The visual dashboard is intrusive and meant for debugging, so it must be disabled in production builds, limiting its use to pre-release stages.