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>
33 lines
967 B
Swift
33 lines
967 B
Swift
import ManaCore
|
|
import SwiftData
|
|
import SwiftUI
|
|
|
|
@main
|
|
struct CardsNativeApp: App {
|
|
let container: ModelContainer
|
|
@State private var auth: AuthClient
|
|
private let mediaCache: MediaCache
|
|
|
|
init() {
|
|
do {
|
|
container = try ModelContainer(for: CachedDeck.self, PendingGrade.self)
|
|
} catch {
|
|
fatalError("Failed to init ModelContainer: \(error)")
|
|
}
|
|
let auth = AuthClient(config: AppConfig.manaAppConfig)
|
|
auth.bootstrap()
|
|
_auth = State(initialValue: auth)
|
|
mediaCache = MediaCache(api: CardsAPI(auth: auth))
|
|
Log.app.info("Cardecky starting — auth status: \(String(describing: auth.status), privacy: .public)")
|
|
}
|
|
|
|
var body: some Scene {
|
|
WindowGroup {
|
|
RootView()
|
|
.environment(auth)
|
|
.environment(\.mediaCache, mediaCache)
|
|
.tint(CardsTheme.primary)
|
|
}
|
|
.modelContainer(container)
|
|
}
|
|
}
|