- Add GLOSSARY.md with core terminology and cross-references - Add implementation-roadmap.md with 3-phase development plan - Add notification-system.md with Native-First architecture spec - Update ios/Plugin/README.md to reflect actual vs planned implementation status This establishes the foundation for implementing shared SQLite storage, TTL-at-fire enforcement, rolling window safety, and platform completion as outlined in the phased roadmap. Files: 4 changed, 807 insertions(+), 13 deletions(-)
69 lines
2.0 KiB
Markdown
69 lines
2.0 KiB
Markdown
# iOS Implementation
|
||
|
||
This directory contains the iOS-specific implementation of the DailyNotification plugin.
|
||
|
||
## Current Implementation Status
|
||
|
||
**✅ IMPLEMENTED:**
|
||
- Basic plugin structure (`DailyNotificationPlugin.swift`)
|
||
- UserDefaults for local data storage
|
||
- Power management (`DailyNotificationPowerManager.swift`)
|
||
- Battery optimization handling
|
||
- iOS notification categories and actions
|
||
|
||
**❌ NOT IMPLEMENTED (Planned):**
|
||
- `BGTaskScheduler` for background data fetching
|
||
- Background task management
|
||
- Silent push nudge support
|
||
- T–lead prefetch logic
|
||
|
||
## Implementation Details
|
||
|
||
The iOS implementation currently uses:
|
||
|
||
- `UNUserNotificationCenter` for notification management ✅
|
||
- `UserDefaults` for local data storage ✅
|
||
- iOS notification categories and actions ✅
|
||
- Power management and battery optimization ✅
|
||
|
||
**Planned additions:**
|
||
- `BGTaskScheduler` for background data fetching
|
||
- Background task management
|
||
- Silent push support
|
||
|
||
## Native Code Location
|
||
|
||
The native iOS implementation is located in the `ios/` directory at the project root.
|
||
|
||
## Key Components
|
||
|
||
1. `DailyNotificationPlugin.swift`: Main plugin class ✅
|
||
2. `DailyNotificationPowerManager.swift`: Power state management ✅
|
||
3. `DailyNotificationConfig.swift`: Configuration options ✅
|
||
4. `DailyNotificationMaintenanceWorker.swift`: Maintenance tasks ✅
|
||
5. `DailyNotificationLogger.swift`: Logging system ✅
|
||
|
||
**Missing Components (Planned):**
|
||
- `BackgroundTaskManager.swift`: Handles background fetch scheduling
|
||
- `NotificationManager.swift`: Manages notification creation and display
|
||
- `DataStore.swift`: Handles local data persistence
|
||
|
||
## Implementation Notes
|
||
|
||
- Uses UserDefaults for lightweight data storage ✅
|
||
- Implements proper battery optimization handling ✅
|
||
- Supports iOS notification categories and actions ✅
|
||
- Handles background refresh limitations ✅
|
||
|
||
**Planned Features:**
|
||
- BGTaskScheduler for reliable background execution
|
||
- Silent push notification support
|
||
- Background task budget management
|
||
|
||
## Testing
|
||
|
||
Run iOS-specific tests with:
|
||
|
||
```bash
|
||
npm run test:ios
|
||
``` |