דמיינו שוק עם 50 שותפים, שכל אחד מהם רוצה להטמיע את המסך שלו באופן מיידי ללא שחרורים ל-App Store. ניהול המודולים הללו תוך הבטחת אבטחה וביצועים הוא המפתח. הפתרון הוא מערכת מיני-תוכניות (mini-program). מערכת זו מאפשרת למיני-תוכניות של סופר-אפליקציות לפעול בצורה חלקה עם ביצוע מבודד וגישה מאובטחת ל-APIים מקוריים. אנו מתכננים ומיישמים מערכת כזו עבור סופר-אפליקציות, תוך הבטחת ביצוע מבודד, גישה מאובטחת ל-APIים מקוריים ועדכונים ללא שחרור ל-App Store. זו אינה רק עטיפת WebView: אנו בונים תשתית מלאה המאפשרת לשותפים ליצור את המודולים שלהם בעוד שהאפליקציה המארחת שולטת בכל היבט של פעולתם. הצוות שלנו מביא עמו ניסיון של למעלה מעשור בפיתוח מובייל והעביר למעלה מ-20 פרויקטים של סופר-אפליקציות, כולל מערכות אקולוגיות לבנקים ולשווקים. עם למעלה מ-12 שנות ניסיון בפיתוח מובייל, למעלה מ-20 פריסות של סופר-אפליקציות ורקורד מוכח של פרקטיקות אבטחה מוסמכות, הצוות שלנו מבטיח אינטגרציה חלקה. מעבר מארכיטקטורת מונולית לארכיטקטורה מודולרית מפחית את זמן היציאה לשוק עבור שירותי שותפים ב-70%, ועלות הבעלות הכוללת יורדת עד 30% על ידי ביטול מחזורי בדיקת App Store. זמן הריצה של WebView שלנו מהיר פי 2 מעטיפות WebView סטנדרטיות בזכות אחסון מבודד ו-Bridge אופטימלי. הלקוחות שלנו מדווחים על חיסכון ממוצע של 120,000 דולר בשנה לאחר ביטול מחזורי בדיקת App Store. היישום נע בדרך כלל בין 50,000 ל-150,000 דולר בהתאם למורכבות, ולקוחות מדווחים על חיסכון ממוצע של 120,000 דולר בשנה על ידי ביטול מחזורי בדיקת App Store. אנו יכולים להעריך את הפרויקט שלכם תוך יומיים – פנו אלינו לייעוץ.
ארכיטקטורת מערכת המודולים הניתנים להטמעה
שתי גישות שונות מהותית לזמן ריצה.
מבוסס WebView. המיני-תוכנית היא אפליקציית web (React, Vue, או DSL מותאם כמו WeChat WXML/WXSS). היא רצה ב-WKWebView מבודד (iOS) או WebView (Android). טכנולוגיות web סטנדרטיות, חסם כניסה נמוך לשותפים, קוד מיני-תוכנית חוצה פלטפורמות. מגבלות: ביצועים נמוכים יותר מאשר native, ללא גישה ל-APIים מקוריים מורכבים ללא Bridge.
מבוסס תוסף native. המיני-תוכנית היא קוד native מהודר (Android: DEX דרך DexClassLoader; iOS: חבילת Swift בזמן קומפילציה). ביצועים native, גישה מלאה ל-API דרך ממשקים מבוקרים. מגבלות: App Store אוסר טעינת קוד בר-הרצה ב-iOS, ולכן תוספי native ב-iOS חייבים להיכלל בקובץ הבינארי בזמן הבנייה.
בפועל, אנו משתמשים בגישה היברידית: שירותי שותפים בסיסיים משתמשים ב-WebView, בעוד שהמיני-תוכניות הקריטיות שלנו משתמשות בתוספי native. השוואת גישות:
| מאפיין | מבוסס WebView | מבוסס תוסף native |
|---|---|---|
| הפעלה קרה | 500–800 אלפיות השנייה | 100–200 אלפיות השנייה |
| גישה ל-API | רק דרך Bridge | native מלא |
| עדכון | ללא שחרור | ללא שחרור (Android), עם שחרור (iOS) |
| ביצועי ממשק משתמש | בינוני | גבוה |
מיני-תוכניות מבוססות WebView קלות יותר לפיתוח, אך תוספי native מהירים פי 2–3 עבור תרחישי ממשק משתמש מורכבים.
פורמט חבילת מיני-תוכנית
מיני-תוכנית מופצת כארכיון zip עם מניפסט:
{
"id": "com.partner.loans",
"version": "2.3.1",
"minHostVersion": "3.0.0",
"entryPoint": "index.html",
"permissions": ["payment", "geolocation"],
"allowedDomains": ["api.partner.com", "cdn.partner.com"],
"signature": "sha256:abc123..."
}בעת הטעינה, המארח מאמת את חתימת הארכיון (RSA-PSS עם המפתח הציבורי של השותף), בודק תאימות { "id": "com.partner.loans", "version": "2.3.1", "minHostVersion": "3.0.0", "entryPoint": "index.html", "permissions": ["payment", "geolocation"], "allowedDomains": ["api.partner.com", "cdn.partner.com"], "signature": "sha256:abc123..." } , מאמת minHostVersion מול הרשימה המותרת עבור אותו שותף, ומחלץ לתיקייה מבודדת. ההפעלה מתרחשת רק לאחר אימות מוצלח.
כיצד פועל ה-Bridge API
ה-Bridge הוא נקודת המגע היחידה בין המיני-תוכנית למארח. ארכיטקטורת בקשה-תגובה:
בצד המיני-תוכנית (JS):
MiniAppBridge.call('payment.pay', {
orderId: 'order-123',
amount: 99.99,
currency: 'USD'
}).then(result => {
// result.transactionId
}).catch(err => {
// err.code, err.message
});בצד המארח (קוד native) ה-Bridge:
- מקבל את הקריאה דרך
permissions(iOS) או שיטתMiniAppBridge.call('payment.pay', { orderId: 'order-123', amount: 99.99, currency: 'USD' }).then(result => { // result.transactionId }).catch(err => { // err.code, err.message });(Android) - מנתח
WKScriptMessageHandler.userContentController(_:didReceive:)ו-@JavascriptInterface - בודק אם למיני-תוכנית זו יש הרשאה לקרוא ל-
method - אם כן, מבצע קוד native (מציג ממשק תשלום, מטפל בעסקה)
- מחזיר תוצאה דרך
params
לכל שיטת Bridge יש רשימת הרשאות מפורשת. קריאה לשיטה ללא ההרשאה הנדרשת גורמת לשגיאה סינכרונית payment.pay. הרשאות מוענקות במהלך רישום השותף, נשמרות בשרת ונשמרות במטמון במארח.
חשיבות האחסון המבודד
כל מיני-תוכנית מקבלת מרחב שמות באחסון המקומי: מפתחות כמו webView.evaluateJavaScript("MiniAppBridge._resolve(requestId, result)"). אין גישה ישירה ל-SQLite או SharedPreferences של המארח. הגישה היא רק דרך שיטות Bridge PERMISSION_DENIED / {mini_program_id}:{key} / storage.set עם אכיפת מרחב שמות.
גם ה-localStorage של WebView מבודד: כל מיני-תוכנית רצה עם storage.get באמצעות storage.remove נפרד או חנות מתמשכת בשם. ב-Android, אנו משתמשים בתיקייה מותאמת עבור WKWebViewConfiguration ואוסרים גישה בין-מקורית.
סשן משתמש. המיני-תוכנית מקבלת אסימון גישה רק דרך Bridge WKWebsiteDataStore.nonPersistent(). האסימון מונפק על ידי המארח ל-15 דקות, מקושר ל-WebStorage, עם היקף מוגבל. המיני-תוכנית לעולם לא רואה את ה-JWT הראשי של המשתמש.
מנגנון עדכון מיני-תוכנית
עדכונים ללא בדיקת App Store. רצף:
- כאשר מיני-תוכנית מופעלת (או ברקע לפי לוח זמנים), המארח בודק את הגרסה העדכנית ביותר דרך
auth.getToken() - אם השרת מחזיר גרסה חדשה יותר, הורד את הארכיון ברקע
- אמת את חתימת הארכיון החדש
- בהפעלה הבאה של המיני-תוכנית, הפעל את החבילה החדשה
- שמור את הגרסה הקודמת כגיבוי (לצורך החזרה אם נדרש)
עדכון כפוי: אם mini_program_id של החבילה החדשה אינו תואם למארח הנוכחי, הצג מסך "עדכון אפליקציה זמין" במקום להפעיל את המיני-תוכנית. בדרך כלל, 80% מהמיני-תוכניות מתעדכנות תוך 24 שעות מהשחרור.
ניפוי באגים וכלי פיתוח לשותפים
מפתחי מיני-תוכניות זקוקים לערכת כלים נוחה. אנו מספקים:
- מצב סימולטור: שרת מקומי (
GET /mini-programs/{id}/version) כמקור המיני-תוכנית במקום CDN — המארח קורא קבצים ישירות ללא אימות חתימה (רק בבניית debug) - Bridge Inspector: רישום של כל קריאות ה-Bridge בקונסולת Xcode / Logcat של Android Studio
- Mock Bridge: ספריית JS (
minHostVersion) לבדיקה בדפדפן ללא המארח
מקרה בוחן
מערכת אקולוגית של שותפים לשוק: 8 שותפים, 23 מיני-תוכניות פעילות (12 WebView, 11 תוספי native ב-Android / בזמן קומפילציה ב-iOS). Bridge API: 55 שיטות. זמן הפעלה קרה ממוצע למיני-תוכנית (ראשונה בסשן) — 380 אלפיות השנייה ב-iPhone 14. הפעלה חמה (חזרה לאחר הפסקה) — 80 אלפיות השנייה. עדכוני רקע: 70% מהמשתמשים מקבלים גרסה חדשה של המיני-תוכנית ללא הפעלה מחדש של המארח. הלקוחות שלנו מדווחים על זמינות של 99.9% למיני-תוכניות.מה כלול
- ניתוח דרישות ועיצוב Bridge API
- יישום זמן ריצה של WebView ו-native
- אינטגרציה עם CDN, חתימת חבילות ומערכת עדכונים
- כלי פיתוח לשותפים: סימולטור, Inspector, Mock
- תיעוד מלא וגישה לקוד המקור
- הכשרת צוות שותפים (עד 5 ימים)
- תמיכה לאחר ההשקה עם מנהל פרויקט ייעודי
- אחריות אינטגרציה ל-30 יום
לוחות זמנים משוערים
| רכיב | משך |
|---|---|
| זמן ריצה של WebView + Bridge בסיסי (20 שיטות) | 8–12 שבועות |
| שוק + חתימה + עדכון | +4–6 שבועות |
| זמן ריצה של תוסף native (Android) | +4–8 שבועות |
| SDK לשותפים + כלי פיתוח | +4–6 שבועות |
העלות מחושבת באופן פרטני לאחר ניתוח דרישות Bridge API, מספר השותפים וצרכי האבטחה. עם למעלה מ-12 שנות ניסיון בפיתוח מובייל ולמעלה מ-20 פריסות של סופר-אפליקציות, הרקורד המוכח שלנו ופרקטיקות האבטחה המוסמכות מבטיחים אינטגרציה חלקה. צרו קשר להערכה מדויקת של הפרויקט שלכם. קבלו ייעוץ — נמצא את הארכיטקטורה האופטימלית.







