A conference with 2000 attendees: schedule changes every hour, Wi-Fi drops, and people simultaneously scan badges at the entrance. A standard mobile app won't handle that—you need an architecture with offline mode, caching, and push synchronization. We specialize in such projects: over 5 years, we've delivered 30+ event apps ranging from 200 to 5000 participants. During this time, we've developed proven solutions that save up to 30% of the budget through module reuse.
Conference App Development: Solving Technical Challenges?
Schedule: How to display hundreds of talks without lag?
The conference schedule is a grid by time and rooms. On iOS: UICollectionView with a custom UICollectionViewLayout, where each talk is a cell with a position (startTime) and size (duration). Compositional Layout isn't suitable—we need full customization of positioning. The custom layout with prepare() computes UICollectionViewLayoutAttributes for each talk in advance.
On Android—RecyclerView with the standard LinearLayoutManager and custom ItemDecoration won't produce the required grid. Either a custom RecyclerView.LayoutManager or Compose Canvas to draw the schedule grid directly.
Personal schedule—the user adds talks "to bookmarks." Stored locally in UserDefaults / SharedPreferences plus synced with the account. Schedule conflict (two talks at the same time)—explicit warning when adding.
Why Custom Layout for the Schedule?
Standard components don't provide accurate cell positioning by time. A custom layout gives full control over visual placement, which is critical for a grid with overlapping talks and dynamic size changes.
Offline mode is mandatory. Conference Wi-Fi is often overloaded. The full schedule is cached on first launch and updated when network is available. URLCache for HTTP responses with Cache-Control: max-age=300 on the server. Speakers may be late, rooms may change—updates arrive via a push notification with content-available: 1 (silent push) to invalidate the cache.
Registration: How to handle 5000 attendees per hour?
QR code for attendee registration—encrypted ticketId in QR. Volunteers scan at the entrance using AVMetadataMachineReadableCodeObject (iOS) or ML Kit BarcodeScanning (Android). Real-time validation via API—response in < 500 ms even with 50 simultaneous scans. References: AVMetadataMachineReadableCodeObject and ML Kit BarcodeScanning are proven solutions.
Cache of validated tickets on the scanner device: if the API is unavailable—check against the local copy. Risk: someone could reuse an old ticket. Solution—offline cache only for reads, write to server when connectivity is restored.
Attendee QR code—generated in the app using CoreImage.CIQRCodeGenerator (iOS) or zxing-android-embedded (Android) from the ticketId. High error correction level (CIQRCodeInputCorrectionLevelH)—QR is readable even with a scratch on the screen.
Push and Live Updates: How to guarantee delivery of changes?
Schedule changes (talk rescheduling, room change, cancellation)—real-time push. FCM with priority: high for guaranteed delivery. The client shows a banner over the current screen via UIView.animate or snackbar in Compose.
Reminder 15 minutes before bookmarks—local notifications via UNUserNotificationCenter. Not Firebase for this—local notifications work without internet. When schedule changes—reschedule the notification: UNUserNotificationCenter.removePendingNotificationRequests(withIdentifiers:) + new UNNotificationRequest.
How to ensure timely push delivery?
Combination of high-priority FCM and local notifications guarantees the user gets an alert even with weak internet. Silent pushes update the cache without unnecessary downloads.
Networking and Interaction
Attendee list with filters by interests, company, role (speaker, visitor, sponsor). Contact exchange—profile QR code or NFC via CoreNFC.NFCNDEFReaderSession (iOS) / NfcAdapter.getDefaultAdapter() (Android). NFC is 2x faster than QR—exchange takes less than a second. NFC for vCard exchange—instant, no camera needed.
Speaker-audience chat—live Q&A. WebSocket channel per talk, questions with upvotes. Moderator selects questions to be voiced. Server: Redis Pub/Sub for broadcasting questions and votes to all connected clients.
| Exchange Method | Speed | Internet Required | Additional Cost |
|---|---|---|---|
| QR code | ~2 sec | No | None |
| NFC | <1 sec | No | Device support |
Conference Center Map
Building floor plan—SVG or raster image with interactive room hotspots. PDFKit (iOS) for vector plans. Navigation to a room—arrow with floor number, not a full route graph (overkill for one building). Indoor Positioning via iBeacon (CLBeaconRegion) for proximity to a specific hall—optional, requires beacon infrastructure.
What's Included
- Documentation: technical specification, architecture diagram, API description.
- Source code: private repository with CI/CD, code review.
- Access: App Store Connect / Google Play Console, TestFlight, Firebase App Distribution.
- Training: administrator guide for the conference, video tutorials.
- Support: 2 months post-release—bug fixes, adaptation to new requirements.
Process and Timelines
| Stage | Duration |
|---|---|
| Analysis | 1 week |
| Design | 1–2 weeks |
| Implementation | 4–8 weeks |
| Testing | 1 week |
| Deployment | up to 3 days |
How We Develop: Step-by-Step Plan
- Requirements analysis: study use cases, load, integrations.
- Design: create architecture diagram, choose stack.
- Implementation: iterative development with demos every 2 weeks.
- Testing: load testing simulating 5000+ simultaneous requests.
- Deployment: publish to App Store and Google Play with phased rollout.
Example Architecture
Modules: schedule (local cache + API), registration (QR scanner + validation), push (FCM + local), networking (WebSocket + Redis). Communication via shared preferences and message broker.
Schedule (grid + bookmarks + offline) + push notifications + badges (QR scanning)—6–8 weeks. Networking + Q&A chat + map + live updates—2–3 months. Cost is determined after requirements analysis. Contact us for a preliminary project estimate. Get a consultation—we'll select the optimal solution for your conference.







