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

iOS Session Recordings #12344

Closed
1 task
joethreepwood opened this issue Oct 19, 2022 · 18 comments
Closed
1 task

iOS Session Recordings #12344

joethreepwood opened this issue Oct 19, 2022 · 18 comments
Assignees
Labels
feature/replay Features for Team Replay mobile

Comments

@joethreepwood
Copy link
Contributor

joethreepwood commented Oct 19, 2022

The Session Recording team is currently considering improving PostHog by adding the ability to capture session recordings from mobile devices running iOS. This is part of work documented on their megaissue.

There are many recording tools out there for web, and different tools for mobile -- but few for both. If we could unlock mobile session recordings, even with reduced functionality, it could be huge - especially for self-hosted customers who have few options in this space. Additionally, this would make PostHog more competitive with other session recording tools, such as HotJar.

🗂 Considered Goals

  • Run a PoC implementation for iOS

Please note we are considering React Native and Android recordings as separate issues.

These goals are being considered by the Session Recording Team and we'd love to hear user feedback, as well as ideas for stretch goals or implementation. Please add to this issue!

If you like this idea, please leave a 👍 or ❤️ reaction on this post to vote for it -- your votes and feedback help us prioritize what to work on next!

@joethreepwood joethreepwood changed the title There are many recording tools out there for web ,and different tools for mobile -- but few for both. If we could unlock mobile session recordings, even with reduced functionality, it could be huge - especially for self-hosted customers who have few options in this space. Current goal under consideration: Run a PoC implementation for something like React Native to prove the idea (wip here Roadmap: Mobile session recordings Oct 19, 2022
@joethreepwood joethreepwood changed the title Roadmap: Mobile session recordings Mobile session recordings Oct 19, 2022
@Hoss3770
Copy link

a very very good idea

@adampiskorski
Copy link

+1 to flutter

@joethreepwood joethreepwood changed the title Mobile session recordings iOS Session Recordings Dec 12, 2022
@joethreepwood
Copy link
Contributor Author

I have updated the initial post to reflect that this issue refers to iOS mobile recordings.

We now have separate issues for Android Mobile Recordings and React Native.

@jamesefhawkins
Copy link
Collaborator

mini update - we've got a very rough prototype working locally. not ready to share access yet, but progress is being made!

mobile-recording.mov
Screen.Recording.2023-01-13.at.11.55.32.mov

@dbenn8
Copy link

dbenn8 commented Feb 7, 2023

Would LOVE to see Flutter support (for at least iOS devices) baked into this if there's a path to include it.

@MrSnoozles
Copy link

Too excited for this, but I didn't read any more updates lately. Is this still being worked on?

@GGGH3
Copy link

GGGH3 commented Aug 16, 2023

@benjackwhite @joethreepwood Are there updates to this? The prototype looked very promising. It doesn't have to be perfect either. Being able to see where users are struggling on mobile apps would be huge.

@marandaneto
Copy link
Member

marandaneto commented Oct 23, 2023

We're working on Session Replay for Mobile, the goal is to playback sessions to diagnose UI issues, improve support, and get context for nuanced user behavior.

We're interested in understanding how useful it is, the expectations you may have, etc, for example:

  • Is high fidelity important? would be okay if it was a representation of the UI instead of screenshots?
  • Is masking text (due to PII) a must-have feature?
  • How would you define a session (the start and end of the recording)? would you expect that to be done automatically or manually via an API eg PostHog.startRecording and stopRecording?
  • Would you like to sample recordings or do you prefer to have it all? (think about data usage, storage, slow internet)
  • What's an acceptable performance impact while the recording is running?
  • Is network inspection useful? (HTTP status code, request, and response payload).
  • And much more...

We'd like to understand a little bit better so we are sure that we are building a feature that people would love to use.

Any feedback is appreciated, let me know if you'd be willing to trade a bit of your time for being a preview user as soon as it's out.

Thanks.

@goodones-mac
Copy link

goodones-mac commented Dec 6, 2023

For our app, 3 things are necessary:

  1. Masking specific views: Image views specifically, of the user's personal images. Images take up a lot of bandwidth, and we don't want to consume that bandwidth or see the user's photos. It would be easy for us to mark these views as views to censor in our code. When we tried it with logrocket and instabug, it didn't work that great :| . Logrocket uses accessibility identifiers that you pass in via configuration.
  2. SwiftUI + UIKit support: our app is almost %100 SwiftUI. Datadog's RUM session recording has no SwiftUI support.
  3. Does not significantly degrade performance: When we tried LogRocket ~8 months ago, it had significant perf problems to the point where we had to abandon it.

Not necessary:

  1. Text redaction beyond maybe password fields: All text in our app is static labels and is not user generated content or specifically private. Login info is already uploaded as part of general user info.

Usage Cases:

  1. UXR studies to see how new things are used, would probably integrate with feature flags and surveys
  2. Debugging tool for engineers

Your Questionnaire:

  1. Is high fidelity important? would be okay if it was a representation of the UI instead of screenshots? Maybe? We would have to see how it looks in practice.
  2. Is masking text (due to PII) a must-have feature? Masking images in our case
  3. How would you define a session (the start and end of the recording)? would you expect that to be done automatically or manually via an API eg PostHog.startRecording and stopRecording? Either or. I think anything that lets you have control over the process would be best vs. something that is always automatic. We already define our own 'sessions' via a session_id
  4. Would you like to sample recordings or do you prefer to have it all? (think about data usage, storage, slow internet). Sample rate is easy to do when you have manual control over starting and stopping.
  5. What's an acceptable performance impact while the recording is running? It can't materially effect usage of the app, which it did in our logrocket case.
  6. Is network inspection useful? (HTTP status code, request, and response payload). Yes, as another kind of log that is attached to the session, but it isn't that mandatory. A general logging product (separate from analytics, like datadog's logging product) is a natural thing to add to posthog in general IMO.

