expo / expo

An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.
https://docs.expo.dev
MIT License
29.62k stars 4.7k forks source link

[SDK 50] Reanimated Shared Element Transitions stopped working in Expo Go #27606

Open TMaszko opened 2 months ago

TMaszko commented 2 months ago

Minimal reproducible example

https://snack.expo.dev/@tmaszko/sharedtransitiontest

What platform(s) does this occur on?

iOS

Did you reproduce this issue in a development build?

Yes

Summary

Expected: Shared element transition works as it suppose to. It works with the bare react native app and after using npx expo run:ios(prebuild) .

Expo GO SDK 50

https://github.com/expo/expo/assets/16257732/6877a012-a305-4b2b-b637-1393b80b4a77

Expo GO SDK 49

https://github.com/expo/expo/assets/16257732/e05be37e-3cb2-43ff-8f31-4eabc30af5d2

React Native bare app

https://github.com/expo/expo/assets/16257732/e54ea111-56ab-4470-be98-e938ac8c0010

Environment

System: OS: macOS 14.3.1 Shell: 5.9 - /bin/zsh Binaries: Node: 18.19.0 - ~/.nvm/versions/node/v18.19.0/bin/node Yarn: 1.22.21 - ~/.nvm/versions/node/v18.19.0/bin/yarn npm: 10.2.3 - ~/.nvm/versions/node/v18.19.0/bin/npm Watchman: 2024.01.22.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.15.2 - /opt/homebrew/bin/pod SDKs: iOS SDK: Platforms: DriverKit 23.4, iOS 17.4, macOS 14.4, tvOS 17.4, visionOS 1.1, watchOS 10.4 IDEs: Android Studio: 2023.2 AI-232.10227.8.2321.11479570 Xcode: 15.3/15E204a - /usr/bin/xcodebuild npmPackages: expo: ~50.0.11 => 50.0.11 react: 18.2.0 => 18.2.0 react-native: 0.73.4 => 0.73.4 Expo Workflow: managed

Expo Doctor Diagnostics

✔ Check Expo config for common issues ✔ Check package.json for common issues ✔ Check native tooling versions ✔ Check dependencies for packages that should not be installed directly ✔ Check for common project setup issues ✔ Check npm/ yarn versions ✔ Check for issues with metro config ✔ Check Expo config (app.json/ app.config.js) schema ✔ Check for legacy global CLI installed locally ✔ Check that native modules do not use incompatible support packages ✔ Check that native modules use compatible support package versions for installed Expo SDK ✔ Check that packages match versions required by installed Expo SDK

brentvatne commented 2 months ago

hi there! are you saying that something that works outside of expo go is not working inside of expo go?

TMaszko commented 2 months ago

Hi @brentvatne! Exactly :) I've installed all packages so versions are matching and bare react native project works just fine

brentvatne commented 2 months ago

@TMaszko - if you run npx expo run:ios in the project where you have this issue in expo go, so that it runs "prebuild" and then compiles the runs the project, are you able to reproduce it?

TMaszko commented 2 months ago

@brentvatne No I'm not :( It's working just fine as is in the bare react native app

brentvatne commented 2 months ago

@TMaszko - got it! I tried npx expo run:ios locally and indeed it worked correctly, so it looks like this is an issue with how reanimated is vendored in Expo Go

expo-bot commented 2 months ago

Thank you for filing this issue! This comment acknowledges we believe this may be a bug and there’s enough information to investigate it. However, we can’t promise any sort of timeline for resolution. We prioritize issues based on severity, breadth of impact, and alignment with our roadmap. If you’d like to help move it more quickly, you can continue to investigate it more deeply and/or you can open a pull request that fixes the cause.

junioroga commented 2 months ago

eagerly waiting for this fix.

tsalama commented 1 month ago

Also facing this issue! It's working fine with development builds but not Expo Go.

BitPhinix commented 1 month ago

Experiencing this as well

shantanu-daisy commented 3 weeks ago

mine does not work with dev builds at all. also getting a warning "[Reanimated] Duplicate shared tag "sharedFooter" on the same screen" but in the reanimated repo, seems like people are having issue with expo 50 but not 49.

killah-t-cell commented 3 weeks ago

mine does not work with dev builds at all. also getting a warning "[Reanimated] Duplicate shared tag "sharedFooter" on the same screen" but in the reanimated repo, seems like people are having issue with expo 50 but not 49.

Does it still work in prod though?

codegabk commented 1 week ago

We need a fix please :(

ABertaud commented 1 week ago

it's looking like with SDK 50 and expo-router shared element transition aren't working at all. when i'm migrating expo-router to react-navigation, I get the same laggy behaviour as mentioned in the issue.

note that for SDK 49 whether it is with expo-router or react-navigation, shared element transition goes well.

cdoucy commented 1 week ago

Hello @brentvatne , is it fix in SDK 51? Thanks!

brentvatne commented 1 week ago

@cdoucy - give it a try and let me know! either way, this only impacts expo go - you should use development builds in most cases

ABertaud commented 1 week ago

Hello @brentvatne, this bug is still persistent when using expo-router over react-navigation. It's not longer possible to make shared element transition with expo-router from sdk 50, have you investigated it?

brentvatne commented 1 week ago

@ABertaud - as far as i know this only impacts expo go. are you saying it impacts development and release builds too?

ABertaud commented 1 week ago

@brentvatne - yes, it impacts development and release builds but only when using expo-router instead of react-navigation. which is quite annoying because having to re-migrate everything to react-nav... takes time!

brentvatne commented 1 week ago

@ABertaud - can you create an issue with a minimal reproducible example? this issue is about expo go, and as others have said in this issue, it is working fine for them in dev builds.

siderakis commented 1 week ago

Are you using "useFrameworks": "static"?

ABertaud commented 1 week ago

"useFrameworks": "static"

@siderakis I'm not using it.

gowri-xflowpay commented 1 week ago

Having same issue

codegabk commented 1 week ago

The issue is still there on expo 51 for expo go 😕

brentvatne commented 1 week ago

this isn't a priority for us to resolve in expo go given that it is just a sandbox environment, please use a development build if this is important for you. we will revisit this in the future when we have time, but shared element transitions are an experimental feature and you may encounter issues like this

check out our updated guide on setting up a development build.