Privacy Policy
Ling Lang Teacher ("the app") is a language-learning application published by Acrylic Code Inc. ("we", "us"). This policy explains what information the app handles, where it lives, and the choices you have. The short version: your learning data stays on your device. We do not operate accounts, and we do not store your conversations, vocabulary, or learning history in the cloud. What does leave your device is described below, section by section.
Data stored on your device
The app keeps all of your learning data locally on your device, including:
- Your learner profile (name, native language, target language, learning goals)
- Chat conversations with the AI teacher
- Your vocabulary, review history, and learning-progress graph
- Session history, streaks, and app settings
This data never leaves your device except as described in the next sections, and we have no access to it. On Android, the app opts out of Android's automatic cloud backup. On iOS, the app's data is included in your iPhone's iCloud or computer backup if you have those turned on; that backup belongs to your Apple Account, is governed by Apple's terms, and is not something we can read. If you use the in-app export feature, the exported backup file is created where you choose and remains entirely under your control.
Data that leaves your device
The app relies on third-party services to function. Everything below is transmitted over encrypted connections (HTTPS/WSS).
Our relay service. Requests to the AI and voice providers below do not go to them directly. They pass through a relay service we operate on Cloudflare, which adds our provider credentials so that no keys need to live inside the app, and which applies daily usage limits. The relay forwards the content of each request to the provider and does not store it. It does keep short-lived operational logs of each request: the time, the route, the response status, a random identifier your installation generates the first time the app runs (it is not tied to your name, email, Google account or Apple Account), your device's time-zone offset, and whether the app passed the platform's app-integrity check (Google Play Integrity on Android, Apple App Attest on iOS). These logs never contain your messages, audio, or learning data, and Cloudflare deletes them within seven days. The relay also keeps a running count of your requests per day so it can apply usage limits; that count is keyed by a one-way hash of the installation identifier.
Google AI services (Gemini API, Google Cloud Text-to-Speech). When you chat with the AI teacher — by text or by voice — your messages, and audio recorded while you actively use the microphone, are sent through our relay to Google's AI services to generate the teacher's responses, transcriptions, and speech audio. We do not store this content in the cloud; Google processes it to provide the service and, under its terms for paid API use, may keep it for a limited period solely to detect and prevent abuse, without using it to train its models. Its handling is governed by Google's Privacy Policy and API terms.
Inworld AI (voice synthesis). The app's standard voice turns the teacher's written replies into speech using Inworld AI. Only the text to be spoken is sent, through our relay; your own messages and recordings are not. Inworld's handling of this text is governed by the Inworld AI Privacy Notice.
Marketing measurement (Amplitude, Google Analytics for Firebase, Meta App Events). To understand which channels bring new learners, the app sends a small set of usage events to three analytics providers: Amplitude, Google Analytics for Firebase, and Meta (Facebook) App Events. The events are: app installed and opened, profile created, a lesson session started or ended, the upgrade screen shown, the free daily limit reached, a subscription started or a promo code redeemed, and a return visit on a second day. The events describe the app, not your conversations: no message text, no audio and no transcripts are ever sent. Each event carries a random identifier created when the app is installed (never your name; Meta receives it only while tracking is allowed, as described below for the advertising identifier), your native and target language, the app language, the app version, and basic device details (device model, operating system version, locale, time zone, screen size and density, processor count and storage size). On Android, the Google Advertising ID is included unless you have deleted or reset it in your device's Google settings; on iOS, the advertising identifier is included only if you allow tracking when the app asks, and you can change that at any time under Settings > Privacy & Security > Tracking. Meta and Firebase also receive the advertising identifier through their own software under the same device controls. Firebase also derives a general location, such as country or city, from a masked form of your IP address; it does not use your device's location services. When you subscribe, our relay service (not the app) reports the subscription to Meta once, with the price, currency, the store order id and, where permitted, the advertising identifier, so the ad that led to it can be credited; the relay never receives or forwards your payment details. Device details used for this reporting are kept on our relay for 180 days after the app was last used, then deleted. Test purchases made by our team are routed to Meta's test channel and never counted as real conversions. The handling of this data by each provider is governed by Amplitude's Privacy Policy, Google's Privacy Policy and Meta's Privacy Policy.
Amplitude (usage analytics). The app sends anonymous usage analytics — such as feature usage, session events, and general device information — to Amplitude to help us understand how the app is used and improve it. Analytics events do not include the content of your conversations, recordings, or learning data. Amplitude's handling of this data is governed by Amplitude's Privacy Policy.
We do not sell your data, and we do not share it with any third party other than the service providers listed in this policy, each solely to operate the app's features.
Subscriptions
Payment for a subscription is handled entirely by the app store you bought it through: Google Play on Android, or the Apple App Store on iOS. We never see your card or bank details. To confirm that a subscription is valid, the app sends the store's proof of purchase (the purchase token that Google Play issues, or the signed transaction that the App Store issues) to our relay service, which checks it with Google or Apple and keeps a record of the result: the purchase token or Apple transaction identifier, the one-way hash of your installation identifier, the plan you bought, the subscription's state, which store it came from, and its start and expiry times. On iOS the app also passes the store an anonymous token derived from the installation identifier so that the purchase can be matched to this installation. Google Play and the App Store also notify the relay when the subscription renews, pauses, is refunded, or ends, and the record is updated to match. We keep this record while the subscription is active and for up to three years after it ends, so that we can resolve billing disputes and meet our record-keeping obligations. It is never linked to your conversations or learning data, which the relay does not have.
Bug reports you choose to send
The app has a Report a bug option in Settings, and after an unexpected exit it may offer to send a report about that. Nothing is sent unless you press Send. A report contains a short description you write, information about the app and your device (app version and build, device model, operating system version, the app language and the languages you are learning, your subscription tier and usage counts, and how much learning data you have as counts only), recent error codes and screen names, and — if you leave the switch on — the app's diagnostic logs, which hold timestamps, error codes and screen names but never your conversations, vocabulary, profile text or audio. You can also attach a screenshot you pick yourself. The report travels over an encrypted connection to our relay service, which passes it to our issue tracker (Linear) so we can investigate; we keep it there for as long as the issue is open and for up to two years afterwards, and you can ask us to delete it using the contact below. Each report shows you a short reference code so you can refer to it. Separately, each reply from the AI teacher has a Report this reply option; if you use it and press Send, the text of that one reply, the reason you pick, an optional note you write, your session identifier, your app and learning languages and the app version are sent to us over the same encrypted connection for review, and never the rest of your conversation, logs or screenshots.
Separately, if you have allowed Google to share usage and diagnostics from your device, Google Play may report crashes of the app to us in aggregate through Android vitals. That data comes from Google under your Android settings, contains no learning data, and is not something the app itself sends. On iOS, if you have chosen in your iPhone settings to share analytics with Apple and with app developers, Apple delivers a diagnostic report about a crash of the app to the app itself, on the device, the next time it starts. The app keeps that report on your device and, on its next launch, offers to include it in a bug report; nothing leaves your device unless you press Send, and the report contains technical crash details only, never your learning data.
Microphone
The app requests microphone permission so you can speak with the AI teacher. The microphone is active only while you deliberately use a voice feature. Recorded audio is processed as described above and is not stored in the cloud by us.
Accounts
The app does not offer or require any account or sign-in. The only identifier we hold is the random installation identifier described above, which is created on your device, cannot be traced back to you by us, and changes if you reinstall the app.
Deleting your data
You can erase all of your learning data at any time using the app's Wipe All Data option in settings. Uninstalling the app also removes all locally stored data. Because we do not store your learning data in the cloud, there is nothing further for us to delete on that side. Relay logs expire on their own within seven days. If you have a subscription record or have sent a bug report and want it deleted sooner than the retention periods above, contact us at the address below and include your Google Play order number or Apple order ID (for a subscription record) or the bug-report reference code; we will delete what the law allows us to.
Children
The app is not directed at children under 13, and we do not knowingly collect personal information from children.
Changes to this policy
If the way the app handles data changes — for example, if we introduce optional cloud features in the future — we will update this policy and revise the effective date above before those changes take effect.
Contact
Acrylic Code Inc.
Email: colton.dyck@acryliccode.com