Files
Spanish/Conjuga/project.yml
Trey t 98badc98ad Fixes #28 — Curated reflexive verb list on detail + practice filter
Bundles the 100 most common reflexive verbs from spanishwithdaniel.com as a
canonical list and wires it through the UI. Compound list entries (recibirse
/ graduarse, equivocarse / confundirse) are split. Trailing prepositions and
set-phrase completions are captured as usageHint (e.g. acordarse "de",
ponerse "de acuerdo").

ReflexiveVerbStore loads the JSON at launch and exposes lookups by base
infinitive, both via @Environment for SwiftUI and a static shared instance
for services. Verbs whose bare infinitive isn't in the list skip the UI
treatment silently.

VerbDetailView shows a new Reflexive section with the reflexive infinitive,
usage hint, and English meaning when there is a match. VerbListView gains a
"Reflexive verbs only" filter alongside the existing Level and Irregularity
filters. Settings adds the same flag so it also constrains the practice
pool; PracticeSessionService applies the reflexive filter in all six pick
paths.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 10:56:04 -05:00

106 lines
2.7 KiB
YAML

name: Conjuga
options:
bundleIdPrefix: com.conjuga
deploymentTarget:
iOS: "26.0"
xcodeVersion: "26.0"
schemePathPrefix: ""
generateEmptyDirectories: true
schemes:
Conjuga:
build:
targets:
Conjuga: all
ConjugaWidgetExtension: all
run:
config: Debug
executable: Conjuga
test:
config: Debug
profile:
config: Release
analyze:
config: Debug
archive:
config: Release
packages:
SharedModels:
path: SharedModels
settings:
base:
SWIFT_VERSION: "6.0"
CURRENT_PROJECT_VERSION: 1
MARKETING_VERSION: 1.0.0
targets:
Conjuga:
type: application
platform: iOS
sources:
- path: Conjuga
excludes:
- "*.json"
- path: Conjuga/conjuga_data.json
buildPhase: resources
- path: Conjuga/course_data.json
buildPhase: resources
- path: Conjuga/reflexive_verbs.json
buildPhase: resources
info:
path: Conjuga/Info.plist
properties:
CFBundleDisplayName: Conjuga
LSApplicationCategoryType: public.app-category.education
UILaunchScreen: {}
UIBackgroundModes:
- fetch
- remote-notification
BGTaskSchedulerPermittedIdentifiers:
- com.conjuga.app.refresh
UISupportedInterfaceOrientations:
- UIInterfaceOrientationPortrait
UISupportedInterfaceOrientations~ipad:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.conjuga.app
CODE_SIGN_ENTITLEMENTS: Conjuga/Conjuga.entitlements
SWIFT_STRICT_CONCURRENCY: complete
ENABLE_DEBUG_DYLIB: NO
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
TARGETED_DEVICE_FAMILY: "1,2"
DEVELOPMENT_TEAM: V3PF3M6B6U
CODE_SIGN_STYLE: Automatic
dependencies:
- target: ConjugaWidgetExtension
- package: SharedModels
ConjugaWidgetExtension:
type: app-extension
platform: iOS
sources:
- path: ConjugaWidget
info:
path: ConjugaWidget/Info.plist
properties:
CFBundleDisplayName: Conjuga Widget
NSExtension:
NSExtensionPointIdentifier: com.apple.widgetkit-extension
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.conjuga.app.widget
CODE_SIGN_ENTITLEMENTS: ConjugaWidget/ConjugaWidget.entitlements
DEVELOPMENT_TEAM: V3PF3M6B6U
CODE_SIGN_STYLE: Automatic
SWIFT_STRICT_CONCURRENCY: complete
TARGETED_DEVICE_FAMILY: "1,2"
ENABLE_DEBUG_DYLIB: NO
dependencies:
- package: SharedModels