Privacy policy
Privacy policy for the KanjiKaku application
Last updated: 30 September 2026
In summary: study data remains on the user's device. The application requires no account, the developer operates no server that stores user information, and the application displays no advertising and performs no tracking.
Certain functions do, however, establish network connections with third-party services. The sections below list exhaustively which data leaves the device, to whom it is transmitted, for what purpose, and whether its transmission is optional.
Data stored, and where
All study data — the kanji consulted, the level of mastery recorded for each one, decks and batches, application settings and session history — is written to a file within the application itself, on the user's device.
That data remains there. It is not copied to any server and is not accessible to the developer or to any third party, with the sole exception described in the section "Crash reports". Uninstalling the application deletes it.
The application additionally maintains a local record of handwriting practice: the strokes drawn in unsuccessful attempts and a line of figures for each attempt. The record is capped at 100 characters and 500 attempts, and the oldest entries are discarded. Its sole purpose is to allow the user to send it to the developer voluntarily; it is never transmitted automatically and may be deleted from Settings.
What the application does not do
- It requires no account and no registration. It does not request a name, an email address or an age.
- The developer operates no server holding user progress.
- It displays no advertising and integrates no advertising networks.
- The developer performs no analytics or usage tracking, and the application uses no advertising identifiers. Third-party components that send technical data on their own account are identified in the section "Network connections".
- No data is sold or disclosed to third parties for advertising or commercial purposes.
Network connections
The application establishes network connections only in the cases listed below. For each one, the following are stated: when it occurs, which data leaves the device, who receives it, for what purpose, and whether it is optional. If no connection is available, the corresponding function is not performed and studying is unaffected.
1 · Update checks
- When. On each launch of the application and, while it remains open, whenever it returns to the foreground, at intervals of no less than ten minutes.
- Data leaving the device. The IP address; the platform (Android or iOS); the native version of the application, the release channel and the identifier of the installed update; and a random installation identifier generated by the update component itself. No study data is transmitted.
- Recipient. Expo Application Services, operated by 650 Industries, Inc. (United States). Its privacy policy is available at expo.dev/privacy.
- Purpose. To determine whether a more recent version of the application exists and, if so, to download it.
- Nature. Automatic; it cannot be disabled from within the application. Without a connection, the check does not take place and the application runs with the installed version.
2 · In-app purchases
- When. On each launch of the application, to check whether the purchase exists; when the purchase screen is opened, to obtain the price; and when purchasing or restoring the purchase.
- Data leaving the device. The query and, where applicable, the purchase request are sent to the store's purchasing system (the App Store on iOS, Google Play on Android), which handles them using the store account signed in on the device and the product identifier. Payment is entered and processed entirely within the store.
- Recipient. Apple Inc. or Google LLC, depending on the device, which process that data under their own terms and privacy policies. The developer receives no payment data, name or email address; it receives from the store only the sales reports the store provides.
- Purpose. To process the purchase and to unlock the purchased content on the device.
- Nature. The check at launch is automatic. The purchase is optional; without it, the application provides the free content.
3 · Current offers and new-version notice
- When. When the application starts, for the new-version notice, and when the purchase screen is opened, for the offers.
- Data leaving the device. A request to download the public files kanjikaku.com/version.json and kanjikaku.com/ofertas.json, which allows the server to observe the IP address and the ordinary technical data of any connection. No other data is transmitted: the comparison with the installed version is made on the device.
- Recipient. GitHub Pages, operated by GitHub, Inc. (United States), which hosts the kanjikaku.com website.
- Purpose. To notify that a more recent version of the application is available in the store and to display the current offers.
- Nature. The check at start-up is automatic; the notice does not require updating and may be dismissed. The offers request occurs only if the user opens the purchase screen.
4 · Crash reports
Only if the user enables them. Their content, recipient and retention period are described in the section "Crash reports".
5 · Speech recognition
- When. Only if the user enables speech recognition, which is disabled by default, in the settings of the reading exercise; in that case, while the microphone is open in that exercise.
- Data leaving the device. On iOS, and on Android where the device has offline Japanese recognition, none: recognition is performed on the device. On Android devices that lack it, the system speech recogniser transmits the audio captured while listening, together with the expected word and its reading, which the application supplies as a hint.
- Recipient. In the latter case, Google LLC, as provider of the system speech recognition service, under its own terms.
- Purpose. To transcribe the spoken reading so that it can be compared with the expected one.
- Nature. Optional: speech recognition is disabled by default, may be paused or disabled at any time, and the exercise can be completed without it.
6 · Speech synthesis
- When. When the application reads Japanese text aloud using the system voice.
- Data leaving the device. On iOS, none. On Android, if the selected voice is one of those identified in Settings as "online", or if the system's default voice operates over the network, the system text-to-speech engine transmits the text to be read.
- Recipient. Google LLC, as provider of the system text-to-speech engine, under its own terms.
- Purpose. To generate the audio of the reading.
- Nature. Optional: Settings allow an offline voice to be selected, which is the recommended option.
7 · Reading text in photographs
- When. When the "From a photo" function is used.
- Data leaving the device. Neither the photograph nor the recognised text: recognition is performed on the device by Google's ML Kit component. That component may, on its own account, send Google technical operating data: device manufacturer and model, operating system version, application name and version, installation identifiers, performance metrics, component configuration and error codes.
- Recipient. Google LLC. The list of data is published at developers.google.com/ml-kit/android-data-disclosure.
- Purpose. According to Google, diagnostics of the component and measurement of its use.
- Nature. Optional: it occurs only if the user uses that function.
8 · External links
When the user taps a link to this website or to an email address, the application opens it in the device's browser or email application. What happens from that point is governed by the terms of those applications and of the site visited.
Legal basis. The developer's legitimate interest in keeping the application up to date and operational and in verifying purchases (cases 1 to 3); the user's consent, for crash reports (case 4); and the user's own request when using the function concerned (cases 5 to 8).
Exporting and importing a copy
The user may export a copy of the study data at any time. The application writes a file and delivers it to the operating system share dialog; its subsequent destination is determined solely by the user, and from that point the file is governed by the terms of the service to which it is sent. The application does not upload it anywhere.
Importing operates in reverse: the user selects a file, and the application reads it and replaces the current study data with its contents. Only the file expressly selected is read.
Reminders
If the daily reminder is enabled, it is scheduled on the device itself. There is no notification server and no push token: the application cannot determine whether a reminder was seen, and no notification originates from outside the device.
Permissions
- Notifications — requested only if the daily reminder is enabled.
- Files — requested only at the moment of exporting or importing, and limited to the file selected.
- Microphone and speech recognition — requested only if the user enables speech recognition in the settings of the reading exercise, an option that is disabled by default. See the section below and case 5 of the section "Network connections".
- Camera and photographs — requested only when the "From a photo" function is used, and limited to the photo taken or selected. The text is recognised on the device and the photo does not leave it. The application does not keep the photo; the system may hold a temporary copy in the application's cache until it clears it.
- The application does not access location data or contacts.
Reading aloud and the microphone
The reading exercise allows the reading to be said aloud instead of typed, if the user enables the option "Voice recognition (experimental)" in the exercise settings; the option is disabled by default. Once it is enabled and the permission has been granted, the microphone opens automatically when each word is shown and closes when the corresponding button is tapped, when moving on to another word or when leaving the exercise. The option "I can't speak right now" suspends it for thirty minutes.
Where recognition takes place. On iOS, and on Android where the device has offline Japanese recognition, the application requires recognition to be performed on the device. On Android devices lacking that capability, the application first requests offline recognition and, if the system recogniser indicates that it cannot recognise Japanese in that way, falls back to Google's network recognition for the remainder of the session. In that case, the audio captured while listening is transmitted to Google as described in case 5 of the section "Network connections".
The application neither records nor retains any audio. It receives the recognised text, compares it with the expected reading and discards it. No audio file is written.
Crash reports
The application is able to transmit a report when it terminates unexpectedly, so that the defect can be corrected. This function is disabled by default. Consent is requested on first launch, and nothing is transmitted until it is granted.
Where enabled, the report is transmitted to Sentry (Functional Software, Inc.), which stores it in its European Union data region (Germany). It contains: the type of error, its location in the code and the call stack; the application version; the device model and operating system version; the last steps recorded by the application, such as the screens opened, up to a maximum of twenty; and the item on screen at the time of the failure, such as the kanji, word or exercise in progress. It does not contain the text entered in the search, nor any identifier of the device or the installation.
The report does not contain study progress, decks, history or any information that directly identifies the user, such as a name or email address: the option that would attach personal data, including the IP address, is disabled in the code. Reports are retained for a maximum of 30 days and are then deleted. Reporting may be disabled again from Settings at any time.
Sentry's privacy policy is available at sentry.io/privacy.
Minors
The application does not request a name, an email address or a date of birth from any user, irrespective of age, and the developer holds no data capable of identifying a minor. The technical data described in the section "Network connections" is processed in the same way irrespective of the user's age.
Support by email
Where the user writes to report a problem, or sends the handwriting record from Settings, the developer receives the content sent and the email address from which it was sent.
- Data received. The email address, the message, and the attached file where one is included. The file contains strokes, figures, the application version and the application settings; it contains nothing identifying the user.
- Purpose. To assess the issue reported, to reply, and to determine where the application makes handwriting more difficult than intended.
- Legal basis. The consent of the user, given by sending the message. No processing occurs in the absence of that act.
- Retention period. Until the matter is resolved, and in no case longer than six months.
The user may request deletion of the email address and of any material sent, at any time, at the address given below.
Rights of the data subject
Study data resides on the user's device and under the user's control: it may be inspected by exporting a copy and deleted from the application settings or by uninstalling the application. With regard to crash reports and correspondence, the user may exercise the rights of access, rectification, erasure, objection and restriction of processing by writing to the contact address; since reports contain no identifying data, it may be necessary to state the approximate date of the failure in order to locate them. With regard to data that Apple and Google process under their own terms, those rights are exercised before those entities. The user also has the right to lodge a complaint with the competent data protection supervisory authority.
Amendments to this policy
Where any of the above changes, this page is amended and the date shown above is updated accordingly. There is no mailing list through which notice is given; the date is the means of verification.
Language versions
This policy is published in several languages. In the event of any discrepancy between the versions, the English version shall prevail.
Contact
Enquiries regarding this policy: kanjikakuapp@gmail.com.