Update README and app_features to reflect current feature set
README: expanded from the original terse list into categorized sections covering the six conjugation practice modes, textbook reader, AI chat and stories, listening/pronunciation, cloze, lyrics, vocab SRS, offline dictionary, grammar notes/exercises, and CloudKit sync. Architecture section now documents the dual local/cloud SwiftData stores with the App Group ID, the widget-schema-must-match requirement, and the Scripts/textbook extraction pipeline. app_features.md: added a full Conjuga section (practice modes, verb reference, grammar, dictionary, sync, widgets, data counts) alongside the existing ConjuGato and Conjuu ES analyses; added Conjuga as a first column in the comparison table with rows for the new capability axes (AI, textbook, speech, offline dictionary, lyrics, CloudKit, widgets); added a "Conjuga excels at" strengths section. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
57
README.md
57
README.md
@@ -1,32 +1,57 @@
|
||||
# Conjuga
|
||||
|
||||
A Spanish verb conjugation learning app for iOS. Practice all 20 tenses with spaced repetition, handwriting recognition, and vocabulary courses.
|
||||
A Spanish-learning iOS app that combines verb conjugation practice, a full textbook reader, an AI conversation partner, offline dictionary lookups, grammar exercises, and more. Runs entirely on-device where possible (Foundation Models, Speech framework, Vision OCR).
|
||||
|
||||
## Features
|
||||
|
||||
- **Conjugation Practice** — Flashcards, typing, multiple choice, handwriting, sentence building, and full table modes
|
||||
- **Spaced Repetition** — SM-2 algorithm tracks what you know and surfaces what you don't
|
||||
- **1,750 Verbs** — From basic to expert, with irregular form highlighting
|
||||
- **20 Tenses** — Every indicative, subjunctive, conditional, and imperative tense
|
||||
- **Grammar Guide** — 20 tense guides with conjugation tables + 20 grammar topic notes (Ser vs Estar, Por vs Para, etc.)
|
||||
- **Vocabulary Courses** — Weekly decks with example sentences
|
||||
- **Progress Tracking** — Streaks, daily goals, accuracy stats, and achievement badges
|
||||
- **CloudKit Sync** — Review progress syncs across devices
|
||||
- **Widgets** — Daily progress, word of the day, and weekly stats
|
||||
- **Text-to-Speech** — Hear any verb pronounced in Spanish
|
||||
### Verb practice
|
||||
- **Six conjugation modes** — flashcards, typing, multiple choice, handwriting (Apple Pencil / finger), sentence builder, and full-table (conjugate all persons at once)
|
||||
- **Focus modes** — weak verbs (SM-2 spaced repetition), irregularity drills (spelling / stem / unique), common tenses
|
||||
- **1,750 verbs** across 5 levels (Basic → Expert) with 209 K pre-conjugated forms and 23 K irregular-span annotations
|
||||
- **20 tenses** — every indicative, subjunctive, conditional, and imperative tense, each with character-level irregular highlighting
|
||||
- **Irregularity filter** — search the verb list by Any Irregular / Spelling Change / Stem Change / Unique Irregular, combinable with level filter
|
||||
- **Text-to-speech** on any form
|
||||
|
||||
### Content & study
|
||||
- **Textbook reader** — 30 chapters of *Complete Spanish Step-by-Step* with 251 interactive exercises (keyboard + Apple Pencil), 931 OCR'd vocab tables rendered as Spanish→English grids (~3 100 paired cards extracted via bounding-box OCR)
|
||||
- **Course decks** — weekly vocab decks with example sentences, week tests, and cumulative checkpoint exams
|
||||
- **Stem-change toggle** on Week 4 flashcard decks (E-IE, E-I, O-UE, U-UE) showing inline present-tense conjugations
|
||||
- **Grammar guide** — 20 tense guides with usage rules and examples + 20+ grammar topic notes (ser/estar, por/para, preterite/imperfect, etc.), each with 100+ practice exercises
|
||||
- **Grammar exercises** — interactive quizzes for 5 core topics (ser/estar, por/para, preterite/imperfect, subjunctive, personal *a*)
|
||||
|
||||
### AI & speech
|
||||
- **Conversational practice** — on-device AI chat partner (Apple Foundation Models) with 10 scenario types; chat bubbles have tappable words that open dictionary / on-demand AI lookup
|
||||
- **AI short stories** — generated stories with tappable words and comprehension quizzes
|
||||
- **Listening practice** — listen-and-type + pronunciation scoring via the Speech framework
|
||||
- **Pronunciation check** — word-by-word match scoring
|
||||
|
||||
### Vocabulary & tools
|
||||
- **Offline dictionary** — reverse index of 175 K verb forms + 200 common words, cached to disk for instant lookups
|
||||
- **Vocab SRS review** — spaced repetition over course vocabulary with Again / Hard / Good / Easy rating
|
||||
- **Cloze practice** — fill-in-the-blank sentences with distractor generation
|
||||
- **Lyrics practice** — search, translate, and read Spanish song lyrics
|
||||
|
||||
### Tracking & sync
|
||||
- **Progress** — streaks, daily goals, accuracy stats, achievement badges, study-time tracking per day
|
||||
- **CloudKit sync** — review progress, test results, saved stories, conversations, and textbook attempts sync across devices
|
||||
- **Widgets** — combined dashboard + word-of-the-day, refreshed daily and on backgrounding
|
||||
|
||||
## Architecture
|
||||
|
||||
- **SwiftUI** + **SwiftData** with a dual-store configuration:
|
||||
- **Local store** — Reference data (verbs, forms, guides) seeded from JSON on first launch
|
||||
- **Cloud store** — User data (review cards, progress, streaks) synced via CloudKit
|
||||
- **SharedModels** package shared between the app and widget extension
|
||||
- **Local store** (App Group `group.com.conjuga.app`) — reference data: verbs, forms, irregular spans, tense guides, course decks, vocab cards, textbook chapters. Seeded from bundled JSON on first launch. Self-healing re-seeds trigger on version bumps *or* if rows are missing on disk.
|
||||
- **Cloud store** (CloudKit `iCloud.com.conjuga.app`, private database) — user data: review cards, course reviews, user progress, test results, daily logs, saved songs, stories, conversations, textbook exercise attempts.
|
||||
- **SharedModels** Swift Package shared between the app and widget extension. Widget schema must include every local-store entity or SwiftData destructively migrates the shared store.
|
||||
- **Foundation Models** for on-device AI generation (`@Generable` structs for typed output).
|
||||
- **Vision** framework for OCR of textbook pages and vocabulary images.
|
||||
- **Speech** framework for recognition and pronunciation scoring.
|
||||
- **Textbook extraction pipeline** (`Conjuga/Scripts/textbook/`) — XHTML and answer-key parsers, macOS Vision image OCR + PDF page OCR, bounding-box vocab pair extractor, NSSpellChecker-based validator, and language-aware auto-fixer.
|
||||
|
||||
## Requirements
|
||||
|
||||
- iOS 18+
|
||||
- iOS 18+ (iOS 26 for Foundation Models features)
|
||||
- Xcode 16+
|
||||
|
||||
## Building
|
||||
|
||||
Open `Conjuga/Conjuga.xcodeproj` in Xcode and run on a simulator or device. Data seeds automatically on first launch.
|
||||
Open `Conjuga/Conjuga.xcodeproj` in Xcode and run on a simulator or device. Reference data seeds automatically on first launch. To regenerate textbook content, run `Conjuga/Scripts/textbook/run_pipeline.sh` locally — the generated `textbook_data.json` / `textbook_vocab.json` are committed so fresh clones build without the pipeline.
|
||||
|
||||
Reference in New Issue
Block a user