For example, iOS has these features:
- iCloud backup restore or peer-to-peer transfer, very early in the device setup process
- Two ways for things to be stored in iCloud, each with a corresponding list of per-app (not per-folder) toggle switches in iCloud Settings
- “Saved to iCloud” normal syncing
- Requires apps to use the right APIs and to handle conflicting changes
- Allows same data to be read and modified by multiple devices
- iCloud backup
- Available for all apps
- Separate backup per device
- Only downloaded when setting up a new device
- In app sandboxes, only excludes
tmp
(Flatpak equivalent is somewhere in/run
) andLibrary/Caches
(equivalent tocache
directory in Flatpak sandbox) by default - Allows apps to set
isExcludedFromBackup
attribute for specific files (useful for things that are easy to recreate via download but are expected by the user to not be automatically deleted) - Includes system configuration such as home screen layout
- Backs up a list of installed apps without backing up their executables and assets
- “Saved to iCloud” normal syncing
- Synced list of previously installed apps, not separate per-device
Nextcloud & Syncthing
+kde connect
Yeah, I use Syncthing to back up my PC’s and devices, works like a charm.
Yeah I have a raspberry pi ‘syncthing hub’ that keeps all my devices uniform down to dot files and configs. It’s so essential. It’s so nice as well to be able to switch from my desktop to a laptop and continue coding seamlessly. Everything is ready as soon as I log to my computer. Don’t have to use any kind of service like google cloud, etc.
I feel like this, combined with an immutable distro and copy-on-write fs like zfs could make a really robust setup.
Maybe not beginner friendly yet but all the pieces are there.