Skip to content

Privacy Policy – QR Viewer

The current version is kept in the repository: github.com/thorsten-l/qr_viewer/blob/main/PRIVACY.md

Stand / Last updated: 14. Oktober 2026 / October 14, 2026
Gilt ab / Applies from: QR Viewer 2.2.0

Controller

Thorsten Ludewig
Email: t.ludewig@gmail.com

Summary

QR Viewer does not collect, store or transmit any personal data to the developer. The app has no user account, no advertising, no analytics or tracking, and no servers of its own.

Camera

The app needs camera access to scan codes. The camera image is processed solely on your device. No photos or videos are stored or transmitted. You can revoke camera access at any time in your device settings.

History and settings

The contents of the last 25 scanned codes and the most recently selected scan type and zoom level are stored locally on your device so that you can open them again later. The app does not send this data off the device. The history is stored encrypted (AES-256). The key is created randomly for each installation and is kept only in your device's Keychain (iOS) or Android Keystore; it is neither synced to iCloud nor included in backups. You can clear the history or single entries in the app at any time. One-time password keys (2FA, otpauth://) are never stored in the history. Deleting the app removes all of its data. On Android, the app does not take part in Google backups. An iCloud or device backup on iOS may contain the encrypted history; without the key, which stays on the device, it cannot be read.

Content recognition

The app recognizes common content formats such as contacts, events, Wi-Fi credentials, bank transfer data (GiroCode) or one-time password keys (2FA) and displays them in a readable form, as well as item numbers (EAN, ISBN), the Deutsche Post matrix code and setup codes of smart home devices (Matter). This happens solely on your device. Please note that such codes can contain confidential information, for example Wi-Fi passwords or the setup code of a Matter device; like any content, they remain in the history until you clear it. 2FA keys are not stored.

Electronic tickets

If a code contains an electronic ticket according to the VDV standard (e.g. Deutschlandticket), the app reads the included details such as validity, name (plain or masked, depending on the ticket) and date of birth solely on your device. It uses bundled public keys for this; no data is transmitted.

If a code contains a link, the app opens it in your browser or the responsible app only after you explicitly confirm. Known tracking parameters (e.g. utm_source, fbclid) are removed. The same applies to the actions on the result page: write email, call, SMS, map and authenticator hand the content to the respective app only after you confirm. “Look up online” sends the item number to DuckDuckGo or the ISBN to Open Library, “Track shipment” sends the tracking number to Deutsche Post. The privacy policy of the respective website or app applies. The “Support” button in the info dialog opens https://github.com/thorsten-l/qr_viewer/issues, the “Manuals” button https://github.com/thorsten-l/qr_viewer/tree/main/docs in your browser; GitHub's privacy policy applies there.

Clipboard, sharing and export

Content is copied to the clipboard only when you tap “Copy”. With “Share”, “Add to contacts”, “Add to calendar” and the history export (CSV or JSON) you pass content to an app of your choice via the operating system's share sheet; nothing is transmitted before that. “Show code” only draws the content as an image on your device's screen; nothing is stored or transmitted.

Android only: Google ML Kit

On Android, the app uses Google's “ML Kit Barcode Scanning” library to recognize codes. Recognition happens on the device; camera images are not sent to Google. ML Kit may, however, send technical usage and diagnostic data to Google, such as device model, operating system version, app package name and version, and performance metrics. According to Google, this data is used to operate and improve ML Kit. More information: https://developers.google.com/ml-kit/terms and https://policies.google.com/privacy

On iOS and iPadOS, recognition uses Apple's Vision framework on the device, without any third party involved.

Your rights

Since the developer does not process any of your personal data, there is no data about you that could be disclosed, corrected or deleted. If you have any questions about privacy, please contact the email address above. You also have the right to lodge a complaint with a data protection supervisory authority.

Changes

This privacy policy may be updated when the app changes. The current version is always available at https://github.com/thorsten-l/qr_viewer/blob/main/PRIVACY.md