Privacy Policy

Last updated: June 2026

1. Overview

Flashing Light: Morse Trainer is a native training tool from Osprey Applications LLC that helps mariners practice receiving, transmitting, and interpreting visual Morse signaling for U.S. Coast Guard flashing-light competency. This policy explains exactly what the app does and does not do with your information.

In short: all of your training content, drill activity, scores, statistics, and settings stay on your device. The app requires no account and no sign-in. The only information that leaves your device is purchase-related data, processed by Apple and by our purchase-management provider, RevenueCat, solely so we can sell, validate, and restore the one-time “Full Access” purchase. The app contains no advertising, no cross-app tracking, and no third-party analytics or crash-reporting SDKs.

No accounts. No third-party analytics. No ads. Your training never leaves your device. Only purchase information is processed off-device, and only to manage the “Full Access” in-app purchase.

2. No Accounts or Sign-In

No user accounts, no sign-up, and no sign-in are required to use the app. The app does not ask for your name, email address, or any other identifying personal information in order to function.

3. What Stays on Your Device

The following is stored only on your device and is never transmitted to us:

  • Training history and progress — your session attempts, item attempts, per-symbol mastery statistics, scores, and app settings are stored locally using SwiftData inside the app’s private sandbox. There is no iCloud or CloudKit sync in this version.
  • Bundled reference content — the app ships a read-only database of Morse symbols, signal items, drill templates, and PUB 102 / International Code of Signals reference entries. This content is identical for every user and read-only, and your interaction with it is never transmitted.
  • App preferences — small interface defaults and a cached “Full Access” entitlement flag (so the app can read your purchase status instantly at launch) are kept in local UserDefaults. A device keychain entry may hold an internal application key. None of these report data anywhere.

Uninstalling the app removes all of this on-device data.

4. What Leaves Your Device (Purchases)

The app is free to download and is monetized by a single one-time, non-consumable in-app purchase called “Full Access” ($9.99). Selling, validating, and restoring that purchase requires processing a limited amount of data off-device.

4.1 RevenueCat (purchase-management provider)

We use RevenueCat, a third-party purchase-management service, solely to sell, validate, and restore the one-time “Full Access” purchase and to determine your entitlement (whether you own Full Access). RevenueCat is the only component in the app that communicates over the network. Through RevenueCat, the following categories of data are processed:

  • Purchases — purchase and transaction data and your entitlement status.
  • Identifiers — an anonymous app-user identifier generated for purchase management, and the device-scoped identifier for vendor (Apple’s identifierForVendor).
  • Usage Data and Diagnostics — SDK usage and diagnostic information generated by the purchase SDK.

Data shared with RevenueCat is used only to manage your purchase and entitlement. It is not used for cross-app tracking and not used for advertising or ad attribution. The app declares no tracking and contains no advertising or ad-attribution SDKs.

4.2 Apple StoreKit (payment processing)

Payments are processed by Apple through StoreKit (RevenueCat operates on top of StoreKit). The developer never receives your payment method, billing address, or other identifying purchase details. Apple’s own privacy policy governs the payment itself.

5. Progress Export

With Full Access, you can export your training history. “Export progress” writes a JSON file (your sessions, attempts, mastery statistics, and settings) locally and hands it to the standard iOS share sheet. The app performs no cloud upload of this file — where you send or save it afterward is entirely your choice and outside the app’s privacy boundary.

6. Required-Reason API Usage

The app’s privacy manifest declares its use of certain Apple “required-reason” APIs:

  • UserDefaults — small interface defaults and the cached entitlement flag.
  • File Timestamp
  • Disk Space
  • System Boot Time

None of these APIs are used to report data to the developer.

7. No Advertising, Tracking, or Analytics

The app contains no third-party analytics, no crash-reporting SDK, and no marketing or attribution SDKs other than RevenueCat, which is used only for purchases. There is no advertising, and the app performs no cross-app tracking.

8. Children’s Privacy

The app is not directed to children under 13 and does not knowingly collect data from children. Because no personal data is collected by the developer, there is nothing about a child to access, correct, port, or delete.

9. Your Data Rights

Because no personal data is collected by the developer, there is nothing to access, correct, port, or delete on our side. All of your training data lives on your device and is under your control; uninstalling the app removes all on-device data. For the limited purchase data processed by Apple and RevenueCat, those companies’ respective privacy policies and tools govern your rights.

10. Data Security

On-device data is stored using the operating system’s built-in app sandbox and security mechanisms. Purchase data in transit to RevenueCat and Apple is protected by their respective systems.

11. Changes to This Policy

We may update this privacy policy from time to time. We will post the revised policy here and update the “Last updated” date above. Material changes that affect how data is handled will be reflected in this document.

12. Contact

For privacy questions, contact us at: