* Rename LandingViewModel's deviceEnrollment destination to enrollDevice
This naming matches the destination view's name
* Add EnrollDeviceView preview
* Add Icon.swift
* Add a PrimaryButtonStyle that looks correct in both light and dark mode
* Update LandingView to use the new Icon type
* Restructure EnrollDeviceView to support large dynamic type sizes
* Refactor EnrollDeviceView for overall structure/readability
* Rename EnrollDeviceViewModel.attempt -> loadingState
* Commit Verify.xcscheme (which for some reason wasn't already present)
* Incorporate Dependencies into EnrollDeviceViewModel
* Add initial implementation of QRScannerView
* Wire up QRScannerView to navigate to device enrollment
* Consolidate validateScan and onScan API calls
* Add handling for various camera permission states
* Add Icon.swift file as a resuable icon in a rounded rect
* Spruce up the UI for the landing page
* Improve code organization and indentation in LandingView.swift
* Remove stray space in LandingView copy
* Remove Icon.swift since we didn't end up using it
* Address comment/copy PR comments
* Move VerifyApp to App Lifecycle folder and add some architecture documentation to it
* Add VerifyAppModel.swift
* Tuck existing files into their own subfolders
* Add SwiftUINavigation as a dependency to support Destination-style navigation
(More on Destination-style navigation in a future commit)
* Add convenient logger initializers
* Move openDeepLink up to VerifyApp
* Move LandingView into the App Lifecycle folder
* Wire up parsing failures to new alert destination
* Swift-ify DeepLink parsing
* Rename Atempt -> LoadingState
* Update LandingView to navigate correctly to EnrollMobileDeviceView
* Rename EnrollMobileDeviceView -> EnrollDeviceView to make it more concise
* Improve names of LandingViewModel.Destination
* Add delegate relationship between LandingViewModel and EnrollDeviceViewModel to support the cancellation button
Since this view is now in a navigation stack, we might actually do away
with the cancel button entirely because you can just tap the back button
to do the same thing.
* Remove ContentView since it's no longer used
* Further break apart DeepLink.swift
* Remove stray reference to ContentView
* Add URL to debug log in VerifyAppModel
* Add initial .swiftformat file with sensible defaults
* Apply swiftformat formatting to all code
* Remove file creation header from VerifyApp.swift
* Move .swiftformat to be near the Xcode project, closer to other iOS-specific configs
* Add .swiftlint configuration with a couple common sense rules and some funky TODO regular expressions
* Apply swiftlint rules and add it as a build plugin
* Remove swiftformat as a package dependency, using the CLI instead
* Remove custom TODO lint rules
* Update .swiftformat rules
* Embedded Enroll.xcframework building into the main Xcode build
* Remove xcframework generation from Makefile
Now that Enroll.xcframework is built as part of the Xcode build, we no
longer need to maintain a separate step to build it manually.
* Add a README file with basic instructions on how to integrate Swift with Go packages
* Disable user script sandboxing
This ensures that our build scripts can read/write whatever files
necessary. In particular, this avoids issues when building xcframeworks
with `gomobile` that may touch files not declared in your file inputs.
* Fix typo in build-enroll-framework.sh
* Update build-enroll-framework.sh to call `gomobile` via `go tool`
* Resolve shellcheck lint failure SC2155
* Add OSS preamble to file header template
* Apply automatic project file changes from using Xcode 26.5
* Update Verify project files to generate symbols for string catalog entries
* Improve formatting of template file header to reduce extra whitespace
* Update file header to automatically use the current year
* Generate Xcode project for Verify
* Set Swift version to 6; remove macOS and Vision as destinations
* Handle `teleport://` links and add enrollment screen
* Avoid building macOS-specific stuff on iOS
This is needed for gomobile to build our stuff from lib/mobile from the
next commit.
* Add `lib/mobile/verify/enroll` compiled with gomobile
* `lib/mobile`: Temporarily use private Device Trust service
The public gRPC service exists on the demo branch but not on this
branch. In order to make it possible to compile
`lib/mobile/verify/enroll`, temporarily use the private service which
has similar RPCs.
* Run `make go-mod-tidy-all`
* Make Swift app connect to public DT service on "Request Now" tap
* mobile: Add sheet for enroll request status
* Revert go.mod changes
This reverts commit b9af7a7614 and
2c00ecd7fa.
* Add `build.assets/tools/gomobile`
* Move gomobile back to main go.mod
This reverts commits 9b2a6c4ea3 and
a83c2959fa.