The short version
- The library content you open is served on your device and is not sent to us.
- The only data the app may send is optional crash reports and optional usage analytics. Both are controlled by a setting you can turn off at any time.
1. Information the app collects
Only when you enable it in Settings, and nothing else:
- Crash and diagnostic data. When crash reporting is on, the app sends a crash report with basic device and diagnostic information (app version, device model, operating-system version, the error, and the stack trace) to our crash-reporting service, so we can fix problems. It describes the failure and the device, not the content you view.
- Usage analytics. When analytics is on, the app sends anonymous usage events (which screens and features are used) so we can improve the app. Advertising identifiers are not collected.
The app does not collect: your name, email address, contacts, phone number, precise or approximate location, the documents, media, or content you open, or any account identifier (there is no account).
2. How the app uses this information
Only to keep the app stable (fix crashes) and to understand which features are used so we can improve the app. We do not use it for advertising or profiling.
3. Permissions the app requests, and why
- Camera: to scan a QR code when you connect to or share a library. No images are stored or sent.
- Nearby devices and Wi-Fi: to create and run a local Wi-Fi hotspot so nearby devices can reach the on-device library. Not used for location.
- Notifications: to show the status of downloads and of the on-device server.
- Storage: to read and write the offline library and backups on the device (some app versions).
- Ignore battery optimizations: so the on-device server keeps running while the screen is off. You grant this through the system dialog, and it is optional.
Some permissions vary by app version and distribution channel.
4. Who we share data with
We do not sell or rent your data. The optional data above is processed only by our providers:
- Crash reports: GlitchTip, a hosted, Sentry-compatible error-tracking service, acting as our processor.
- Usage analytics: Google (Firebase Analytics). See Google's privacy policy at https://policies.google.com/privacy. Advertising-ID collection is disabled.
The content you access is served locally on your device and is never sent to us or to a third party.
5. Data retention and deletion
Our crash-reporting provider holds crash and diagnostic data for up to 90 days and then deletes it automatically. Usage analytics is kept under Google Firebase Analytics data-retention settings. Because the app keeps no account, there is no profile to delete. You can stop all collection at any time by turning off crash reporting and analytics in the app's Settings. To request deletion of data already collected, contact privacy@appdevforall.org.
6. Children
The app is a general-audience educational tool and is not directed to children under 13, and we do not knowingly collect personal information from children under 13. The app is the operator tool that runs the on-device library; people who browse the content do so through a web browser, not through this app, so the app collects nothing from them. If you believe a child under 13 has provided us information, contact privacy@appdevforall.org.
7. Your privacy rights
Depending on your region (the EEA, the UK, Switzerland, Canada, or a US state), you may have rights to access, correct, or delete your data and to withdraw consent. Because collection is optional and tied to a setting you control, you can exercise these rights yourself at any time by turning crash reporting and analytics off in the app's Settings. To make a formal request about data already collected, contact privacy@appdevforall.org.