Case study

Alva — Product Risk Scanner for iOS

Native SwiftUI app that lets health-conscious consumers scan product barcodes and ingredients to detect PFAS, toxic chemicals, allergens, and hormone disruptors with personalized risk analysis.

Alva — Product Risk Scanner for iOS

Alva is a health-focused product scanner built around a simple promise: know what is in the things you buy and whether any of it matters for your body specifically. The iOS app is the primary surface for that experience, and the one we built from scratch. With over 2,300 users already onboard, the product has moved well past concept and into real daily use.

What the product does

  • Barcode scanning and ingredient image capture for any consumer product
  • Personalized risk analysis based on the user’s health conditions, allergies, and concerns
  • Detection of PFAS, toxic chemicals, allergens, and hormone disruptors via AI-powered chemical matching
  • Product discovery through categories, search, and community-curated collections
  • Collections that users can build, share, and follow

Why the iOS work mattered

The product has to do a lot of heavy lifting in a very narrow moment: someone is standing in a store, scanning a label, and needs a clear, trustworthy answer before they put the item in their cart. That means the app cannot feel slow, uncertain, or complicated.

That shaped every major decision in the iOS architecture. The scanning flow had to feel instant. The risk results had to be readable without a chemistry degree. The onboarding had to capture meaningful health data without feeling like a medical intake form. And the whole thing had to work within a freemium model where the first scan is the moment that earns or loses a paying user.

How the app is built

The iOS app is a native SwiftUI codebase targeting iOS 18, using the @Observable macro for centralized state management and actor-based concurrency for thread-safe networking. The architecture is intentionally flat: one central AlvaModel holds app-wide state, with local @State for component-level concerns and @AppStorage for persistence.

Key technical areas include:

  • A two-step scanner flow: barcode capture followed by ingredient image analysis, with async job polling until the backend finishes risk calculation
  • RevenueCat integration for subscription management, scan packs, and a freemium quota system that tracks daily scans, purchased packs, and bonus credits separately
  • Branch SDK deep linking for a referral system that rewards both parties with bonus scans
  • Firebase for push notifications, crashlytics, and remote config
  • PostHog for analytics, feature flags, and A/B testing
  • An eleven-step onboarding flow that collects health conditions, dietary preferences, product interests, and risk tolerance without overwhelming the user

What makes the product interesting

Alva is not a simple lookup tool. The backend does real chemical matching using vector embeddings and returns a multi-factor risk score personalized to the user’s health profile. The iOS app has to present that complexity in a way that feels immediate and human.

That means the product design work matters as much as the engineering. The risk breakdown has to explain what was found and why it matters for this specific person. The collections feature turns individual scanning into a social layer. And the incentive system — referral rewards, review bonuses, scan packs — has to feel fair rather than pushy.

Why this project stands out

Health-tech products fail when they feel either too clinical or too shallow. Alva works because it treats the user’s concern seriously without demanding expertise from them. The iOS app is where that promise becomes real: a fast scan, a clear answer, and a growing product behind it that keeps getting more useful the more someone uses it.