diff options
| author | Christian Cleberg <[email protected]> | 2026-07-25 11:35:46 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-07-25 11:49:23 -0500 |
| commit | 074052763638a36e274e18d00f5f5ab21846be28 (patch) | |
| tree | 9daf0a4c919fa8dc79c24b629157af45577ed4e4 /DomainDig/SettingsViews.swift | |
| parent | b824dae8ea16d20d75136687a7c59bc7b01afe27 (diff) | |
| download | domain-dig-074052763638a36e274e18d00f5f5ab21846be28.tar.gz domain-dig-074052763638a36e274e18d00f5f5ab21846be28.tar.bz2 domain-dig-074052763638a36e274e18d00f5f5ab21846be28.zip | |
feat: enrich Settings → App Info with metadata & resource links (#56)
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.
Diffstat (limited to 'DomainDig/SettingsViews.swift')
| -rw-r--r-- | DomainDig/SettingsViews.swift | 24 |
1 files changed, 1 insertions, 23 deletions
diff --git a/DomainDig/SettingsViews.swift b/DomainDig/SettingsViews.swift index a39639d..d93f6f9 100644 --- a/DomainDig/SettingsViews.swift +++ b/DomainDig/SettingsViews.swift @@ -105,7 +105,7 @@ struct SettingsView: View { Section("About") { NavigationLink("App Info") { - AboutSettingsView() + AppInfoView() } } } @@ -1070,28 +1070,6 @@ private struct DataManagementSettingsView: View { } } -private struct AboutSettingsView: View { - @State private var cloudSyncService = CloudSyncService.shared - - private var appVersion: String { - AppVersion.current - } - - var body: some View { - Form { - Section("About") { - LabeledContent("Version", value: appVersion) - LabeledContent("Storage", value: cloudSyncService.isEnabled ? "Local-first + iCloud" : "Local-only") - LabeledContent("Backup Schema", value: "v\(DomainDigBackup.currentSchemaVersion)") - } - } - .navigationTitle("App Info") - .task { - await cloudSyncService.refreshAvailability() - } - } -} - private struct DataImportPreviewSheet: View { @Environment(\.dismiss) private var dismiss |
