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>
106 lines
2.7 KiB
YAML
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
|