I have an Expo application that loads a large amount of configuration data from a web service. From here, the user selects a template. I would like the template to be an Expo application that is downloaded at run-time and executed in the parent Expo application. Is this possible?
If not, can anyone provide advice on how we might go about downloading and running a template at run-time? I had thought about it being a component but I think that has the same challenges as running a child Expo app at run-time.
Hi @jkentjnr - running a full project inside of a project isn’t really supported right now but if you’re looking to evaluate smaller pieces of code, that’s actually how Snack works. There’s basically a root (or almost-root) component that is responsible for evaluating code and mounting the child component it gets.
There are several challenges to this, including transforming the code (ex:
<JSXElements /> need to be compiled), fetching dependencies, and bundling multiple files together. I suspect it might be more effort than it’s worth.
One thing you could do is perhaps build on top of Snack using the Snack SDK. The flow could be that people download your app, which communicates with your server. Your server would use the Snack SDK to set up a template project and get a QR code that people could scan with the Expo client (they’d have to download this themselves) to run the template.
Instead of people downloading using the Expo client once a QR code is generated, could I download this snack app inside the container application? It would be great to be able to bundle the Expo engine inside applications.
The Snack mobile client isn’t open source right now, so not sure that would be possible. If you can enumerate all of the dependencies a templated project would need ahead of time you might just build it yourself. The transform / evaluation piece is pretty straightforward.
If we just want to avoid the scan a QR code dance, deep-linking to a particular snack might be a better way to go.
This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.