It can load 100% offline, but you have to code the app to do so. I prefer setting up an upload mechanism with an alert telling them to upload their data manually when they are ready but it's for inserts only not full mesh, which works best anyway since you don't want conflicts.
Anyway, look up the LoadData and SaveData functions as you have to basically savedata() after every change to a collection so it saves the collection to a local file, then on start check for internet and if it's available, load data online, else load from the savefile. I always run off local collections on the app and load the data on app start into them so if I lose connection anytime after starting it can keep running. Then upload the data when ready. (Red border and message at bottom saying, "You have pending changes" click here to upload etc.