Yes this can be done, look into the SaveData() and LoadData() commands, I am doing something similar for service technicians.
What I do when the service technician downloads his jobs for the day, also download a list of the assets he has to test. Then do SaveData(AssetList,"LocalAssetList") this saves the asset list to the memory on the device.
Then when the technician gets to a place with signal they can sync their data using LoadData(AssetList,"LocalAssetList), this takes the data from the memory on the device and creates a collection in powerapps. Then you can just use Patch(Datasource,AssetList)
FYI I would also recommend, after the sync is completed doing.... Clear(AssetList);SaveData(AssetList,"LocalAssetList") as doing this saves a blank file to the local device memory, effectively making sure it is empty.