Skip to content

docs(android): add Compose effect guidance - #19308

Open
0xadam-brown wants to merge 1 commit into
masterfrom
chore/android-compose-effect-guidance
Open

docs(android): add Compose effect guidance#19308
0xadam-brown wants to merge 1 commit into
masterfrom
chore/android-compose-effect-guidance

Conversation

@0xadam-brown

Copy link
Copy Markdown
Member

DESCRIBE YOUR PR

Add Compose-specific guidance about emitting custom telemetry from Effect APIs and other post-composition callbacks instead of from composable bodies.

Cross-link the Android custom instrumentation page back to the Compose page so manual instrumentation guidance points readers to this recomposition caveat.

IS YOUR CHANGE URGENT?

Help us prioritize incoming PRs by letting us know when the change needs to go live.
Select exactly one option. For deadlines, replace YYYY-MM-DD with the due date. You can update this information later by editing the PR description.

  • Urgent deadline (GA date, etc.): YYYY-MM-DD
  • Other deadline: YYYY-MM-DD
  • No deadline: Not urgent, can wait up to 1 week+

SLA

  • Teamwork makes the dream work, so please add a reviewer to your PRs.
  • Please give the docs team up to 1 week to review your PR unless you've supplied a deadline.

Thanks in advance for your help!

PRE-MERGE CHECKLIST

Make sure you've checked the following before merging your changes:

  • Checked Vercel preview for correctness, including links
  • PR was reviewed and approved by any necessary SMEs (subject matter experts)
  • PR was reviewed and approved by a member of the Sentry docs team

LEGAL BOILERPLATE

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

EXTRA RESOURCES

Add Compose-specific guidance about emitting custom telemetry from
Effect APIs and other post-composition callbacks instead of from
composable bodies.

Cross-link the Android custom instrumentation page back to the
Compose page so manual instrumentation guidance points readers to
this recomposition caveat.
@vercel

vercel Bot commented Sep 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
sentry-docs Ready Ready Preview Sep 9, 2026 2:17pm UTC
1 Skipped Deployment
Project Deployment Actions Updated
develop-docs Ignored Ignored Sep 9, 2026 2:17pm UTC

Request Review

@runningcode runningcode left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nice!


## Custom Telemetry in Compose

Composable functions can run many times during recomposition. Don't emit custom Sentry spans, messages,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
Composable functions can run many times during recomposition. Don't emit custom Sentry spans, messages,
Composable functions can run many times during recomposition. Don't send custom Sentry spans, messages,

Technically both are correct, just trying to keep the vocabulary simple to accommodate users with limited English.

breadcrumbs, or other telemetry directly from a composable body, as it can duplicate telemetry or attach it
to the wrong UI lifecycle moment.

Prefer emitting telemetry from:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
Prefer emitting telemetry from:
Instead, send telemetry from:

}
```

Instead, capture state in the body as needed but emit it from an Effect API:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
Instead, capture state in the body as needed but emit it from an Effect API:
Instead, capture state in the body as needed but send it from an Effect API:


<Alert level="info" title="Using custom instrumentation in Jetpack Compose?">

If you emit custom Sentry spans or other telemetry from Jetpack Compose code, use Compose Effect APIs such as

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
If you emit custom Sentry spans or other telemetry from Jetpack Compose code, use Compose Effect APIs such as
If you send custom Sentry spans or other telemetry from Jetpack Compose code, use Compose Effect APIs such as

<Alert level="info" title="Using custom instrumentation in Jetpack Compose?">

If you emit custom Sentry spans or other telemetry from Jetpack Compose code, use Compose Effect APIs such as
`LaunchedEffect`, `DisposableEffect`, or `SideEffect` instead of emitting from a composable body. Composable bodies

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
`LaunchedEffect`, `DisposableEffect`, or `SideEffect` instead of emitting from a composable body. Composable bodies
`LaunchedEffect`, `DisposableEffect`, or `SideEffect` instead of sending from a composable body. Composable bodies

@coolguyzone coolguyzone left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Priority: Normal Docs review has no urgent deadline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants