So, after about a week and a half of horsing around with AR and then discovering that I needed to eject to get the project to work on a distributed standalone (thank you all for that info! ) And then ejecting, and then trying mightily to set up an ejected project without success, and reading countless documentation across Expo forums and across the internet. I think I have discovered something, that may be obvious to others, but it certainly was not to me. (Please correct me if I am wrong) ā Either:
- You create an Expo āManagedā app. With that, you get Expo in all of itās glory. Basically, a one-stop-shop to build a multi-platform app. You get forums and a killer community of awesome helpful people to help you work through your issues. ā There is a small learning curve with all of it, but when you find your flow, you can absolutely FLY in dev as compared to an iOS/Android multi-paradigm that you may have come from. ā It is truly impressive.
OR
- You āejectā. Once you do this, you have, for all intents and purposes, āleftā Expo. ā You are now creating a āBareā React Native app. Short of any Expo modules that you might find useful, there isnāt much else for you. Your dev community is now switched over to the React Native community. All of the incredible awesome-ness in ease of build and release management that Expo afforded you is now gone (<- I mean this most sincerely. You will VERY quickly realize how much you absolutely LOVED these things that Expo did for you).
Expo docs are actually quite clear about this distinction. Maybe it was me being hopeful that when the day came that I might have to āejectā to get more functionality I wouldnāt have to abandon all of this āwonderful-nessā that I grew to know and love, but at the end of the day, that what has appeared to happen. And again, I cannot stress enough, I blame no one but me for this
So what now? For me, I will create two different work streams. One, where I may continue to try and wrangle this whole ejected thing and find some new forums and groups to work through these hardships with, and another where I continue with a few more value-add features that I will still be able to implement in the incredible, awesome dev flow that is Expo.
Hope this helps you with your decisioning and saves you the 8 dev days I lost figuring this out for myself. ā Good luck out there!!
5 Likes
hey @kodmunki! hopefully weāll be able to address your specific use case at some point so that you and people like you wonāt need to eject. I just wanted to clarify one thing: currently when you eject, you get an āExpoKitā project. this is a bit different than what the ābareā workflow available to you when you initialize your project. basically, ExpoKit is like including the Expo client in your app but rather than having the Expo client app where you can sign in and open your apps in development, it just points directly to your app. this has some nice benefits - everything works roughly the same as when you were in the Expo client. but it also has some downsides (discussed in the ExpoKit 2019 blogpost). bare apps, on the other hand, are just regular react-native apps with as few or as many of the expo sdk packages installed as you like.
weāre in a bit of an in-between phase where we are working on getting parity in the ābareā react-native workflow with ExpoKit so that we can switch everyone over to the bare workflow. this should make it easier for people to work with ejected apps, but of course not quite as easy as the managed workflow
2 Likes
Thank you for the added clarity, notbrent! ā I will definitely be reading the post you shared. ā I greatly admire the care the Expo team has put and continues to put into this project. And very much appreciate all of your help! Thanks!
Thereās not as many of us, but there is an ExpoKit community out here on the Slack and Forums and weāve been able to help each other out from time to time. I didnāt personally chime in on any of your AR issues because I donāt know my AR from āArrr, Iām a pirate!ā. But keep posting to the forums, and as you figure stuff out, be sure to post what worked for you. I try to keep an eye out in case thereās anything I know from experience how to fix, and I know other users do, too (not to mention of course the vast knowledge of the actual Expo team).
Weāre about to put out a huge app update completely rebuilt in ExpoKit. There were some weird bits, but I think weāre way ahead because of the Expo APIās and OTA updates compared to if we had gone with vanilla RN. It was scary at first, but it gets better pretty quick.
1 Like
Also struggled with ejected app at first but this was mostly due to not knowing anything about native appsā¦ Now with more knowledge itās fine and Iām generally able to solve native problems, itās still hard but it get easier.
One trick I use in my apps is this one
This has been immensely useful because only me has to deal with the native side. Other devs are able to keep working with the managed workflow and expo client.
Iām going to start my blog soon where many things will be related to dealing with Expo ejected apps, as itās true there is a miss in content for people like us that donāt really know much native yet have to deal with it.
3 Likes
Thanks for the addition to this forum post @slorber! And, thanks for the link! Iād really like to check out your posts when you get them up. I hope youāll reply back to this post, or keep me in the loop. Thanks again! twitter: @kodmunki
Thanks for the info @llamaluvr and the vote of encouragement! Iāve reverted back to the safety of a managed app and forked a parallel workflow to keep working through ejection and getting these AR features live. I will certainly continue to contribute to the Expo community in any positive way I can. ā I really love what you are all doing with Expo. Itās very nice work! Thanks again!
weāre working on changing āexpo ejectā so that it does that for you, but itās not ready yet. for now you can just init a new project with the bare template and copy your app over, then add the modules you need one by one
edit: I realized this was more useful as a separate post but is still relevant here. This post is here: Firebase, ExpoKit, and bare confusion