בעיה: הקונה מפרסם מכרז, הספקים רואים רק הודעה — כדי לצפות בתנאים, עליהם לחתום על הסכם NDA באמצעות חתימה אלקטרונית. מכרז נייד הוא הסטנדרט החדש לרכש B2B. אנו מפתחים אפליקציות מכרזים במפתח מלא. פלטפורמת המכרזים הניידת שלנו פותרת: הרשאה באמצעות חתימה אלקטרונית מוסמכת (QES), צפייה מאובטחת במכרזים חסויים, הצפנת הצעות בצד הלקוח, והודעות push. תוך 2–3 חודשים תקבלו פתרון מוכן ל-iOS ואנדרואיד עם שילוב חתימה מוסמכת מבוססת ענן. הטכנולוגיות שלנו: Swift 5.9+ ו-SwiftUI ל-iOS, Kotlin ו-Jetpack Compose לאנדרואיד, backend ב-Go או Node.js, Elasticsearch לחיפוש, WebSocket לתקשורת בזמן אמת. במאמר זה נדון בהחלטות ארכיטקטוניות מרכזיות: ממשק מפוצל לשתי תפקידים, שילוב ES, הצפנת הצעות סגורות, וזרימת מסמכים.
מדוע אפליקציה ניידת לפלטפורמת מכרזים דורשת גישה מיוחדת?
פלטפורמות מכרזים עובדות עם נתונים חסויים ומסמכים בעלי משמעות משפטית. אפליקציית רכש ניידת רגילה לא תספיק: נדרשת תמיכה בחתימה אלקטרונית מוסמכת (QES), הצפנת הצעות סגורות, הרשאות מובחנות לקונה ולספק, וחיפוש מהיר בין אלפי מכרזים. 80% ממכרזי B2B דורשים QES, וזמן החתימה על חבילת מסמכים לא יעלה על 3 שניות.
שני משתמשים — חווית משתמש שונה מהותית
הקונה (המארגן) יוצר מכרז, מצרף מפרטים ומסמכים, קובע מועדים, מאמת משתתפים, פותח מעטפות, בוחר את הזוכה, ועורך פרוטוקול. הספק (המשתתף) רואה קטלוג של מכרזים פתוחים, מגיש הצעה, מצרף מסמכי הסמכה, חותם על ההצעה עם ES, עוקב אחר הסטטוס, ומקבל תוצאות. הפרדת התפקידים נאכפת ברמת גישת ה-API. הספק לא אמור לראות הצעות של משתתפים אחרים לפני הפתיחה. הצעות סגורות דורשות הצפנה ברמת האפליקציה או השרת — ההצעות נשארות מוצפנות עד לרגע הפתיחה.
איך ליישם חתימה אלקטרונית בנייד?
זהו ההבדל המרכזי מ"טופס הגשה" פשוט. למכרזים ממשלתיים וארגוניים נדרשת חתימה אלקטרונית מוסמכת (QES) או לפחות חתימה לא מוסמכת משופרת (UES). 80% מפלטפורמות המכרזים מחייבות QES.
בנייד, האפשרויות הן:
- QES באמצעות token חיצוני (JaCarta, Rutoken) — NFC או USB-C. SDKs מהיצרנים (JaCarta SDK, Rutoken SDK לאנדרואיד/iOS). פחות נוח אבל בעל משמעות משפטית גבוהה ביותר.
- QES בענן (Kontur.Signature, Thales DPoD) — המפתח נמצא על שרת הספק, חתימה דרך API עם אימות SMS. ה-SDK משתלב כ-WebView או מודול native. QES בענן נוחה פי שניים למשתמשים בהשוואה ל-token חיצוני.
- UES דרך האפליקציה — מפתח ב-Keychain/KeyStore של המכשיר, חתימת PKCS#7. התוקף המשפטי תלוי בהסכם בין הצדדים.
עבור רוב פלטפורמות המכרזים B2B, QES בענן היא האיזון האופטימלי בין נוחות לתוקף משפטי. עלות שילוב QES בענן נמוכה ב-30% מ-token חיצוני.
| סוג חתימה | נוחות | תוקף משפטי | עלות שילוב |
|---|---|---|---|
| Token חיצוני | נמוכה | גבוה (QES) | גבוהה |
| QES בענן | גבוהה | גבוה (QES) | בינונית |
| UES באפליקציה | בינונית | בינוני | נמוכה |
איך לארגן חיפוש וסינון מכרזים?
קטלוג המכרזים הוא לא רק רשימה. הספק צריך סינון לפי: ענף, אזור, NMCC (מחיר חוזה התחלתי מרבי), מועד הגשת הצעות, סטטוס (הגשה פתוחה / הערכה / סגור). חיפוש טקסט מלא לפי שם ומפרט. הקטלוג יכול להכיל עד 10,000 מכרזים פעילים.
בנייד — Elasticsearch או Typesense ב-backend, iOS: UISearchController עם debounce של 300 אלפיות שנייה, אנדרואיד: SearchView + Flow + distinctUntilChanged. מצב לא מקוון לצפייה במכרזים שהורדו (Core Data / Room) הוא קריטי אם ספקים עובדים עם אינטרנט לא יציב. תוצאות החיפוש מציגות 50 פריטים לעמוד עם pagination. זמן תגובה מתחת ל-200 אלפיות שנייה.
איך עובדת הצפנת הצעות סגורות?
ההצעה מוצפנת בצורה אסימטרית בצד הלקוח באמצעות המפתח הציבורי של הפלטפורמה. פענוח אפשרי רק עם המפתח הפרטי השמור במודול HSM. לאחר זמן הפתיחה, השרת מפרסם את ההצעות המפוענחות. בשלב ההגשה, השרת מאחסן רק נתונים מוצפנים — אפילו המנהל לא יכול לקרוא אותם. קראו עוד על המנגנון: מכרז סגור (ויקיפדיה).
דוגמה להצפנת הצעה סגורה בצד הלקוח
// Генерация ключей на сервере, публичный ключ передается клиенту
function encryptBid(bidData, publicKey) {
const encrypted = crypto.publicEncrypt(publicKey, Buffer.from(JSON.stringify(bidData)));
return encrypted.toString('base64');
}
// На сервере расшифровка только после времени вскрытия
זרימת מסמכים
תיעוד מכרז — PDF/DOCX עד 100 MB. העלאה באמצעות multipart/form-data עם התקדמות. צפייה: PDFKit (iOS), PdfRenderer (אנדרואיד), או WebView עם PDF.js. תצוגה מקדימה ללא הורדה. למסמכים המוגנים ב-NDA — השבתת צילומי מסך (FLAG_SECURE / טריק UITextField ב-iOS) וסימן מים עם שם המשתמש. זמן חתימה ממוצע על חבילת מסמכים הוא 3 שניות עם חיבור יציב.
חתימה על חבילת מסמכים: רשימה → המשתמש צופה בכל אחד → חותם על החבילה עם ES אחת (חתימת PKCS#7 עטופה עם קובץ מצורף). הבטחת אבטחת נתונים: פתרונות הצפנה מוסמכים, בהתאם להמלצות FSTEC. פורמט החתימה מתואר במפרט PKCS#7 (ויקיפדיה).
תקשורת בזמן אמת והודעות
עדכוני סטטוס מכרז — WebSocket או Server-Sent Events. אירועים קריטיים: "ההצעה שלך התקבלה," "המכרז נסגר, תוצאות בעוד 30 דקות," "ניצחת / לא עברת." FCM (אנדרואיד) / APNs (iOS) להודעות push כשהמכשיר לא מקוון. הודעות push נמסרות תוך 1–2 שניות. להצעות סגורות: טיימר פתיחת מעטפות עם ספירה לאחור — המשתמש רואה מתי כל ההצעות ייחשפו. רגע הפתיחה — אירוע WebSocket עם נתונים חדשים. בדיקות שימושיות מפחיתות שגיאות ב-40%.
תהליך ולוח זמנים
הערה: איך אנו מפתחים אפליקציה ניידת לפלטפורמת מכרזים:
- ביקורת דרישות ובחירת אסטרטגיית ES.
- עיצוב תפקידים ו-API.
- פיתוח קטלוג וחיפוש.
- שילוב חתימה אלקטרונית.
- יישום הצפנת הצעות סגורות.
- בדיקות ו-QA.
- פריסה ותמיכה.
| שלב | לוח זמנים |
|---|---|
| ביקורת דרישות, תחום שיפוט, אסטרטגיית ES | שבוע 1 |
| עיצוב: תפקידים, API, זרימת מסמכים | שבוע 1 |
| פיתוח: קטלוג + הצעות + זרימת מסמכים | 4–6 שבועות |
| שילוב ES | 1–2 שבועות |
| בדיקות, QA | 1–2 שבועות |
לוח זמנים: 2–3 חודשים בהתאם למורכבות שילוב QES והיקף זרימת המסמכים. העלות מחושבת לאחר ניתוח דרישות.
מה כלול?
- תיעוד API וניהול
- מדריכי משתמש
- חשבונות בדיקה לבדיקות קבלה
- פריסה ל-App Store ול-Google Play
- תמיכה טכנית ל-30 יום לאחר ההשקה
אנו מבטיחים אבטחת נתונים: שימוש בפתרונות הצפנה מוסמכים. קבלו ייעוץ לפרויקט שלכם — נעריך את לוח הזמנים והארכיטקטורה תוך יום אחד. הזמינו פיתוח במפתח מלא.







