861
react-native-fast-image
complete
Giau. Tran Minh
Please add https://github.com/DylanVann/react-native-fast-image for fast image scrolling
Brent Vatne
complete
Today, we are pleased to announce that with the arrival of Expo SDK 42, you can now create custom development clients in the cloud using EAS Build, or locally with the new Expo run commands.
You can try it out today:
- Create a new project: expo init
- Install the packages: expo install react-native-fast-image expo-dev-client
Build the native app:
- In the cloud with eas build -p all --profile development(expo builddoes not support custom builds)
- Or locally with expo run:iosandexpo run:android(note: see https://expo.fyi/prebuild-cleanup for information on the generated files)
To be clear,
react-native-fast-image
will not have been added to the Expo Go app that you download from the App Store or Google Play Store.We still consider this feature to be completed because users can now create a custom client app that includes this library, without needing to write any native code.
We hope you enjoy, and we have big plans to continue improving this workflow going forward!
Apps Genie
how do we install react-native-fast-image in an Expo managed EAS project with a custom dev client? I thought the package has to have a plugin and I don't see one for react-native-fast-image..
will just basic
expo install react-native-fast-image
do it?thank you.
Michael Wood
Apps Genie: Not everything that includes native code requires a config plugin to work in an managed Expo app with custom dev client.
Their installation instructions are basically just:
yarn add react-native-fast-image
cd ios && pod install
(so nothing special for Android)
If you look at the iOS build process, you'll see that the iOS build servers automatically run
pod install
for you during the build process. (See step 10 of the remote steps.)So there's nothing that requires a config plugin.
If it required changes to
Info.plist
or AppDelegate.m
or something like that, then it would need a config plugin, but for react-native-fast-image
there's nothing like that.You might also want to check out
expo-image
Apps Genie
Michael Wood: oh ok that was a good explanation for me thank you, I get it now. Install always runs and only when extra custom config is needed that's where plugins come into play. Does it mean ANY new package installed requires a rebuild of the dev client or only those having pod install as instructions?
I was able to install fast-image is successfully now!
As far as expo-image I was looking around and I am a bit scared to install it yet :) (too many complaints from others so far) plus was not able to get to the latest version because it said the correct version for my project is 1.0.1 (SDK 48) but there are a few bug fixes in the latest version that I would miss, so I think I would rather wait longer since it seems like a new package to me. But not totally sure yet.
Michael Wood
Apps Genie: "Does it mean ANY new package installed requires a rebuild of the dev client"
Yes. The rebuild is about whether or not the package includes native code. Not whether or not it requires extra config.
If you build a dev client and then run
yarn add react-native-fast-image
, then the old dev client does not contain the native part of react-native-fast-image
. If the JavaScript parts of it try to make a call to the native parts, you will get errors. This is the same reason you can't use the Expo Go app with something like react-native-fast-image
. Expo Go doesn't have the native parts compiled into it.I'm glad you were able to install
react-native-fast-image
.Yes,
expo-image
is not very old yet. No problem waiting a bit :)Apps Genie
Michael Wood: Understood! I just know one time I was able to add a package and didn't have to rebuild so that means the package must have been pure JS. I guess I need to look at the documentation of each package to see if it has native bits or not (that's how I'll know I need to spend extra time/resources rebuilding).
JS w/o any pod install (+equivalent for android?) = no dev rebuild (until prod)
JS with pod install = need to rebuild dev lient
JS with extra native instructions = rebuild + plugin config
Michael Wood
Apps Genie: Yes, if you were able to add a dependency without rebuilding your dev client, then it must have been pure JS.
If it's pure JS, it won't have
android
or ios
directories. But that's not a 100% guarantee, because it might depend on something else that has native code.If it mentions
pod install
or React Native autolinking or something like that, then it has native code and would need a rebuild.If, in addition, it says stuff about changing
build.gradle
or AndroidManifest.xml
or Info.plist
or other native code, then it will probably need a config plugin.
Apps Genie
Michael Wood: got it! thank you again for this
aestheticbeast345
You should really add this library to the SDK, it works like magic!!!
Michael Wood
aestheticbeast345: Have you tried
expo-image
?Uzay Macar
Michael Wood: I've tried
expo-image
and it had many issues, and the performance was lower than the standard React Native Image component.Emanuel 🚀
Is this support now in Expo Go?
Carlos Portela
Hi Brent Vatne, Would it be so difficult to add this library to the SDK so we don't have to mess with custom dev clients? Thank you for the great job you guys do day-in and day-out!
Brent Vatne
Carlos Portela: it is not that this is "difficult" to do, but we will not do it because we do not believe that it is the right decision for expo go. i think it would be good to get used to the dev client workflow because that is our recommended way to work if you want a similar experience to expo go but with your own customizations.
Carlos Portela
Brent Vatne: I understand, thank you for the reply. I have mixed feelings about this "custom dev client" approach. Yes, it is very cool and flexible, but I personally prefer to "shoot and forget". What used to be so simple becomes kind of a chore now with this approach. Is this the new approach going forward or will you continue to incorporate "selected" modules in the SDK? Back to the actual component, the real solution is for somebody to finally fix the <Image /> component. Thanks!
Jason Silly
Cannot agree more with Carlos. The beauty of Expo used to be the plug-and-go experience and the crystal clear documentations, so self-taught programmers like myself can save ourselfs the misary of having to move mountains before setting up the app. Now I and my app are completely at a pause (hope I'm not the only one) because there are a ton of issues to fix and stuff to learn before I can make it work. I'm certainly underqualified to pass judgement on this approach. All I can say is I feel foreign and disappointed with the conclusion here
Derek McLean
Brent Vatne: I am currently working my way through a React Native course that uses expo, and I've been shown that fast image is the "only way to go, it's the best"! What tradeoffs are there for going down this 'custom dev client' route? expo go is a phenomenal product, i just start it up and scan the qr, does the workflow change? you said the app store or google play store doesn't have it installed?
Brent Vatne
Derek McLean: you can learn more here: https://docs.expo.dev/workflow/customizing/
Brent Vatne
complete
Evan Bacon
in progress
Brent Vatne
we're focused on making it possible to add any library to managed expo apps, you can read about it here https://blog.expo.io/expo-managed-workflow-in-2021-d1c9b68aa10
Lorenzo Pieri
Brent Vatne: great!
O
Orel Hassid
I'm Here because Mosh :)
Saurabh Mankar
Orel Hassid: Same here :). Mosh should be given some credit :)
Cristian Guamán
Orel Hassid: x3
A
Amged
Orel Hassid: the same oh my God!
Sergey King
Should we expect this in EXPO 41?
Hirbod
Sergey King: not inside changelogs :/
Cyril Diagne
That would be awesome!
Load More
→