@taydr
Copy link

taydr commented Feb 27, 2024

hello! we're excited to use posthog, but need session recording for SwiftUI, so we're stuck with LogRocket. are there any updates on when we can expect this feature?

@marandaneto
Copy link
Member

hello! we're excited to use posthog, but need session recording for SwiftUI, so we're stuck with LogRocket. are there any updates on when we can expect this feature?

Sorry late reply, missed this notification, we're currently working on it, and we aim to have a preview by the end of the month.
Still unsure about SwiftUI, our approach is a wireframe and it's not working well with SwiftUI, maybe we pivot to screenshots but the performance impact is much higher, will update you as soon as we know more.

@laillatoyumi
Copy link

Hi folks, how is it going? I'm currently deciding between UXcam (nice but expensive!) and Posthog. Would love an update on the progress here, even happy to be a beta user :)

@NickPuljic
Copy link

Also would love an update!

@marandaneto
Copy link
Member

There's an alpha version out at https://github.com/PostHog/posthog-ios/blob/main/USAGE.md#ios-session-recording
Expect rough edges since it is the very first alpha, we're currently fixing a few issues on the Android session recording and will get back to it to get iOS out of alpha as well.

@marandaneto marandaneto added feature/replay Features for Team Replay and removed feature/recordings labels Apr 25, 2024
@marandaneto
Copy link
Member

iOS Session replay is in beta as well https://posthog.com/docs/session-replay/mobile

@dbenn8
Copy link

dbenn8 commented Jun 14, 2024 via email

@marandaneto
Copy link
Member

Do either support Flutter?

On Thu, Apr 11, 2024, 2:35 AM Manoel Aranda Neto @.> wrote: There's an alpha version out at https://github.com/PostHog/posthog-ios/blob/main/USAGE.md#ios-session-recording Expect rough edges since it is the very first alpha, we're currently fixing a few issues on the Android session recording and will get back to it to get iOS out of alpha as well. — Reply to this email directly, view it on GitHub <#12344 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCKEEYPWZQXRVCF53GLNXDY4YVKBAVCNFSM6AAAAAARJEQFSCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANBZGAYTGNJSGQ . You are receiving this because you commented.Message ID: @.>

No, for Flutter follow this issue.
Flutter has its rendering engine so it's different and it has to be done from scratch apparently.

@PostHog PostHog locked as resolved and limited conversation to collaborators Oct 28, 2024
@marandaneto
Copy link
Member

For reporting issues, just raise a new issue using the bug report template, please share all the context you have including error/stack trace, logs, your SDK config, OS version, etc.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature/replay Features for Team Replay mobile
Development

No branches or pull requests