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

Add VisionOS events and entities #857

Merged
merged 15 commits into from
Jan 19, 2024

Conversation

mscwilson
Copy link
Contributor

@mscwilson mscwilson commented Jan 12, 2024

This work follows PR #830 that added support for VisionOS as a platform.

In this PR, four new event types are added to use in a VisionOS app: OpenWindowEvent, DismissWindowEvent, OpenImmersiveSpaceEvent, and DismissImmersiveSpaceEvent.

The open and dismiss window events are based around the window group context entity. The events themselves don't contain any data. The window group entity is automatically added to open and dismiss window events, but can also be manually added to any other Snowplow event type.

For immersive spaces, since only one immersive space can be active at one time, we were able to include automatic immersive space tracking. When an OpenImmersiveSpaceEvent is tracked, that event and all subsequent events have an immersive space context entity attached. This stops after a DismissImmersiveSpaceEvent is tracked. There's a new tracker configuration option, immersiveSpaceContext, for this behaviour (it's off by default).

We've added Apple's Hello World VisionOS demo app to the Examples, and tracked user activity based on the new events, plus ScreenViews.

@matus-tomlein matus-tomlein changed the base branch from release/6.0.0 to issue/support_visionos January 15, 2024 08:25
Copy link
Contributor

@matus-tomlein matus-tomlein left a comment

Choose a reason for hiding this comment

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

Very nice work!

@matus-tomlein matus-tomlein force-pushed the issue/support_visionos branch 3 times, most recently from fe21c0b to 50594ed Compare January 16, 2024 09:34
Base automatically changed from issue/support_visionos to release/6.0.0 January 16, 2024 09:59
@mscwilson mscwilson force-pushed the issue/visionos_events_entities branch from 207b8f7 to e8151d5 Compare January 18, 2024 12:10
Copy link
Contributor

@matus-tomlein matus-tomlein left a comment

Choose a reason for hiding this comment

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

This looks great! I had a few comments about some small decisions, but otherwise it LGTM!

@mscwilson mscwilson merged commit 43f6453 into release/6.0.0 Jan 19, 2024
20 checks passed
@mscwilson mscwilson deleted the issue/visionos_events_entities branch January 19, 2024 14:51
matus-tomlein pushed a commit that referenced this pull request Jan 19, 2024
* Add new VisionOS classes

* Add tests

* Update demo

* Standardise ID capitalisation

* Automatically track window group entity with OpenWindow and DismissWindow events

* Make string IDs the main property

* Add ImmersiveSpaceStateMachine

* Update demo app

* Update following merge

* Add immersive space entity to open event when autotracking is off

* Small review changes

* Always update state on open event

* Correct visionOS capitalisation

* Add immersive space entity by default

* Generate viewId UUID for immersive space
matus-tomlein pushed a commit that referenced this pull request Jan 19, 2024
* Add new VisionOS classes

* Add tests

* Update demo

* Standardise ID capitalisation

* Automatically track window group entity with OpenWindow and DismissWindow events

* Make string IDs the main property

* Add ImmersiveSpaceStateMachine

* Update demo app

* Update following merge

* Add immersive space entity to open event when autotracking is off

* Small review changes

* Always update state on open event

* Correct visionOS capitalisation

* Add immersive space entity by default

* Generate viewId UUID for immersive space
matus-tomlein pushed a commit that referenced this pull request Feb 1, 2024
* Add new VisionOS classes

* Add tests

* Update demo

* Standardise ID capitalisation

* Automatically track window group entity with OpenWindow and DismissWindow events

* Make string IDs the main property

* Add ImmersiveSpaceStateMachine

* Update demo app

* Update following merge

* Add immersive space entity to open event when autotracking is off

* Small review changes

* Always update state on open event

* Correct visionOS capitalisation

* Add immersive space entity by default

* Generate viewId UUID for immersive space
@matus-tomlein matus-tomlein mentioned this pull request Feb 1, 2024
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.

2 participants