Skip to content

chore: Add iOS and Android Remote Verification Tutorial sample apps#296

Merged
avner-m merged 3 commits into
masterfrom
am/remote-verification-tutorial-sample-apps
May 28, 2026
Merged

chore: Add iOS and Android Remote Verification Tutorial sample apps#296
avner-m merged 3 commits into
masterfrom
am/remote-verification-tutorial-sample-apps

Conversation

@avner-m
Copy link
Copy Markdown
Contributor

@avner-m avner-m commented May 28, 2026

Adds two new sample apps that accompany the Remote mobile verifiers tutorial. Both verify an mDoc presented by a same-device wallet over OID4VP / ISO 18013-7 Annex B, mirroring the existing in-person verifier samples.

A developer can download either project, set their bundle identifier / applicationId, fill in the tenant host and application id, and run on a device. Tenant configuration is handled out of band against MATTR VII (verifier application configuration, supported wallet, trusted issuer) and isn't covered by the apps.

iOS — ios-remote-verification-tutorial-sample-app/

  • SwiftUI + MobileCredentialVerifierSDK (Embed & Sign xcframework, added by the developer per the README).
  • URL scheme in Remote-verification-tutorial-Info.plist is bound to $(PRODUCT_BUNDLE_IDENTIFIER), so the deep link tracks whatever bundle id the developer sets without manual edits.
  • No CodeScanner / certificate management / QR scanner — the remote workflow doesn't need them.

Android — android-remote-verification-tutorial-sample-app/

  • Jetpack Compose + global.mattr.mobilecredential:verifier:6.1.0 (resolved from the local repo/ directory, populated from the SDK distribution).
  • OID4VP callback <intent-filter> is bound to \${applicationId}, so the scheme tracks the package name set in app/build.gradle.kts.
  • local.properties is intentionally not committed (the in-person sample's committed copy contains a personal sdk.dir path — same class of PII the recent chore: Remove personal identifiers commit was cleaning up).

PII removed vs. the tutorial

  • iOS Constants.swift: tenantHost and applicationID replaced with your-tenant.vii.your-region.mattr.global / your-application-id. The URL still parses so the app launches; a credential request returns an error until real values are set.
  • Android Constants.kt: TENANT_HOST and APPLICATION_ID replaced with matching placeholders.
  • Tutorial's hardcoded bundle id / package name / URL scheme replaced with \$(PRODUCT_BUNDLE_IDENTIFIER) (iOS) and \${applicationId} (Android).

Not done

  • I didn't build either app — the SDK distributions aren't in the repo by design, matching the existing in-person samples. The code is validated by inspection against the tutorial and the working in-person samples it mirrors.

🤖 Generated with Claude Code

avner-m added 2 commits May 28, 2026 15:41
A SwiftUI sample app accompanying the Remote Mobile Verifier
tutorial at https://learn.mattr.global/docs/verification/remote-mobile-verifiers/tutorial.

Uses MobileCredentialVerifierSDK to verify an mDoc presented by
a same-device wallet over OID4VP / ISO 18013-7 Annex B.

Tenant host and application id are placeholders, the URL scheme
is bound to $(PRODUCT_BUNDLE_IDENTIFIER) so the deep link
tracks whatever bundle id the developer sets.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
A Jetpack Compose sample app accompanying the Remote Mobile Verifier
tutorial at https://learn.mattr.global/docs/verification/remote-mobile-verifiers/tutorial.

Uses MobileCredentialVerifier SDK to verify an mDoc presented by
a same-device wallet over OID4VP / ISO 18013-7 Annex B.

Tenant host and application id are placeholders. The OID4VP callback
intent filter is bound to ${applicationId} so the deep link scheme
tracks whatever package name the developer sets in build.gradle.kts.
local.properties is intentionally not committed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@avner-m avner-m requested a review from a team as a code owner May 28, 2026 03:43
xcframeworks (iOS) and Android repo/global/ maven artifacts are
distributed by MATTR separately. Each developer drops them into
their local clone; they shouldn't be committed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@avner-m avner-m merged commit 3ec0004 into master May 28, 2026
2 checks passed
@avner-m avner-m deleted the am/remote-verification-tutorial-sample-apps branch May 28, 2026 04:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants