HANNI FOR ANDROID
Privacy policy
Updated 27 September 2026
Hanni:Everyday Korean is operated by Minje Jeon (Jeon Minje), Singapore. This page covers the Android app. Contact jmj070806@gmail.com for support or privacy requests. See the separate iPhone, iPad and website policy for those services.
Your learning stays on your device
No learner account is required. Onboarding choices, lesson and mission progress, reviews, saved words, TOPIK selections and preferences stay on your device. The Home Screen widget reads saved words, completed lessons and membership status from the app’s local storage. Course content and lesson audio are bundled for offline use. Optional learning analytics in Android build 6 and later is described below. Earlier Android builds do not send learning analytics. Android learning events are not sent to Supabase.
Microphone access is optional and requested when you record. Practice recordings are temporary and are deleted when you leave practice, change the phrase or put Hanni in the background. Hanni does not upload your voice, handwriting or practice answers. Lesson and mission voices are generated in advance with Supertonic 3 F1. TOPIK uses an installed Korean Android text-to-speech voice; its availability and processing depend on the voice engine you select.
Optional learning analytics — Android build 6 onward
Analytics is off by default. A local age-group choice comes before a separate sharing choice. We do not enable analytics for users who choose under 18 or prefer not to state their age group. The age choice is not sent to PostHog. Adults can choose Share learning analytics or Don’t share; neither choice changes access to Hanni.
If you opt in, Hanni sends PostHog screen names, lesson and mission identifiers, lesson starts, completions and exits, the last lesson step reached, time while Hanni is in the foreground, feature-use categories, coarse feature-failure categories, and daily lesson completion counts. Repeated completions and unique lessons are counted separately. Events also include a random installation reference, random session and lesson-attempt references, event date and time, local calendar date, app/build and Android versions, and whether the build is an internal test. This helps us find confusing lessons, understand return visits and improve feature reliability.
The records are pseudonymous, not anonymous: events from the same installation can be connected. Hanni does not link this reference to your name, email, website waitlist, RevenueCat customer record or Google account. Analytics excludes voice recordings, handwriting, entered answers, searches, dictionary text, video identifiers and titles, advertising identifiers, contacts and precise location. There is no session replay, screen capture or automatic text collection. Hanni does not use these events for advertising. Automatic location enrichment is disabled.
Events are sent over HTTPS to PostHog’s US Cloud. PostHog receives network addresses and technical request information to deliver and secure its service, and may process data outside Singapore. See PostHog’s privacy policy. On the device, at most 500 pending events are stored for up to seven days and sent when Hanni is active and connectivity allows. Server-side events remain until the operator deletes them; no automatic server-side deletion schedule is configured.
Use More → Learning analytics → Stop sharing to stop future reporting, remove queued events and delete the local analytics reference. A request already in flight may have reached PostHog. Stopping sharing does not erase previously received events. To request access or deletion, use Request analytics deletion or email jmj070806@gmail.com with the Analytics reference shown while sharing is on. Save it before stopping: without it, we may not be able to find your pseudonymous records. No payment is required. Re-enabling sharing creates a new reference and does not backfill activity from before consent.
Optional reminders and word notifications
At first setup you can independently choose a reminder after 24 hours away and a silent word notification as an alternative when your phone does not support Lock Screen widgets. On supported Android versions, the app also requests the system notification permission. Declining leaves both disabled. You can change these choices in More or Android notification settings. The word notification uses the same real-word pool as the widget, with pronunciation and meaning, and replaces its previous notification when the word changes. Android may delay hourly updates for battery management. Words can be visible to others on your Lock Screen, according to your device settings. Last-use time and notification preferences stay on your device; these features do not require analytics consent.
Google Play payments and RevenueCat
Google Play processes payment and your Google account’s billing information. RevenueCat verifies purchases and restores access for Hanni. The app sends RevenueCat a randomly generated customer reference and Google Play purchase records, including product identifiers, purchase tokens, transaction history, purchase and expiry dates, and subscription status. RevenueCat also processes information needed to operate the service, such as app and SDK versions, device/platform information, locale, currency and network requests. These records support membership access, restoration, customer support, fraud prevention and subscription reporting.
The customer reference is pseudonymous, not anonymous: purchase records can be linked to it. Hanni and RevenueCat do not receive your Google password or full payment-card details. Hanni does not provide RevenueCat with your email, advertising identifier or learning progress. Automatic advertising-identifier collection and optional SDK diagnostics are disabled. Purchase records are not sent to Hanni’s Supabase learning database. See RevenueCat’s privacy policy and Google’s privacy policy.
Purchase records are retained to provide and restore membership, resolve support requests and meet applicable obligations. There is no automatic deletion schedule for Hanni’s RevenueCat customer records. Hanni can request their deletion through RevenueCat; Google’s transaction records have their own retention requirements. Data is sent over encrypted HTTPS connections and may be processed outside Singapore by these providers.
Optional online videos and dictionary
Shorts and K-pop are free and separate from paid lessons. Before connecting to YouTube, Hanni shows a notice about its player and privacy. Video search sends the search text, category and region through Hanni’s Vercel server to the YouTube Data API. Do not enter private information in search. Searches are not joined to learning progress, RevenueCat records or website waitlist addresses. Public video metadata is cached for up to ten minutes.
Vercel processes network addresses and technical requests to deliver and protect the service. Short-lived keyed hashes of network addresses are used for rate limiting in private Supabase infrastructure and deleted after 48 hours. These are not the original network addresses. Provider operational logs follow their own retention policies.
The visible video can autoplay in YouTube’s official privacy-enhanced player. Google receives network, device/browser and playback information when its services load. YouTube can display advertisements and process identifiers and video interactions under its own privacy policy and terms. Hanni does not ask you to connect a YouTube account, download videos, extract captions or play videos in the background. Captions and availability depend on YouTube and creators. SafeSearch reduces unsuitable results but cannot guarantee every video’s suitability.
Video likes, hidden videos, blocked channels, up to 80 recent video identifiers and the last discovery topic stay locally. A dictionary search opens the National Institute of Korean Language’s Korean–English dictionary; the selected word and ordinary browser information are sent to that website. Reporting a video opens your email app with the public video link, and sends nothing until you choose to send it.
Your choices and deletion
Use More → Reset local learning progress to clear lesson, mission, word-review and saved-word records. More → Turn off online videos withdraws the video preference and clears local video history, likes, hidden videos and blocked channels. Future use asks for consent again. It does not delete logs already held by providers. Uninstalling the Android app removes its local data; Hanni disables Android cloud backup and device transfer for app data.
For access, correction or deletion of purchase-related records held for Hanni, email jmj070806@gmail.com. Include the Purchase support reference shown on the More screen. Do not send passwords, card details or purchase tokens. We may ask for reasonable proof that the request concerns your purchases. There is no charge and no paid membership is required to make a request.
Deleting local data or requesting deletion does not cancel a subscription. Manage cancellation separately in Google Play subscriptions. Restoring a purchase later may create a new RevenueCat record needed to provide access.
Support, children and changes
Hanni is a general-audience learning app with optional third-party videos. There is no learner messaging or public posting. Parents and guardians should manage device permissions, video use and purchases. Support emails contain the address and information you choose to send. Contact us about children’s data or other privacy concerns. Changes to this policy will be published here with an updated date.