Here are some ways

Core Data

UserDefaults

Property List File

When to save data

  1. Data is changed
  2. Data collection is changed
    1. Add
    2. Remove
    3. Update
  3. The app is suspended
@Environment(\\.scenePhase) var scenePhase

yourview.onChange(of: scenePhase, perform: { newValue in
                if newValue == .inactive {
                    card.save()
                }
            })