Native App - optimising synchronisation to reduce initial load time

Hi Forum, we are building a mobile app which would be having approx 500 requests already in the system. We have a screen in which need to show these requests. Also we should be able to search from these requests. Because of the higher number of existing requests, the initial load of the app after initialisation is taking around 3-5 minutes. Other than this we have some master data to sync which is relatively less. Is there a way that I can optimise the synchronisation so that I can reduce the initial loading time? Something like sync only latest 50 requests initially then the remaining requests either in background after the app loads or on demand? Also there are some requests may have some images, I don’t want to sync them initially but if the user open the request for viewing, Is it possible to bring the images from the required mapping  table? One more scenario is we do have different roles, An Admin might need to see all the 500 requests, A manager will be seeing 100 requests based on his office and a normal user may need only 5-10 requests relevant for that user.  Is it possible to sync only the relevant requests based on user role?  Also do you have any other suggestions like bringing in an introduction screens which will only show in Initial loading time or a progress bar or a loading symbol instead of a static splash screen?
1 answers

Give the offline-first article a read to learn about the different options for syncing: 

It sounds to me like you’ll first want to apply entity access rules in your domain model based on user role (admin, manager, user)

Then you might refine that by setting up some custom sync settings.

And finally, for certain objects you may only want to use selective sync, where you execute a microflow and it syncs X number of objects down to your device.