Expoがどう動くか
この辺のdocsを読んだメモ
Expoの動きの概要
ExpoとExpo CLIの2つがある
Expo CLIを起動すると以下の2つが立ち上がる
https://gyazo.com/ca8ffec8e5f33a359ab0ed42bf5d600e https://docs.expo.dev/guides/how-expo-works/
これにはappを起動するために必要な情報が載っている
コレを見て、loading iconを表示する
bundleUrlを見て、Metroとやり取りする bundleUrlは、exp.directというdomain
JSを1つのfileにcompileする
その際に、deviceのJS Engineと互換性があるものに変換する
e.g. React Componentは、React.createElementに変換する
<Image source={require('./assets/example.png')} />のようなassetのpathを解決する
Productionで配信する
JS bundleにcompileする
minifyとproduction buildを行う
uploadされたものは、URLがわかれば見ることができる
URLはexp.hostというdomain
これがOTAとかで配信されるやつ
配信されたものを表示する
https://gyazo.com/a9375a3b72ae883775e4d11476a03c25 https://docs.expo.dev/guides/how-expo-works/
manifest.jsonをExpo backendに取りに行く
そこに書かれているURLを見て、cloudfrontからJSやAssetを取得する
互換性があるものが配信される
互換性があるかどうかは以下のものを見て判断される
platform
ios/android
互換性があるかどうかは、以下のフローチャートに則り決定される
https://gyazo.com/babc4def3586caf2875021635c57a959 https://docs.expo.dev/workflow/publishing/
得意に奇抜なことはしていないmrsekut.icon