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.