Snapshots are like save games. They represent a set of data and/or values from a specific moment in time in an application. Using snapshots allows an application (and thus eventually the end-user) to store data (in memory, in a file or any in other persistence tech) which can later be retrieved. The advantage of using this library is that it will zip all the data into a single snapshot package
Whenever a snapshot is created, the SnapshotManager will:
- Create a zip memory stream
- For each provider, it will ask the provider to fill up a memory stream which is stored as a separate file
- Persist the snapshot memory stream to the required persistence store
Below is an animated gif of the example app that is available in the component repository:
The library makes it super convenient to add custom data to a snapshot. Just create a provider and register it in the manager and you’re done. This way you can even store (multiple) files (representing a specific moment in time) in a snapshot. Then the users can restore the snapshots whenever they want to.