76 lines
2.0 KiB
Markdown
76 lines
2.0 KiB
Markdown
# SecureStorgageSample
|
|
|
|
A sample iOS app demonstrating the LocalData package capabilities for secure, typed storage across multiple domains.
|
|
|
|
## Features
|
|
|
|
This app provides interactive demos for all LocalData storage options:
|
|
|
|
| Tab | Demo | Storage Domain |
|
|
|-----|------|----------------|
|
|
| **Defaults** | Save/load/remove values | UserDefaults |
|
|
| **Keychain** | Secure credentials with biometrics | Keychain |
|
|
| **Files** | User profiles with AnyCodable | File System |
|
|
| **Encrypted** | AES-256 encrypted logs | Encrypted File System |
|
|
| **Sync** | Platform availability & sync policies | Multiple |
|
|
|
|
## Requirements
|
|
|
|
- iOS 17.0+
|
|
- Xcode 15+
|
|
|
|
## Getting Started
|
|
|
|
1. Open `SecureStorgageSample.xcodeproj`
|
|
2. Select an iOS simulator or device
|
|
3. Build and run (⌘R)
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
SecureStorgageSample/
|
|
├── ContentView.swift # Tabbed navigation
|
|
├── StorageKeys.swift # 12 example key definitions
|
|
├── WatchOptimized.swift # Watch data models
|
|
└── Views/
|
|
├── UserDefaultsDemo.swift
|
|
├── KeychainDemo.swift
|
|
├── FileSystemDemo.swift
|
|
├── EncryptedStorageDemo.swift
|
|
└── PlatformSyncDemo.swift
|
|
```
|
|
|
|
## Storage Key Examples
|
|
|
|
The app demonstrates various storage configurations:
|
|
|
|
### UserDefaults
|
|
- Simple string storage with automatic sync
|
|
- Custom suite support
|
|
|
|
### Keychain
|
|
- 7 accessibility options (whenUnlocked, afterFirstUnlock, etc.)
|
|
- 6 access control options (biometry, passcode, etc.)
|
|
|
|
### File System
|
|
- Documents directory (persisted, backed up)
|
|
- Caches directory (can be purged)
|
|
- JSON and PropertyList serializers
|
|
|
|
### Encrypted Storage
|
|
- AES-256-GCM encryption
|
|
- PBKDF2 key derivation with configurable iterations
|
|
- Complete file protection
|
|
|
|
### Platform & Sync
|
|
- Platform availability (phoneOnly, watchOnly, all)
|
|
- Sync policies (never, manual, automaticSmall)
|
|
|
|
## Dependencies
|
|
|
|
- [LocalData](../localPackages/LocalData) - Local package for typed secure storage
|
|
|
|
## License
|
|
|
|
This sample is provided for demonstration purposes.
|