Yes, the problem you described does exist. As a possible solution, you can use the ram-bundle format that the metro packer provides.
In this case, you will not download the entire js package - you will download only the part that you need at startup (in many applications there are many places that the user may not even see, and this function allows you to download such parts only when they are required) . This way you can simplify your entry point and download only a small piece of your bundle.
You can look at response-native-bundle-splitter . This library is well integrated with almost all popular navigation libraries and allows you to delay the loading of certain routes. For example, if you have a login screen, you can download only this screen at startup, and download all the others in the background, or start downloading them only when the user can see them. And the launch time of your complex application will be almost the same as for the Hello world application.
Kirill Zyusko
source share