Question: You are specifically calling out Patch, but what are the interactions with the Tables in F&O prior to doing patches?
You ask about pre-loading techniques, but this really depends on what the app is doing that you are interacting with. Primarily speaking, if you have some tables that you need to use, adding a Loading Screen activity when your App first loads, to connect to the sources, (again it has to balance with how many you want to do this with), has a big impact on further interactions.
The more you can pre-load (based on optimized views and delegatable filters) will help. Now you will see people put this in the OnStart, you can even turn on Async OnStart. I do not recommend this. I recommend you use the OnVisible property of either the Main screen to preload, again using a Loading Screen activity. What I mean is, there is a built in "loading data" if you will feature, but I prefer to create my own.
This is a standard people are used too.
However, you also have the option of using a Timer, to load data asynchronously, but its another one with caveats. It has to be complete before the person actually attempts to use the data you are preloading into Collections or records / Tables etc.
So, in the end, optimizations are broad strokes, app specific optimization techniques require more knowledge about exactly what the app is doing.
For instance, if I know I have 7 small tables that are useful for filtering or meta-data then I would pre-load them into Collections
If I have a large table, but that will be filtered down to X number of rows for that person to work with, then I want to use a Loading Message at the App Starts (not in the app onstart), to preload that as it will make the ongoing experience great.
But we also have to take into account all datasources, the volume of data, the number of users, the velocity the data is changes and the needs to "refresh" the data as the user continues.
So without very specific details and actual review of your ecosystem, there are simply general things to look at doing.
1 thing I definitely recommend is making sure that your settings are such that controls and screens etc that are not visible, not in use are not being loaded or filled with data until necessary
2 I recommend people use Monitor (now called Live Monitor) to track while developing and testing, so see what data and what size of data and delegation issues you are hitting so you can optimize them 1 by 1.
I hope this helps some, if so Please Mark the Answer as such and Maybe a Like