Skip to content

Conversation

@simaoseica-dd
Copy link
Contributor

@simaoseica-dd simaoseica-dd commented Oct 9, 2025

What and why?

This PR introduces a new app launch metric: Time to Full Display (TTFD).
It follows the proposal outlined in the internal RFC.

How?

It introduces a new public interface to report that the app is fully interactive:

public protocol RUMMonitorProtocol: AnyObject {
    /// Records the time to full display (TTFD) of the current app launch.
    func reportAppFullyDisplayed()
}

The TTFD logic is centralized in the RUMAppLaunchManager that:

  • Reports the TTFD through an "app_launch" RUMVitalEvent.
  • Decorates the TTFD with the startup type (cold or warm) and isPrewarmed value.
  • Ensures the metric is reported only once and only for user-triggered launches.

Review checklist

  • Feature or bugfix MUST have appropriate tests (unit, integration)
  • Make sure each commit and the PR mention the Issue number or JIRA reference
  • Add CHANGELOG entry for user facing changes
  • Add Objective-C interface for public APIs (see our guidelines (internal) and run make api-surface)

@simaoseica-dd simaoseica-dd requested review from a team as code owners October 9, 2025 12:31
@simaoseica-dd simaoseica-dd force-pushed the simaoseica/RUM-11468/create-app-launch-manager branch from 745284c to 263e0f4 Compare October 20, 2025 21:36
@simaoseica-dd simaoseica-dd force-pushed the simaoseica/RUM-11470/report-time-to-full-display branch from 7fd41a6 to 7f87147 Compare October 20, 2025 21:52
@simaoseica-dd simaoseica-dd force-pushed the simaoseica/RUM-11468/create-app-launch-manager branch 3 times, most recently from 43d26f0 to 12039d4 Compare October 21, 2025 16:59
@simaoseica-dd simaoseica-dd force-pushed the simaoseica/RUM-11470/report-time-to-full-display branch from 7f87147 to a9d015c Compare October 21, 2025 18:27
@datadog-official

This comment has been minimized.

Base automatically changed from simaoseica/RUM-11468/create-app-launch-manager to feature/app-launch October 22, 2025 10:55
@simaoseica-dd simaoseica-dd force-pushed the simaoseica/RUM-11470/report-time-to-full-display branch from a9d015c to 14c7a7b Compare October 22, 2025 12:58
@simaoseica-dd simaoseica-dd force-pushed the simaoseica/RUM-11470/report-time-to-full-display branch from 14c7a7b to bbbab7f Compare October 22, 2025 13:09
mariedm
mariedm previously approved these changes Oct 22, 2025
Copy link
Member

@mariedm mariedm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor comments, otherwise looks great!

Copy link
Member

@maxep maxep left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! I left a minor question.

I have a larger suggestion (maybe it's planned for further PR): The TTID and TTDF would deserve coverage in IntergrationTests. Both in Units, using @ncreated's framework to build different app launch scenarios, and in UI Tests which will start an actual host app. Is this planned?

@simaoseica-dd
Copy link
Contributor Author

@maxep
You can find the integration tests for the different scenarios here.
The UI Tests also have a task to be handled separately.

maxep
maxep previously approved these changes Oct 23, 2025
@simaoseica-dd simaoseica-dd force-pushed the simaoseica/RUM-11470/report-time-to-full-display branch from 8d8fa07 to a56c917 Compare October 23, 2025 17:26
@simaoseica-dd simaoseica-dd merged commit 2026149 into feature/app-launch Oct 24, 2025
17 checks passed
@simaoseica-dd simaoseica-dd deleted the simaoseica/RUM-11470/report-time-to-full-display branch October 24, 2025 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants