cards-native/Sources/Core/Intents/StudyAppIntents.swift
Till JS b5edf5cf2e fix: User-facing Strings Cards → Cardecky komplett, Build 3
User-facing Rebrand:
- LoginView Heading (war schon in v0.8.5)
- NotificationManager.title (war schon in v0.8.5)
- ShareEditorView Footer-Text: "...in der Cards-App" → "...in der Cardecky-App"
- StudyAppIntents Description: "Öffnet Cards" → "Öffnet Cardecky"
- Localizable.xcstrings: "Cards" key → "Cardecky"
- NSPhotoLibraryUsageDescription: "Cards greift..." → "Cardecky greift..."
- Log.app.info("Cards starting") → "Cardecky starting"
- MARKETING_COPY.md: alle "Cards"-Treffer in DE + EN auf Cardecky
- RELEASE_CHECKLIST: App-Name "Cards" → "Cardecky"

Build-Nummer 2 → 3 (Apple lehnt doppelte Build-Nummern ab, Code-
Hash hat sich geändert).

Code-Identifier bleiben: CardsAPI, CardsTheme, CardsNativeApp,
CardsWidgetExtension, CardsShareExtension — interne Symbol-Namen,
nicht user-facing.

Archive verifiziert: CFBundleDisplayName=Cardecky, Build=3.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 15:11:11 +02:00

38 lines
1.3 KiB
Swift

import AppIntents
import SwiftUI
/// Siri-Shortcut: "Karten lernen". Öffnet die App im Decks-Tab.
/// Tatsächliche Tab-Aktivierung passiert via `cards://` URL-Scheme, das
/// RootView bereits handhabt.
struct StudyCardsIntent: AppIntent {
static let title: LocalizedStringResource = "Karten lernen"
static let description = IntentDescription(
"Öffnet Cardecky und zeigt deine Decks mit fälligen Karten.",
categoryName: "Lernen"
)
static let openAppWhenRun: Bool = true
@MainActor
func perform() async throws -> some IntentResult {
// Die App ist beim Ausführen schon geöffnet (openAppWhenRun);
// weitere Navigation passiert in RootView via Deep-Link, falls
// ein Parameter dazukommt. v1: simple App-Open.
.result()
}
}
/// Macht Intents direkt nach Install in Siri/Shortcuts-App sichtbar.
struct CardsAppShortcuts: AppShortcutsProvider {
static var appShortcuts: [AppShortcut] {
AppShortcut(
intent: StudyCardsIntent(),
phrases: [
"Karten lernen mit \(.applicationName)",
"Mit \(.applicationName) lernen",
"\(.applicationName) öffnen",
],
shortTitle: "Karten lernen",
systemImageName: "rectangle.stack"
)
}
}