I want to understand how EXPO works...

I picked EXPO over ReactNative for my new project. But I have some questions about how it works, and the performance.

  1. Are EXPO and ReactNative the same under the hood? (in terms of how it works with native code?) How does bundled JS file get used/translated by app(built for iOS or Android)? What I thought was when ‘expo build:ios’ is run, It would translate all JS into SWIFT language. And that’s how the app can gain the native performance.

  2. If JS is not translated into the native language (to SWIFT or to JAVA), then what renders bundled JS file?(WebkitWebView? UIWebView? I mean, JS can’t be translated without any WebView?) And when is it rendered? (Every time the app runs?)

  3. And if that’s how EXPO works, then is that how ReactNative works as well? JS rendered by WebView every run-time? If so, how does it have native-like performance??

  4. If that’s not how ReactNative works(rendering JS on every runtime by WebView), then does it have better performance? I mean, in that case I think I can say EXPO isn’t technically ReactNative. The working mechanism is different. Am I right?

  5. If the EXPO app for app store is just an App with WebKitWebView that renders the bundled JS file every run-time, I think I can say EXPO and PhoneGap are technically the same(the mechanism of How it Works). Am I right?

I’m super curious!! Thanks in advance!! :wink:

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.