Files
Spanish/README.md
Trey t cc6ec70ed9 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>
2026-04-21 23:36:15 -05:00

4.6 KiB

Conjuga

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

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 (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 26 for Foundation Models features)
  • Xcode 16+

Building

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.