Loopra

Loopra

Loopra is a cross-platform word/phrase typing training app built by Flutter with the goal of building muscle memory quickly in immersive practice cycles. The project covers desktop, mobile and Web simultaneously, so you can keep pace on any device.

58GitHub
Description

● Multi-platform support: The same set of code can be run on Android, iOS, Windows, macOS, Linux and the Web. ● Thesaur-driven training: Built-in multiple sets of chapter-based thesaurus, which can be advanced by chapter, or you can freely import custom dictionaries. ● Real-time feedback: Show time spent, completion, words per minute (WPM) and accuracy, and the practice performance can be seen at a glance. ● Immersive experience: The desktop automatically focuses on the input area; supports pause/continue, chapter re-practice and skipping stuck words. ● Sound and pronunciation: Provide key tones, correct/error tones, and American/British pronunciation (when supported by the thesaurus). Dictionary file format The dictionary file needs to be a JSON object with two fields: meta and entries. Please refer to the example file custom_en_dictionary.json: { "meta": { "id": "custom_en", "name": "My English thesaurus", "description": "Example thesaurus description", "language": "en", "category": "Custom" }, "entries": [ { "name": "apple", "trans": ["apple", "apple tree"], "usphone": "ˈæpəl", "ukphone": "ˈæpl", "notation": "n. " } ] } meta.id (optional): A unique identifier for the dictionary. If not provided, it will be automatically generated based on the name. meta.name (required): The display name of the dictionary in the interface. meta.description (optional): Introduction to the dictionary. meta.language (optional): Language code, supported values are en (English), code (programming), and other. meta.category (optional): Category tags. entries (required): Array of terms. name (required): The original text of the entry. trans (optional): Explanation, which can be a string or an array of strings. usphone / ukphone (optional): American/British pronunciation. Notation (optional): Additional remarks (such as part of speech). When importing, the application verifies the basic structure and saves the content to a local data directory (such as Application Support/Loopra/dictionaries). To update the dictionary, you can re-import the same file; if the name is duplicate, the system will assign a new ID to the dictionary to ensure that different versions coexist.

Screenshots
Screenshot 1
Screenshot 2
Screenshot 3
App Information
Version
1.0.0
Package Size
13.37 KB
Image Size
48.86 MB
Updated
December 7, 2025
Source Code
zaunist
Platform Support
PC