It can download Javascript (or other interpreted language, or config data), but you generally can't download and execute new compiled native code on iOS, due to iOS code-signing/executable-memory restrictions.
Also keep in mind Apple might penalize you for dodging the review process and shipping new features, etc.
(btw, one exception to the JIT rule is custom browsers for the EU)
Pardon my ignorance but can't an iOS app host a WASM runtime without being a browser? And if so it doesn't need to be an interpreted language necessarily.
Precisely. That has always been prohibited both by technical measures and by the App Store review guidelines. Especially on Apple, but also on Google Play / Android as well.
Sure you can choose not to adopt React’s reactive paradigm and manage state directly but using JavaScript. My understanding was that in RN, JavaScript code manipulates C++ objects in the C++ part of RN, which then calls host platform code to create views and render.
It can download Javascript (or other interpreted language, or config data), but you generally can't download and execute new compiled native code on iOS, due to iOS code-signing/executable-memory restrictions.
Also keep in mind Apple might penalize you for dodging the review process and shipping new features, etc.
(btw, one exception to the JIT rule is custom browsers for the EU)
Pardon my ignorance but can't an iOS app host a WASM runtime without being a browser? And if so it doesn't need to be an interpreted language necessarily.
I am fairly certain this is against Apple's policies. In principle you're not supposed to change the functionality of your app without review.
4 replies →
Yes, it could, but then you would have re-invented React Native. But in WASM.
Yeah, but to my understanding that’s not what Shopify is doing.
Precisely. That has always been prohibited both by technical measures and by the App Store review guidelines. Especially on Apple, but also on Google Play / Android as well.
Doing so would require the app to have the business logic written in JavaScript. Apple only allows JIT’ing JavaScript using JSC.
This seems to be a weaker claim than "RN is needed to do this", but practically speaking it might amount to that.
Sure you can choose not to adopt React’s reactive paradigm and manage state directly but using JavaScript. My understanding was that in RN, JavaScript code manipulates C++ objects in the C++ part of RN, which then calls host platform code to create views and render.