POMPKINS Food iOS
Native iOS food ordering app built with SwiftUI and Clean Architecture — featuring real-time order tracking via SSE, Live Activity Widget for Dynamic Island and lock screen, PompkinsShorts short-video feed, and an AI chatbot.
Sole iOS DeveloperProfessional WorkIn Production
swiftswiftuifirebasegoogle-mapsalamofirelottiewidgetkit
15+
Feature Modules
4
Auth Methods
5
Cache Policies
Published
App Store
My Role
Sole iOS developer — designed and built the entire native app from scratch. The app is the consumer-facing mobile client for the POMPKINS food ordering platform, published on the App Store and handling the full ordering lifecycle from discovery to delivery.
What I Built
- Home & discovery — merchant feed with categories, spotlight sections, and nearby merchant map (Google Maps)
- Ordering flow — merchant detail, menu browsing with item options, cart management, checkout, and Reservepay payment integration
- Real-time order tracking — live status updates via SSE with automatic reconnection and exponential backoff
- Live Activity Widget — order status on the Dynamic Island and lock screen throughout the delivery lifecycle
- Multi-auth — OTP (phone + SMS), LINE, Google, and Apple Sign In
- PompkinsShorts — short vertical video feed (TikTok-style) embedded in the food discovery experience
- Pomp Pomp chatbot — in-app AI assistant for order help and FAQs
- Address management — saved addresses with Google Maps location picker
- User features — order history with pagination, favorites, reviews, notifications inbox, profile
Technical Highlights
- Clean Architecture + MVVM — features organized into domain modules with protocol-based repositories;
@MainActorViewModels with@EnvironmentObjectinjection for app-wide state (location, address, session) - SSE real-time tracking —
SSEManagerwith automatic reconnection and exponential backoff; properly tears down connections during app lifecycle transitions - Live Activity Widget — WidgetKit integration for Dynamic Island and lock screen order tracking, updating through each delivery stage
- Multi-level API cache — five cache policies (
cacheFirst,networkFirst,cacheOnly,networkOnly,networkAndCache) with memory + 7-day disk cache;CachedAsyncImagefor image caching throughout - Auth interceptor —
AuthIntercepterautomatically refreshes expired JWT tokens on 401 responses, transparent to the rest of the app - Secure storage — all tokens and sensitive data stored in Keychain via
KeychainService;CryptoServiceencrypts sensitive API payloads; certificate pinning in production
Screenshots

Home

Merchant & Menu

Checkout

Order Status

Live Activity Widget

PompkinsShorts

Pomp Pomp Chatbot