Storage
- Bundle: built into the application
- Application Sandbox: directory limited in access to your application
- Documents: backed up -
FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
- Library
- Caches: not backed up
- Preferences: backed up
- tmp: not backed up, should clear out when done
Scene States
- Unattached: does not execute code, does not have any memory reserved
- Foreground Active: interface on screen, accepting events, code handling them
- Foreground Inactive: interrupted by a system event, like a phone call, Siri or task switcher. Visible and executing code, but not receiving events
- Background State: home screen or another app. Save data and release shared resources as quickly as possible
- Suspended State: after a default of 10 seconds of being in background state. Can’t see interface, can’t execute code. Like a snapshot. Stays as long as there is system memory (may still show in the task switcher, but will be relaunched)
| State |
Visible |
Receives Events |
Executes Code |
| Unattached |
no |
no |
no |
| Foreground Active |
yes |
yes |
yes |
| Foreground Inactive |
mostly |
no |
yes |
| Background |
no |
no |
yes |
| Suspended |
no |
no |
no |
Clearing Out Devices
To remove large folders in ~/Library/Developer/CoreSimulator/Devices
- Run
xcrun simctl list devices to list devices
- Run
xcrun simctl delete [uuid] to delete any device