Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MAUI] Session Replay #3882

Draft
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

phunkeler
Copy link
Contributor

@phunkeler phunkeler commented Jan 10, 2025

Starting this PR with some of the iOS bits for #2136.

I hope to tackle the below in the coming days but wanted to start gathering as much feedback as possible -- I'm still fairly new to the codebase.

TODO:

  • [Android] Cherry-pick ad80795
  • [Android] Address #3755
  • [iOS] Improve Cocoa bindings (i.e. try to avoid hard-coding types in scripts).
  • [Android & iOS] Feature parity w/ native SDK (or as much as possible)
  • Error handling
  • General cleanup
  • Undo DSN
  • Unit Tests
  • Device Tests
  • E2E Tests
  • Documentation ?

Questions:

  1. Support windows/maccatalyst?

Demo (iOS Simulator)
ios-replay

Copy link

codecov bot commented Jan 10, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 75.33%. Comparing base (495e742) to head (1ef880d).
Report is 432 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3882      +/-   ##
==========================================
- Coverage   75.73%   75.33%   -0.40%     
==========================================
  Files         357      389      +32     
  Lines       13466    14226     +760     
  Branches     2671     2860     +189     
==========================================
+ Hits        10198    10717     +519     
- Misses       2593     2815     +222     
- Partials      675      694      +19     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@bruno-garcia
Copy link
Member

thank you so much for opening this PR!

Support windows/maccatalyst?

We don't have recording support for those platforms yet. MacCatalyst might work since it's based on UIKit like iOS. @brustolin any idea how hard/easy to get it working?

Windows would require a new recording implementation. @vaind investigated this briefly and iirc there's a path using Win32 APIs but we don't have it on the roadmap yet.

One challenge here is exposing the masking API based on MAUI components in a way that translates to the native controls.
Also, passing the network request and response, aligning some breadcrumb formats. We don't have all details documented but they are baked into the React Native and Flutter Sentry SDKs which also wrap the native ones for recording.

So tagging folks who know best for review and tips: @krystofwoldrich @vaind @romtsn @brustolin

@brustolin
Copy link
Contributor

We don't have recording support for those platforms yet. MacCatalyst might work since it's based on UIKit like iOS. @brustolin any idea how hard/easy to get it working?

MacCatalyst is an iOS app running on the Mac. It should be working already. For MacOs app, I believe the change will be minimal to make it work.

@vaind
Copy link
Collaborator

vaind commented Jan 16, 2025

they are baked into the React Native and Flutter Sentry SDKs which also wrap the native ones for recording.

if MAUI uses native controls, don't bother looking at Flutter, it has it's own capture and masking. RN would be the one to replicate here.

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.

4 participants