You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
💡 iOS Live Activities for Real-Time Market-Day Status
#465
Use Expo SDK 56's native expo-widgets library to display real-time market-day status on the iOS Lock Screen and Dynamic Island via Live Activities. Customers see a glanceable count of followed vendors who have checked in, market open/close countdown, and key status changes — without opening the app. This is a progressive enhancement that degrades gracefully on Android and older iOS versions.
Market Signal
Expo SDK 56 introduced expo-widgets with native support for iOS home screen widgets and Live Activities — no SwiftUI code required, just React components with Continuous Native Generation (Expo blog, Expo docs). No farmers market app offers Live Activities. The pattern is proven by Uber (ride tracking), sports apps (live scores), and food delivery (order status) — all time-bound event contexts. Farmers markets (Saturday 6am-2pm) are the ideal Live Activity use case: ephemeral, time-bound, with rapidly changing vendor status.
User Signal
Existing Discussion #430 (Expo Home Screen Widget) covers static home screen widget display. Live Activities are a distinct, higher-engagement surface: ephemeral, contextually activated during market hours, and visible on the Lock Screen and Dynamic Island without any user action. This directly addresses the PRD's core "confidence before traveling" user need — Rachel can glance at her lock screen and see "3 of 5 followed vendors checked in at Riverside Market" without opening the app.
Technical Opportunity
expo-widgets lets developers define widgets as React components with Continuous Native Generation handling the native target — no separate Xcode target or SwiftUI code. The architecture's Firebase Realtime Database paths (/markets/{marketId}/vendors/{vendorId}/status) provide the real-time data source for Live Activity updates. Updates can be pushed via APNs push-to-update, piggybacking on the existing FCM notification infrastructure. The widget component would render: market name, open/close countdown timer, followed vendor check-in count (e.g., "3/5 vendors in"), and the most recent status change.
Assessment
Dimension
Score
Rationale
Feasibility
high
Expo SDK 56 provides native support; no SwiftUI expertise required; Firebase Realtime provides the data source
Impact
high
Premium "wow" UX feature; drives word-of-mouth among early adopters; no competitor offers this; directly serves the confidence-before-trip need
Urgency
med
Progressive enhancement, not blocking core flows; but first-mover advantage is real — being the first farmers market app with Live Activities is a strong differentiator
Adversarial Review
Strongest objection:expo-widgets is in alpha, iOS-only, and farmers market customers skew older/lower-tech. The effort-to-reach ratio is poor for a platform-limited feature.
Rebuttal: Live Activities are a progressive enhancement — the app works identically without them. The "wow" factor of lock-screen market status drives word-of-mouth among early adopters who bring others. expo-widgets is backed by the Expo team with active development; by the time Markets ships production features, it will likely be stable. The iOS-only limitation is acceptable because this is a delight feature, not a core dependency. Android can receive a comparable experience via rich persistent notifications when Android widget support ships.
Suggested Next Step
Prototype a minimal Live Activity showing market open/close countdown and vendor check-in count using expo-widgets alpha. Validate that APNs push-to-update works with the Firebase Realtime Database data flow. Design the Live Activity layout for both compact (Dynamic Island) and expanded (Lock Screen) presentations.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Summary
Use Expo SDK 56's native expo-widgets library to display real-time market-day status on the iOS Lock Screen and Dynamic Island via Live Activities. Customers see a glanceable count of followed vendors who have checked in, market open/close countdown, and key status changes — without opening the app. This is a progressive enhancement that degrades gracefully on Android and older iOS versions.
Market Signal
Expo SDK 56 introduced
expo-widgetswith native support for iOS home screen widgets and Live Activities — no SwiftUI code required, just React components with Continuous Native Generation (Expo blog, Expo docs). No farmers market app offers Live Activities. The pattern is proven by Uber (ride tracking), sports apps (live scores), and food delivery (order status) — all time-bound event contexts. Farmers markets (Saturday 6am-2pm) are the ideal Live Activity use case: ephemeral, time-bound, with rapidly changing vendor status.User Signal
Existing Discussion #430 (Expo Home Screen Widget) covers static home screen widget display. Live Activities are a distinct, higher-engagement surface: ephemeral, contextually activated during market hours, and visible on the Lock Screen and Dynamic Island without any user action. This directly addresses the PRD's core "confidence before traveling" user need — Rachel can glance at her lock screen and see "3 of 5 followed vendors checked in at Riverside Market" without opening the app.
Technical Opportunity
expo-widgetslets developers define widgets as React components with Continuous Native Generation handling the native target — no separate Xcode target or SwiftUI code. The architecture's Firebase Realtime Database paths (/markets/{marketId}/vendors/{vendorId}/status) provide the real-time data source for Live Activity updates. Updates can be pushed via APNs push-to-update, piggybacking on the existing FCM notification infrastructure. The widget component would render: market name, open/close countdown timer, followed vendor check-in count (e.g., "3/5 vendors in"), and the most recent status change.Assessment
Adversarial Review
Strongest objection:
expo-widgetsis in alpha, iOS-only, and farmers market customers skew older/lower-tech. The effort-to-reach ratio is poor for a platform-limited feature.Rebuttal: Live Activities are a progressive enhancement — the app works identically without them. The "wow" factor of lock-screen market status drives word-of-mouth among early adopters who bring others.
expo-widgetsis backed by the Expo team with active development; by the time Markets ships production features, it will likely be stable. The iOS-only limitation is acceptable because this is a delight feature, not a core dependency. Android can receive a comparable experience via rich persistent notifications when Android widget support ships.Suggested Next Step
Prototype a minimal Live Activity showing market open/close countdown and vendor check-in count using
expo-widgetsalpha. Validate that APNs push-to-update works with the Firebase Realtime Database data flow. Design the Live Activity layout for both compact (Dynamic Island) and expanded (Lock Screen) presentations.All reactions