Saving on data on storage of the Device and Syncing on all other devices that has the same Account

I’m building an assessment app ,
The current goal for the app is that the data of it would be sync on every device the user has; let’s say the user has 3 Devices

  1. Device 1 - iPhone
  2. Device 2 - iPad
  3. Device 3 - iPhone

The data would be sync in all of those devices that has the same User Account used on the device but without the need of the user to login on to the app. Though this would be only be possible on IOS not on Android, as there’s the Storage Syncing used in IOS.

The app is coded in Ionic - Angular.

For IOS:
I’m currently thinking of the storage device as the storage of the data of the App, the question be how can this be achieved on storing on the Storage of the IOS and the Ionic App fetching the stored data on the storage of the device, at the same time create a data store there if no data is currently found for that logged in user in the device - do note: NOT ON THE APP BUT ON THE DEVICE.

For Android:
As 3rd Party Apps would be required to do this, I’m thinking of opting for a Google/Apple sign in if it’s on Android Device.

Hi there,

There are few things I’d like to understand how you envision it yourself - also having dealt with a similar issue in the past.

How do you envision the syncing between devices? Via a server or some peer2peer communications?

And do you consider 1 device as the source of truth, so to ease the syncing process? Or do you want to have a distributed truth meaning the devices (via server?) need to check with each other what determines the latest version of the truth? And using what characteristics (e.g. latest update on specific records)?

Next, I wonder what the relevance is of an out-side-app storage on the device. Do you want other apps to be able to reach that data? Technically I guess there are ways? And why you believe this is not possible on Android? I don’t know from practice, but I reckon one can write to some file system accessible to other apps - but again - why would you want to do this?

In my case, the syncing and having data available offline became a nightmare. Due to lack of my underestimation of the complexity of it.