Skip to main content
Version: 1.0.0

ARShades — Overview

ARShades is an iOS application (Swift + SwiftUI) that delivers real-time AR eyewear try-on, product exploration, and lightweight CRM touchpoints. The app ships with an App Clip for instant “try before install” via deep links.


Philosophy

The philosophy of ARShades is centered on accessibility, immersion, and seamless user experience:

  • Accessibility: Enable users to try eyewear instantly without friction, even if the app is not installed.
  • Immersion: Use AR and 3D technologies to bring a lifelike experience of eyewear fitting directly onto the user’s face.
  • Seamlessness: Integrate the flow between App Clip, full app, and web deep links so the user’s journey feels continuous.
  • Scalability: Structure the app to handle multiple brands, large catalogs, and evolving product lines without major architectural changes.
  • Privacy by design: Store only what’s necessary, respect user consent, and handle sensitive data (facial metrics, preferences) securely.

Role within the ARShades ecosystem

ARShades plays a core role in the larger ARShades ecosystem:

  • User-facing entry point: Acts as the main consumer touchpoint for eyewear try-on.
  • Bridge between web and mobile: Deep links connect marketing/web experiences to the App Clip and full app.
  • Brand showcase: Each brand catalog is distributed through ARShades, ensuring consistent AR quality and unified UX.
  • Data integration hub: Pulls structured product, variant, and catalog data from Firebase, synchronizing with other ARShades services.
  • Conversion driver: By reducing friction with App Clip and enabling immersive try-on, ARShades accelerates user decisions and brand engagement.

Ecosystem

Core pieces

  • iOS App (full experience): AR try-on, catalog browsing, favorites, facial metrics, notifications, legal, contacts, skin tone picker.
  • App Clip (instant entry): lightweight try-on for a single product/variant from a link.
  • Deep Links / Universal Links: user-facing URLs that open either the App Clip or the full app.
  • Firebase: source of truth for catalogs, products, variants, and paginated product feeds.

Capabilities & entitlements

  • Associated Domains
    • applinks:safilo.arshades.it
    • applinks:spaarkly.page.link
    • appclips:safilo.arshades.it
  • Background Modes: Remote notifications ✅
  • App Groups: group.arshades.appClipMigration (data sharing between App & App Clip)
  • Signing: Team Spaarkly srl, Bundle it.spaarkly.ARShades-demo

Entry flows

1) App Clip flow (no app installed)

  • User taps a WebVTO link, e.g.:
    https://www.webvto.it/?c={catalogueId}&m={VariantId}
  • The system launches the App Clip.
  • Parameters:
    • c = catalogueId (the catalog the variant belongs to)
    • m = variantId (the exact SKU/variant to show immediately)
  • The App Clip fetches minimal data for that catalogueId and variantId and opens straight into Try-On for a frictionless demo.

2) Full app flow (app installed)

  1. Splash Screen → performs lightweight setup.
  2. If Privacy Policy / Terms not accepted → present PP/T&C gate.
  3. Brands screen → after user picks a brand, navigate to Try-On.
  4. When launched from a deep link with c and m:
    • Parse catalogueId = c, variantId = m.
    • From Firebase:
      1. Load catalogue by catalogueId.
      2. Load variant by variantId.
      3. Resolve the product that owns this variant.
      4. Fetch sibling variants (other colors/sizes of the same product).
      5. Fill the product carousel with additional products from the same catalogue (paginated, 30 products per page).
    • Open Try-On focused on the requested variant; the carousel is prefilled and extends as the user scrolls.

Domain model

  • Catalogue → contains many Products.
  • Product → contains one or more Variants (colorways, sizes, etc.).
  • Variant → concrete, try-on-ready item (the AR asset & metadata shown first).

  • Pre-main flow: Splash → PP/T&C (if needed) → Brands → Try-On
  • Main (Side-Menu) pages:
    • Try-On (default post-brand)
    • 3D Viewer
    • Brands
    • Catalogue
    • Favorites
    • Facial Metrics
    • Choose Skin
    • Notifications
    • Legal
    • Contacts

Performance & UX notes

  • Paginated fetch: product carousel queries in batches of 30 for consistent memory and snappy scrolling.
  • Cold-start resilience: App can render Try-On with just the requested variant, then hydrate siblings and carousel progressively.
  • Shared storage: App & App Clip exchange small items (e.g., acceptance flags, last variant) via the App Group.