Event Industry Mobile App Development
An event app lives in two modes: before (poster, ticket purchase, anticipation) and during (schedule, navigation, networking). Technically, these are different requirement sets, and the common mistake is treating them identically. Before is conversion-critical. During is offline-first, speed, real-time schedule updates.
Ticket Purchase
Event screen: description, speakers, program, remaining spots, "Buy" button. Select ticket type (General, VIP, Online) → cart → checkout. For events with limited seats, live seat counter via WebSocket or polling. If seats sell out a second before purchase, 409 Conflict with a clear message.
Seasonal pass / multi-day festival: one order for several dates. Group purchase: user buys 4 tickets, enters each participant's email—each gets their own QR.
Payment flow is critical. Apple Pay and Google Pay minimize friction. Saved card for repeats. Stripe, Checkout.com, or regional acquirer.
QR Registration at Entry
Ticket QR: JWT with ticketId, eventId, userId, exp (expiration). Signed with server key. On scan at entry: verify signature → verify exp → mark ticket as used (redemption flag in DB).
Prevent screenshot forgery: animated QR (updates every 30 seconds with new iat)—standard for major festivals. No network: accept last downloaded code with offline-cache check on volunteer device.
Volunteer scanner app: separate target or separate app. Scan via AVFoundation / ML Kit. Audio and haptic feedback on successful/failed scan—critical in loud crowds.
Schedule and Program
Multi-hall schedule: horizontal time axis, vertical halls/stages. UICollectionViewCompositionalLayout or custom Canvas. Overlapping sessions display in parallel.
Personalized schedule: user marks "Want to attend"—sessions add to personal program. Conflicts ("two events at 3:00 PM") show warning.
Real-time changes: speaker fell ill, session moved. WebSocket update, push notification to interested users. On client: scheduleSessions as Observable/Stream—UI redraws without reload.
Offline: cache schedule on first load. Festival attendees often lack network—the app must work. Core Data / Room / Isar with background sync when connected.
Networking
Attendee profile: name, company, role, photo, links. Visibility: customizable (everyone / by request / hidden).
"Find people nearby" via Bluetooth proximity using CoreBluetooth (iOS) / Nearby Connections API (Android). ~10-meter radius. On discovering another networked attendee: banner "Nearby: Ivan Petrov, CTO at Acme Corp."
Business card: NFC exchange (NFCNDEFReaderSession iOS / NfcAdapter Android)—attendees tap phones, exchange profiles. QR card as fallback.
Chat: direct messages, topic channels. Stream Chat or SendBird with push on new message.
Attendee Interactivity
Live Q&A: attendees ask speakers, vote on questions. Organizer screen shows top-voted in real time. WebSocket sync.
Polls: speaker launches poll → attendees respond → live results on slide. Ready solutions (Mentimeter API) or custom via WebSocket.
Stack
React Native: popular for event apps. Cross-platform, fast start, sufficient performance for schedule and chat. Zustand or Redux Toolkit for schedule state. react-native-vision-camera for QR scanning. Flutter: similar choice.
Native Swift + Kotlin if Bluetooth proximity, NFC business card exchange, and max schedule performance matter.
Process
Design poster and checkout → QR system and volunteer app → offline-capable schedule → networking → interactivity → real event testing (pilot run) → launch.
Timeline Estimates
MVP (poster, ticket purchase, QR entry, schedule): 4–7 weeks. Full event app with networking, live Q&A, Bluetooth proximity, multi-platform scanner: 2–4 months. Cost determined after requirements analysis.







