1. Service and choices
Local Korean vocabulary learning is available without an account. Free includes the fixed first 30 words of each grade with unlimited repeats. Display, language, font, writing and playback settings stay on your device. Native learning surfaces, including widgets, notifications and app blocking, keep their learning and permission settings on your device where available. Optional account, purchase, backup and diagnostics services process the data below only when enabled and used; an unavailable service does not receive that flow. One requested learning backup is kept per application and account. Uploading replaces that backup; restoring replaces local learning records without automatic merging.
The app does not serve advertising or use an advertising SDK.
Where available and enabled by you, iOS Screen Time permission or Android app-usage and overlay permissions support vocabulary before opening selected apps. Selected app tokens or package names stay on the device. Notification permission supports local routine reminders; background audio plays bundled learning audio without microphone recording. Operating-system availability and permissions determine which features can run.
We do not request personalized ads or use IDFA or Android advertising ID for cross-app tracking. Analytics and crash reporting can be turned off in Settings. No advertising consent is needed because the app has no advertising.
2. On-device data
| Category | Data | Purpose | Retention |
|---|---|---|---|
| Local learning data and account caches | Selected app topik; EN or JA display and explanations, Content IDs and sync scopes, Viewed status, attempts, correct answers and successful sessions, Review and saved-item status, Current sessions and answers; up to 365 recent completed sessions and lifetime completion totals, Study date, time-zone offset, active learning seconds and daily study, test, review, view and correct-answer counts, Deduplication batch UUIDs and immutable payloads, Course generation, round, day and daily review progress, Fixed free catalog IDs and per-item routine completion rounds, Local compatibility metadata; unused pending commands cleared when opening the account store | Save progress, resume sessions, review mistakes, retain saved items and keep study history | Guest data stays until transferred to an account or the app is deleted. Local account learning records remain after sign-out for later sign-in. Unused pending commands are cleared when opening the store. Account deletion removes local records on the requesting device; other installations retain local copies until removed. Operating-system backups may retain or restore copies under the user's backup settings. |
| On-device learning and display settings | Study goals and Korean vocabulary grade, Theme, text size and Korean font, Voice speed, autoplay and reading aids, Recent session size and daily study and review goals for vocabulary, Bundled Korean word/example playback; no microphone recording, Where supported: widget, notification and lock-screen display preferences, hidden-content preference and local permission state | Remember preferences on each device | Guest settings remain until account transfer or app removal. Account settings remain after sign-out; account deletion clears the requesting installation. Operating-system backups may restore copies. |
| Analytics and crash-reporting preference | Whether analytics and crash reporting are enabled | Remember your choice between launches | Until changed or app/device secure storage is reset. |
| Handwriting practice strokes | Touch, mouse or stylus coordinates on the current practice screen | Render handwriting practice | Until the writing is cleared or the screen is closed. |
| Local sign-in session | Supabase user UUID, Access and refresh tokens, Session expiry, SecureStore chunk manifest and recovery journal | Keep optional account sign-in and refresh authentication | Until explicit sign-out or account deletion. iOS Keychain data may survive app removal and reinstallation on the same device. |
| Subscription access | Free/Plus entitlement cache and verification timestamps, Current account identifier, absent for guests | Determine access to available content and optional paid features | The current access cache is replaced by later verified decisions and removed with the app. |
| Word toll settings and action receipts | Selected app operating-system tokens or Android package names, Shared active hours, Pause-until time and disabled-for-today date, Word display snapshot and reveal, answer or emergency-pass receipt UUIDs | Show vocabulary before opening selected apps and apply answers once | Settings remain until changed or the app is removed. Action receipts are cleared after the learning ledger applies them. |
3. Data processed by services
If you use an account, Supabase processes identity, subscription access and requested cloud backups, for TOPIK. Learning records are not automatically uploaded. RevenueCat and Apple or Google process purchases and subscription status. When enabled, Firebase processes usage analytics and crash diagnostics.
Optional Google sign-in uses the native Google Sign-In SDK to obtain Google ID and access tokens, which are exchanged with Supabase for an app session. Supabase receives the same Google account identifiers, email address, name and profile image URL used to identify your account. We do not request Gmail messages, Google Drive files, camera or photo-library access.
| Category | Data | Purpose and basis | Choice |
|---|---|---|---|
| Optional account identity | Email address, Provider-supplied name and profile image URL in Google identity metadata; no camera or gallery access, Supabase user UUID, Authentication-provider identifier, Authentication timestamps, Google ID and access tokens obtained by the native Google Sign-In SDK and exchanged with Supabase for an app session | Create and secure an optional account; provide purchases and manual backup and restore Perform the account and subscription services you request. | Optional |
| Registered account devices and login sessions | Random per-installation UUID and server device UUID, Device model or platform label (not a personal device name), Account UUID and authenticated session UUID, Last online verification time and revocation status, Stable application ID and app membership/deletion status | Limit signed-in use to five registered devices per app and let users replace or revoke devices Provide and secure signed-in account access. Registration is required only for optional sign-in; guest learning does not register a device. | Optional |
| Authentication and API security logs | Request time, IP address, User agent, Request path, Response status, Supabase user UUID | Secure authentication, investigate errors, prevent abuse and maintain service stability Service security and operation, including applicable data-protection security obligations. | Optional |
| Server subscription access for cloud backup | Supabase user UUID, Stable application ID, Plus active status, Access expiry, RevenueCat verification time | Authorize explicit Plus cloud backup and restore requests Provide the Plus backup service requested by the user. | Optional |
| RevenueCat subscription and purchase data | App User ID topik:<Supabase user UUID>, Store, product and base-plan identifiers, Purchase, restore, renewal, cancellation, refund and expiry status and timestamps, Transaction/order identifiers and entitlements, App, SDK, store environment and diagnostic information | Provide and verify purchases, restore access, analyze subscription revenue, support customers and prevent fraud Perform the subscription you request and protect payment integrity. | Optional |
| Firebase analytics and crash diagnostics | Random app installation and Crashlytics installation IDs, App sessions and semantic screen names without identifiers, Content type and aggregate study/test starts, completions, question counts, correct counts and retries, Audio type and playback success/failure, Approximate location derived from masked IP information, App/OS versions, device model, language and network type, Crash stack traces and related app/device state, Firebase SDK types and versions, Fixed operational failure codes for local learning storage initialization and synchronization; no original error messages | Measure usage, understand crashes and improve reliability Minimal usage and reliability diagnostics; no account IDs, email, learning text, answer strings or handwriting coordinates are included. Advertising identifier support is disabled. | Optional |
| Support and privacy-rights requests | Reply email, Request type and content, Identity-verification result, Resolution and timestamps | Handle access, correction, deletion, restriction and consent requests; resolve disputes Fulfil applicable privacy-rights obligations and respond to your request. | Optional |
| Server reliability diagnostics | Operation and failure-stage codes, HTTP status and request duration, Random per-request diagnostic ID, deployment environment and release version | Detect service failures and restore service availability Service reliability diagnostics exclude account identifiers, client IP addresses, request contents, authentication tokens and learning data. Sentry is contacted by our server, not the app. | Required for the selected service |
| Manual cloud learning backup | Learning progress, saved items, review status and separate in-app/outside-app rounds, Routine settings, daily progress, listening position and study-date preferences, Current session questions, answers and queue cursors; cached card text for resuming the current list, Recent sessions, lifetime counts and daily learning statistics, Stable application identifier, server-verified source device model label, server upload time, revision and payload size | Keep one manually uploaded backup per application and account and explicitly replace local learning records on restore Provide the Plus manual backup and restore requested by the user. | Optional |
4. Privacy controls
Account creation is optional; purchases, restoration and cloud backup require sign-in. Change analytics and crash-reporting preferences in Settings.
We do not share learning content or account identifiers with advertising services.
5. Service providers and international processing
Providers may process information outside your country. The table describes their roles and processing locations; their published policies provide further detail.
| Provider | Role | Location and transfer | Retention |
|---|---|---|---|
| Supabase Pte. Ltd. | Optional account authentication, subscription access, account storage, backup, sync and security logs Optional account identity, Registered account devices and login sessions, Authentication and API security logs, Server subscription access for cloud backup, Manual cloud learning backup | Countries where Supabase and its subprocessors operate hosting, infrastructure and support services Encrypted network transfer when using the service | Per-record retention and production-project settings |
| Google LLC (Gmail) | Support, account deletion and privacy-rights correspondence Support and privacy-rights requests | United States and other countries where Google operates servers Encrypted network transfer when using the service | 1 year after request closure |
| RevenueCat, Inc. | Store subscription verification, Plus access, purchase restoration and billing diagnostics RevenueCat subscription and purchase data | United States and other countries where RevenueCat and its subprocessors operate services Encrypted network transfer when using the service | RevenueCat retention policies, store agreements and legal obligations |
| Google LLC | App usage analytics and crash/stability diagnostics Firebase analytics and crash diagnostics | United States and other countries where Google operate services Encrypted network transfer when using the service | Analytics property retention settings and the Crashlytics 90-day policy |
| Functional Software, Inc. (Sentry) | Sanitized server error monitoring and operational alerts Server reliability diagnostics | Depends on the selected Sentry hosting region and applicable subprocessor locations Encrypted network transfer when using the service | Configured Sentry project retention; confirm before production activation |
6. Retention and deletion
| Category | Retention | Deletion |
|---|---|---|
| Local learning data and account caches | Guest data stays until transferred to an account or the app is deleted. Local account learning records remain after sign-out for later sign-in. Unused pending commands are cleared when opening the store. Account deletion removes local records on the requesting device; other installations retain local copies until removed. Operating-system backups may retain or restore copies under the user's backup settings. | Reset learning history, delete the account on this device, or remove the app. Manage operating-system backups separately. |
| On-device learning and display settings | Guest settings remain until account transfer or app removal. Account settings remain after sign-out; account deletion clears the requesting installation. Operating-system backups may restore copies. | Delete the account on this device or remove the app; manage operating-system backups separately. |
| Analytics and crash-reporting preference | Until changed or app/device secure storage is reset. | Change the setting or reset device secure storage. |
| Handwriting practice strokes | Until the writing is cleared or the screen is closed. | Removed from memory. |
| Local sign-in session | Until explicit sign-out or account deletion. iOS Keychain data may survive app removal and reinstallation on the same device. | Sign out or delete your account. On iOS, app removal alone does not guarantee Keychain deletion. |
| Subscription access | The current access cache is replaced by later verified decisions and removed with the app. | Replacement by a new access decision, account sign-out where applicable, or app removal. |
| Word toll settings and action receipts | Settings remain until changed or the app is removed. Action receipts are cleared after the learning ledger applies them. | Disable the feature, deselect apps or remove the app. |
| Optional account identity | TOPIK membership remains until deletion. Shared authentication identity remains while another Routine app membership uses it; managed backups expire according to provider retention. | Authenticated TOPIK membership deletion or verified support request removes TOPIK cloud backup, device membership and app-specific billing identity. Shared authentication identity and provider grants are removed only when no other app membership needs them. |
| Registered account devices and login sessions | Registrations and bound sessions are removed on app-account deletion. Minimal deleted app membership remains while another app retains the common Auth identity; final Auth deletion removes it. A local receipt is cleared on denial; iOS Keychain may survive reinstall. | Revoke account access from device management; delete the account to remove server records. Revocation does not erase learning data. |
| Authentication and API security logs | According to the hosting project’s configured security-log retention schedule. | Automatic expiry; access is restricted while logs are retained, including after account deletion. |
| Server subscription access for cloud backup | For the life of the account; updated on verification and deleted with the account. | In-app account deletion or a verified support request. |
| RevenueCat subscription and purchase data | Subject to RevenueCat and store retention policies and applicable tax, dispute and security obligations. | Account deletion first requests removal of the RevenueCat customer. Store subscriptions and legally retained transactions are separate and managed through the store. |
| Firebase analytics and crash diagnostics | Analytics follows the property’s configured retention period. Crashlytics starts deletion of crash traces, minidumps and associated installation identifiers after 90 days under Google’s policy. | Turning this off stops new collection, resets the installation’s Analytics identifier and deletes unsent crash reports. Already transmitted data is not linked to an account for individual selection and follows Google’s retention and deletion processes. |
| Support and privacy-rights requests | 1 year after closure; ongoing disputes are retained separately with restricted access until resolved. | Permanently deleted after retention ends. |
| Server reliability diagnostics | Subject to the configured Supabase and Sentry project retention periods. Verify these settings before enabling production monitoring. | Automatically removed according to project retention settings; diagnostic events do not include an account identifier. |
| Manual cloud learning backup | One latest backup per application and account until replaced or the account is deleted. Failed uploads preserve the previous backup. | A successful new upload replaces the previous backup. Account deletion cascades to the backup. Managed database backups follow their retention schedule. |
Deleting TOPIK membership removes its live app-scoped records and cloud backup. A shared sign-in identity used by another ALAN app is retained for that app. Existing backups may retain copies until the hosting retention schedule expires. Operating-system backups are managed separately through your device or backup provider.
7. Your rights and contact
Contact [email protected] to request access, correction, deletion, restriction or withdrawal of consent. We may verify your identity before acting. You can request account deletion without reinstalling or signing in to the app. For general support, contact [email protected].
How to delete your account8. Data we do not collect
Precise location, Address books, Photos, camera and microphone access, Health information, Direct collection of payment-card numbers, bank account details or payment passwords, Sending handwriting coordinates to servers, Sending correct-answer or selected wrong-answer text to servers, An append-only history of individual learning events and completed answers, User input for AI services or model training, Third-party behavioral or cross-app tracking using IDFA or Android advertising ID, Email, Supabase user UUID, learning text, answer text or handwriting coordinates in analytics/crash payloads, IDFA, IDFV, Android advertising ID, SSAID and ad-personalization signals in Firebase Analytics
9. Operator
ALAN · Representative: 김선일
34, Nakseongdaeyeok 6-gil, Gwanak-gu, Seoul 08799, Republic of Korea · Business registration: 508-55-00902
Privacy officer: 김선일
Privacy: [email protected] · Support: [email protected]