כנס עם 2000 משתתפים: לוח הזמנים משתנה כל שעה, ה-Wi-Fi נופל, ואנשים סורקים תגים בו-זמנית בכניסה. אפליקציה ניידת רגילה לא תעמוד בזה—אתה צריך ארכיטקטורה עם מצב לא מקוון, מטמון, וסנכרון Push. אנו מתמחים בפרויקטים כאלה: במשך יותר מ-5 שנים, סיפקנו 30+ אפליקציות אירועים החל מ-200 ועד 5000 משתתפים. במהלך תקופה זו, פיתחנו פתרונות מוכחים שחוסכים עד 30% מהתקציב באמצעות שימוש חוזר במודולים.
פיתוח אפליקציית כנסים: פתרון אתגרים טכניים?
לוח זמנים: איך להציג מאות הרצאות ללא פיגור?
לוח הזמנים של הכנס הוא רשת לפי זמן וחדרים. ב-iOS: UICollectionView עם UICollectionViewLayout מותאם אישית, שבו כל הרצאה היא תא עם מיקום (startTime) וגודל (duration). Compositional Layout אינו מתאים—אנחנו צריכים התאמה מלאה של המיקום. ה-layout המותאם אישית עם prepare() מחשב UICollectionViewLayoutAttributes עבור כל הרצאה מראש.
ב-Android—RecyclerView עם LinearLayoutManager הסטנדרטי ו-ItemDecoration מותאם אישית לא יפיק את הרשת הנדרשת. או RecyclerView.LayoutManager מותאם אישית או Compose Canvas כדי לצייר את רשת לוח הזמנים ישירות.
לוח זמנים אישי—המשתמש מוסיף הרצאות "לסימניות." נשמר מקומית ב-UserDefaults / SharedPreferences ומסונכרן עם החשבון. התנגשות בלוח הזמנים (שתי הרצאות באותו זמן)—אזהרה מפורשת בעת הוספה.
למה Layout מותאם אישית ללוח הזמנים?
רכיבים סטנדרטיים לא מספקים מיקום מדויק של תאים לפי זמן. Layout מותאם אישית נותן שליטה מלאה על המיקום החזותי, וזה קריטי לרשת עם הרצאות חופפות ושינויי גודל דינמיים.
מצב לא מקוון הוא חובה. ה-Wi-Fi של הכנס לעיתים קרובות עמוס. לוח הזמנים המלא נשמר במטמון בהפעלה הראשונה ומתעדכן כשהרשת זמינה. URLCache עבור תגובות HTTP עם Cache-Control: max-age=300 בשרת. מרצים עשויים לאחר, חדרים עשויים להשתנות—עדכונים מגיעים דרך הודעת push עם content-available: 1 (push שקט) כדי לפסול את המטמון.
רישום: איך לטפל ב-5000 משתתפים בשעה?
קוד QR לרישום משתתפים—ticketId מוצפן ב-QR. מתנדבים סורקים בכניסה באמצעות AVMetadataMachineReadableCodeObject (iOS) או ML Kit BarcodeScanning (Android). אימות בזמן אמת דרך API—תגובה ב-< 500 ms אפילו עם 50 סריקות בו-זמנית. הפניות: AVMetadataMachineReadableCodeObject ו-ML Kit BarcodeScanning הם פתרונות מוכחים.
מטמון של כרטיסים מאומתים במכשיר הסורק: אם ה-API לא זמין—בדוק מול העותק המקומי. סיכון: מישהו יכול לעשות שימוש חוזר בכרטיס ישן. פתרון—מטמון לא מקוון רק לקריאה, כתיבה לשרת כשהקישוריות משוחזרת.
קוד QR של משתתף—נוצר באפליקציה באמצעות CoreImage.CIQRCodeGenerator (iOS) או zxing-android-embedded (Android) מה-ticketId. רמת תיקון שגיאות גבוהה (CIQRCodeInputCorrectionLevelH)—ה-QR קריא אפילו עם שריטה על המסך.
Push ועדכונים חיים: איך להבטיח מסירת שינויים?
שינויים בלוח הזמנים (דחיית הרצאה, שינוי חדר, ביטול)—push בזמן אמת. FCM עם priority: high למסירה מובטחת. הלקוח מציג באנר מעל המסך הנוכחי דרך UIView.animate או snackbar ב-Compose.
תזכורת 15 דקות לפני סימניות—הודעות מקומיות דרך UNUserNotificationCenter. לא Firebase לזה—הודעות מקומיות עובדות ללא אינטרנט. כשהלוח משתנה—תזמן מחדש את ההודעה: UNUserNotificationCenter.removePendingNotificationRequests(withIdentifiers:) + UNNotificationRequest חדש.
איך להבטיח מסירת push בזמן?
שילוב של FCM בעדיפות גבוהה והודעות מקומיות מבטיח שהמשתמש יקבל התראה גם עם אינטרנט חלש. Push שקט מעדכן את המטמון ללא הורדות מיותרות.
נטוורקינג ואינטראקציה
רשימת משתתפים עם סינונים לפי תחומי עניין, חברה, תפקיד (מרצה, מבקר, נותן חסות). החלפת פרטי קשר—קוד QR בפרופיל או NFC דרך CoreNFC.NFCNDEFReaderSession (iOS) / NfcAdapter.getDefaultAdapter() (Android). NFC מהיר פי 2 מ-QR—ההחלפה אורכת פחות משנייה. NFC להחלפת vCard—מיידי, ללא צורך במצלמה.
צ'אט מרצה-קהל—שאלות ותשובות חיות. ערוץ WebSocket לכל הרצאה, שאלות עם הצבעות. המנחה בוחר שאלות שיושמעו. שרת: Redis Pub/Sub לשידור שאלות והצבעות לכל הלקוחות המחוברים.
| שיטת החלפה | מהירות | נדרש אינטרנט | עלות נוספת |
|---|---|---|---|
| קוד QR | ~2 שניות | לא | אין |
| NFC | <1 שנייה | לא | תמיכת מכשיר |
מפת מרכז הכנסים
תוכנית הקומה של הבניין—SVG או תמונת רסטר עם נקודות חמות אינטראקטיביות לחדרים. PDFKit (iOS) לתוכניות וקטוריות. ניווט לחדר—חץ עם מספר קומה, לא גרף מסלול מלא (מוגזם לבניין אחד). מיקום פנימי דרך iBeacon (CLBeaconRegion) לקרבה לאולם ספציפי—אופציונלי, דורש תשתית beacon.
מה כלול
- תיעוד: מפרט טכני, דיאגרמת ארכיטקטורה, תיאור API.
- קוד מקור: מאגר פרטי עם CI/CD, סקירת קוד.
- גישה: App Store Connect / Google Play Console, TestFlight, Firebase App Distribution.
- הדרכה: מדריך מנהל לכנס, סרטוני הדרכה.
- תמיכה: חודשיים לאחר השחרור—תיקוני באגים, התאמה לדרישות חדשות.
תהליך ולוחות זמנים
| שלב | משך |
|---|---|
| ניתוח | שבוע |
| עיצוב | 1–2 שבועות |
| יישום | 4–8 שבועות |
| בדיקות | שבוע |
| פריסה | עד 3 ימים |
איך אנחנו מפתחים: תוכנית שלב-אחר-שלב
- ניתוח דרישות: לימוד מקרי שימוש, עומס, אינטגרציות.
- עיצוב: יצירת דיאגרמת ארכיטקטורה, בחירת מחסנית טכנולוגית.
- יישום: פיתוח אינקרמנטלי עם הדגמות כל שבועיים.
- בדיקות: בדיקות עומס המדמות 5000+ בקשות בו-זמנית.
- פריסה: פרסום ב-App Store וב-Google Play עם שחרור מדורג.
דוגמת ארכיטקטורה
מודולים: לוח זמנים (מטמון מקומי + API), רישום (סורק QR + אימות), push (FCM + מקומי), נטוורקינג (WebSocket + Redis). תקשורת דרך העדפות משותפות ו-broker הודעות.
לוח זמנים (רשת + סימניות + לא מקוון) + הודעות push + תגים (סריקת QR)—6–8 שבועות. נטוורקינג + צ'אט שאלות ותשובות + מפה + עדכונים חיים—2–3 חודשים. העלות נקבעת לאחר ניתוח דרישות. צור קשר להערכת פרויקט ראשונית. קבל ייעוץ—נבחר את הפתרון האופטימלי לכנס שלך.







