Trey t d9ddaa4902 Fixes #23 — Add irregularity filter to the Verbs list
The toolbar Filter menu now has two sections:
- Level (existing)
- Irregularity: Any Irregular / Spelling Change / Stem Change /
  Unique Irregular

Filters combine, so "Basic" + "Unique Irregular" narrows to the
foundational ser/ir/haber-class verbs. Categories are derived at load
time from existing IrregularSpan rows using the same spanType ranges
already used by PracticeSessionService (1xx spelling, 2xx stem, 3xx
unique), so no schema or data changes are required.

UI additions:
- Per-row icons (star / arrows / I-beam) show each verb's
  irregularity categories at a glance, tinted by type.
- When any filter is active, a chip bar appears under the search
  field showing the active filters (tap to clear) and the resulting
  verb count.
- Filter toolbar icon fills when any filter is applied.

Data coverage: 614 / 1750 verbs are flagged irregular — 411 spelling,
275 stem-change, 67 unique — consistent with canonical lists from
SpanishDict, Lawless Spanish, and Wikipedia.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 23:29:46 -05:00

Conjuga

A Spanish verb conjugation learning app for iOS. Practice all 20 tenses with spaced repetition, handwriting recognition, and vocabulary courses.

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

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

Requirements

  • iOS 18+
  • Xcode 16+

Building

Open Conjuga/Conjuga.xcodeproj in Xcode and run on a simulator or device. Data seeds automatically on first launch.

Description
No description provided
Readme 14 MiB
Languages
Swift 85.5%
Python 11.9%
HTML 2.4%
Shell 0.2%