Skip to content

Conversation

@itaybre
Copy link
Contributor

@itaybre itaybre commented Jan 23, 2026

📜 Description

  • Converts SentryUIEventTrackingIntegration to Swift
  • Removes old ObjC files and imports

💡 Motivation and Context

💚 How did you test it?

📝 Checklist

You have to check all boxes before merging:

  • I added tests to verify the changes.
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled.
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • Review from the native team if needed.
  • No breaking change or entry added to the changelog.
  • No breaking change for hybrid SDKs or communicated to hybrid SDKs.

#skip-changelog

Closes #7273

@linear
Copy link

linear bot commented Jan 23, 2026

@github-actions
Copy link
Contributor

github-actions bot commented Jan 23, 2026

Semver Impact of This PR

🟢 Patch (bug fixes)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


This PR will not appear in the changelog.


🤖 This preview updates automatically when you update the PR.

@itaybre itaybre added the ready-to-merge Use this label to trigger all PR workflows label Jan 23, 2026
@itaybre itaybre marked this pull request as ready for review January 23, 2026 19:14
@codecov
Copy link

codecov bot commented Jan 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.044%. Comparing base (86b8951) to head (fe707bc).
⚠️ Report is 2 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files

Impacted file tree graph

@@              Coverage Diff              @@
##              main     #7272       +/-   ##
=============================================
+ Coverage   85.011%   85.044%   +0.032%     
=============================================
  Files          471       471               
  Lines        28375     28397       +22     
  Branches     12461     12464        +3     
=============================================
+ Hits         24122     24150       +28     
+ Misses        4204      4197        -7     
- Partials        49        50        +1     
Files with missing lines Coverage Δ
Sources/Sentry/SentryBaseIntegration.m 70.666% <ø> (-4.017%) ⬇️
Sources/Sentry/SentrySDKInternal.m 84.120% <ø> (-0.068%) ⬇️
Sources/Swift/Core/Integrations/Integrations.swift 100.000% <100.000%> (ø)
...entTracking/SentryUIEventTrackingIntegration.swift 100.000% <100.000%> (ø)
Sources/Swift/SentryDependencyContainer.swift 96.491% <100.000%> (+0.127%) ⬆️

... and 10 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 86b8951...fe707bc. Read the comment docs.

@github-actions
Copy link
Contributor

Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1191.91 ms 1212.29 ms 20.38 ms
Size 24.14 KiB 1.08 MiB 1.06 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
83bf9af 1213.30 ms 1234.18 ms 20.89 ms
5d67f5d 1225.33 ms 1262.76 ms 37.43 ms
e01eafa 1223.36 ms 1252.43 ms 29.07 ms
86b8951 1211.20 ms 1247.92 ms 36.72 ms
9a0a3cd 1220.85 ms 1243.69 ms 22.83 ms
e701dc8 1215.89 ms 1254.06 ms 38.17 ms
fd24b7c 1222.39 ms 1259.67 ms 37.28 ms
013fd4d 1216.02 ms 1242.16 ms 26.14 ms
0d145c3 1224.04 ms 1255.34 ms 31.30 ms
37bc095 1210.00 ms 1242.69 ms 32.69 ms

App size

Revision Plain With Sentry Diff
83bf9af 24.14 KiB 1.04 MiB 1.02 MiB
5d67f5d 24.14 KiB 1.06 MiB 1.04 MiB
e01eafa 24.14 KiB 1.07 MiB 1.04 MiB
86b8951 24.14 KiB 1.08 MiB 1.06 MiB
9a0a3cd 24.14 KiB 1.08 MiB 1.06 MiB
e701dc8 24.14 KiB 1.06 MiB 1.04 MiB
fd24b7c 24.14 KiB 1.07 MiB 1.04 MiB
013fd4d 24.14 KiB 1.04 MiB 1.02 MiB
0d145c3 24.14 KiB 1.07 MiB 1.05 MiB
37bc095 24.14 KiB 1.06 MiB 1.04 MiB


func getUIEventTracker(_ options: Options) -> SentryUIEventTracker {
let mode = SentryUIEventTrackerTransactionMode(idleTimeout: options.idleTimeout)
return SentryUIEventTracker(
Copy link
Contributor

Choose a reason for hiding this comment

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

Why does this need to be a function in the dependency container? It's not really a dependency in the typical sense if you're creating a new instance each time. Seems like it would be cleaner to create in-line in the integration class

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

Labels

ready-to-merge Use this label to trigger all PR workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ref: Convert SentryUIEventTrackingIntegration to swift

3 participants