Created docs/GETTING_STARTED.md with: - Installation instructions (npm/yarn/pnpm) - Platform setup (iOS and Android) - Basic usage examples - Links to authoritative documentation - Next steps and support resources Updated docs/00-INDEX.md to link getting started guide. Verification: - Documentation created and linked ✅ - Follows established doc structure ✅
3.4 KiB
3.4 KiB
Getting Started
Purpose: Step-by-step installation and setup guide for Daily Notification Plugin.
Owner: Development Team
Last Updated: 2025-12-22
Status: active
Installation
npm
npm install @timesafari/daily-notification-plugin
yarn
yarn add @timesafari/daily-notification-plugin
pnpm
pnpm add @timesafari/daily-notification-plugin
Platform Setup
iOS
- Add to
Info.plist:
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
<string>com.timesafari.dailynotification.fetch</string>
</array>
- Register background task in
AppDelegate.swift:
import BackgroundTasks
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
BGTaskScheduler.shared.register(forTaskWithIdentifier: "com.timesafari.dailynotification.fetch",
using: nil) { task in
// Handle background fetch task
}
return true
}
Android
- Add permissions to
AndroidManifest.xml:
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
- Register WorkManager in
Application.kt:
import androidx.work.Configuration
import androidx.work.WorkManager
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
WorkManager.initialize(
this,
Configuration.Builder()
.setMinimumLoggingLevel(android.util.Log.INFO)
.build()
)
}
}
Basic Usage
1. Import the Plugin
import { DailyNotification } from '@timesafari/daily-notification-plugin';
2. Request Permission
const { state } = await DailyNotification.requestPermission();
if (state !== 'granted') {
console.error('Notification permission denied');
return;
}
3. Create a Schedule
const { schedule } = await DailyNotification.createSchedule({
id: 'morning-notification',
kind: 'notify',
clockTime: '09:00',
enabled: true
});
4. Verify Schedule
const { schedules } = await DailyNotification.getSchedules();
console.log('Active schedules:', schedules);
Next Steps
- Quick Start Guide — Minimal working example
- Common Patterns — Common integration patterns
- Integration Guide — Full integration guide
- Troubleshooting — Common issues and solutions
Authoritative Documentation
- Documentation Index — Complete documentation navigation
- System Invariants — Enforced system invariants
- CI Usage — Local CI documentation (
./ci/run.sh)
Support
For issues, questions, or contributions:
- Check Troubleshooting Guide
- Review System Invariants
- Check Progress Documentation for current status
See also:
- README.md — Complete plugin documentation
- Performance Characteristics — Performance expectations