| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replaces the three-row App Info screen with a full About/Resources/Support/
Legal layout, driven by a declarative AppInfoRow model with all URLs centralized
in one AppLinks namespace.
- About: Version now shows "5.0.0 (build N)" (CFBundleShortVersionString +
CFBundleVersion), plus Storage, Backup Schema, and Minimum iOS (17.6).
- Resources: What's New (bundled ReleaseNotes.json sheet, no network),
Documentation & FAQ, Source Code, Privacy Policy, and Acknowledgements
("no third-party dependencies" + MIT license).
- Support: Report an Issue (a sheet that shows the locally-assembled
version/OS/device diagnostics before offering Email or GitHub — nothing is
collected silently) and Contact (mailto).
- Support the App: Rate (SwiftUI's @Environment(\.requestReview), which handles
the scene internally and respects Apple's throttling — the modern, safer
equivalent of the issue's SKStoreReviewController + connectedScenes path) and
Share (ShareLink to the App Store listing).
- Legal: copyright footer with the current year.
External rows use Link/openURL with an "opens outside the app" accessibility
hint; the screen is standard adaptive Form controls with semantic colors, so it
tracks Dynamic Type and light/dark automatically.
New files (AppLinks, AppInfo, ReleaseNotes[.swift/.json], AppInfoView) auto-
compile/bundle via the synchronized DomainDig/ group. AppInfoTests covers the
mailto builder, version format, diagnostics contents, and that the bundled notes
ship and parse. Unit suite green.
Placeholder pending the App Store listing: AppLinks.appStoreID (the review/share
URLs derive from it), flagged with a TODO.
|
|
|
Pivots the god-file decomposition to ContentView.swift (the other ~3.9k-line
file). Unlike DomainViewModel, this is a set of independent SwiftUI View structs,
so it splits with no shared-state entanglement.
- Moves the Settings surface into SettingsViews.swift: SettingsView (the tab
root, presented from RootTabView) plus its nine file-private section screens
(Display, History & Network, iCloud Sync, Local API, Monitoring, Import &
Export, Data Management, About) and the DataImportPreviewSheet. Pure move.
- The private section screens stay file-private together in the new file, reached
only through SettingsView's navigation links. Zero visibility changes were
needed: the block references nothing file-private to ContentView.swift, so the
ContentView diff is pure deletion.
ContentView.swift: 3881 -> 2739 lines. App builds clean; unit suite 58/58.
No project.pbxproj change (DomainDig/ is a synchronized group).
|