Files
certain/ios/project.yml
T
GuidoandClaude Opus 5 d290930759 feat: Fuenfte Stufe der iOS-App - Kategorien, Schlagwoerter, Bank, zweiter Faktor
Die Nebenraeume haengen unter Einstellungen, nicht als eigene Reiter: Man
braucht sie selten, und eine Leiste mit zehn Reitern findet niemand mehr.

- Kategorien: anlegen, aendern, archivieren, loeschen - samt Gruppen. Eine
  Kategorie oeffnet ihre Erkennungswoerter, die sich dort hinzufuegen und
  entfernen lassen. Darunter steht, was sonst niemand merkt: Sie wirken nur
  auf kuenftige Importe.
- Woerter, die oft korrigiert werden, stehen als Pruefmeldung in den
  Einstellungen - behalten oder entfernen.
- Schlagwoerter: anlegen, umbenennen, umfaerben, loeschen. Neue bekommen
  reihum eine Farbe, damit nicht alle grau sind.
- Einstellungen: Erscheinungsbild, Hauptwaehrung und Budget-Starttag lassen
  sich jetzt aendern. Ohne Sichern-Knopf - es ist je Zeile genau ein Wert,
  und das Backend nimmt ihn einzeln entgegen. Dazu der Hinweis, dass sie dem
  Konto gehoeren und nicht dem Geraet.
- Bank: abrufen und Salden auffrischen. Verbinden bleibt am Rechner, die
  Bank leitet fest dorthin zurueck. Der letzte Fehler der Verbindung steht
  dabei, sonst ruft man vergeblich ab.
- Zweiter Faktor: einrichten in drei Schritten. Auf dem Telefon fuehrt der
  Weg ueber die otpauth-Adresse direkt in die Authenticator-App statt ueber
  einen QR-Code, den man sich selbst zeigen muesste. Die Rettungscodes
  erscheinen einmal; das Blatt laesst sich nicht wegwischen und erst
  schliessen, wenn man bestaetigt hat, sie gesichert zu haben.

Abschalten des zweiten Faktors bleibt bewusst draussen: Es verlangt das
Kontopasswort, und die App speichert keines. Ein Vollzugang auf diesem Geraet
soll den Schutz des Kontos nicht aufheben koennen.

59 Tests gruen. Texte in Deutsch und Englisch, zeilengleich.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-21 22:03:28 +02:00

82 lines
2.7 KiB
YAML

# XcodeGen-Spezifikation - erzeugt das Xcode-Projekt aus diesen Quellen.
# brew install xcodegen && cd ios && xcodegen generate && open Certain.xcodeproj
# Die Datei ist die Wahrheit, nicht das erzeugte Certain.xcodeproj: wer einen
# Ordner hinzufuegt, laeuft einmal "xcodegen generate" und ist fertig.
name: Certain
options:
bundleIdPrefix: com.scarriffle
# Ohne das baut Xcode eine englische App: Datumsauswahl und Monatsnamen
# erscheinen dann als "10. Dec 2027" statt "10. Dez. 2027".
developmentLanguage: de
deploymentTarget:
iOS: "26.0"
createIntermediateGroups: true
targets:
Certain:
type: application
platform: iOS
sources:
- path: Anmeldung
- path: App
- path: Abos
- path: Arbeitsliste
- path: Bausteine
- path: Buchungen
- path: Budget
- path: Dashboard
- path: Einstellungen
- path: Konten
- path: Modelle
- path: Nebenraeume
- path: Netzwerk
# Deutsch und Englisch, zeilengleich gehalten.
- path: Texte
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.scarriffle.certain
# Signing automatisch; wer mit einem anderen Apple-Konto baut, traegt
# hier seine Team-ID ein (Xcode: Signing & Capabilities -> Team).
CODE_SIGN_STYLE: Automatic
DEVELOPMENT_TEAM: PP34X97WS3
MARKETING_VERSION: "0.1"
CURRENT_PROJECT_VERSION: "1"
# iPhone und iPad, zweispaltig gedacht.
TARGETED_DEVICE_FAMILY: "1,2"
# Sprachfassung 5: der Code ist nicht auf die strikte
# Nebenlaeufigkeitspruefung von Swift 6 hin geschrieben. Umstellen,
# wenn die Uebergaenge AppZustand <-> CertainClient geprueft sind.
SWIFT_VERSION: "5.0"
# Keine eigene Info.plist pflegen - Xcode erzeugt sie aus diesen Werten.
GENERATE_INFOPLIST_FILE: YES
INFOPLIST_KEY_CFBundleDisplayName: Certain
INFOPLIST_KEY_UILaunchScreen_Generation: YES
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents: YES
INFOPLIST_KEY_UISupportedInterfaceOrientations: "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"
CertainTests:
type: bundle.unit-test
platform: iOS
sources:
# Tests/Fixtures/antworten.json landet als Ressource im Buendel -
# der Test "Serverantworten" liest sie von dort.
- path: Tests
dependencies:
- target: Certain
settings:
base:
SWIFT_VERSION: "5.0"
GENERATE_INFOPLIST_FILE: YES
schemes:
Certain:
build:
targets:
Certain: all
run:
config: Debug
test:
config: Debug
targets:
- CertainTests