Super App: архітектура вбудованих модулів та партнерських сервісів

Уявіть: маркетплейс із 50 партнерами, кожен хоче розмістити свій екран миттєво, без релізів в App Store. Керування цими модулями без шкоди безпеці та продуктивності — це виклик. Відповідь — система міні-програм. Ми розробляємо та впроваджуємо таку систему для Super App, забезпечуючи ізольоване викон

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Super App: архітектура вбудованих модулів та партнерських сервісів
Складний
від 2 тижнів до 3 місяців

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Уявіть: маркетплейс із 50 партнерами, кожен хоче розмістити свій екран миттєво, без релізів в App Store. Керування цими модулями без шкоди безпеці та продуктивності — це виклик. Відповідь — система міні-програм. Ми розробляємо та впроваджуємо таку систему для Super App, забезпечуючи ізольоване виконання, безпечний доступ до нативних API та оновлення без релізу в App Store. Це не просто WebView-обгортка: ми будуємо повноцінну інфраструктуру, яка дозволяє партнерам створювати свої модулі, а хост-застосунку — контролювати кожен аспект їхньої роботи. Наша компанія має 8+ років досвіду в мобільній розробці та реалізувала понад 20 Super App проєктів, включаючи екосистеми для банків і маркетплейсів. Заміна моноліту на модульну архітектуру скорочує час виведення партнерського сервісу на 70%, а зниження вартості володіння сягає 30% за рахунок відсутності App Store рев'ю. Ми гарантуємо безпеку завдяки суворій системі дозволів та ізоляції. Оцінимо ваш проєкт за 2 дні — зв'яжіться для консультації. Орієнтовна вартість проєкту — від $40,000 залежно від складності.

Архітектура екосистеми вбудованих модулів

Два кардинально різних підходи до runtime.

WebView-based. Міні-програма — це веб-застосунок (React, Vue, або кастомний DSL як у WeChat WXML/WXSS). Запускається в ізольованому WKWebView (iOS) або WebView (Android). Стандартні веб-технології, низький поріг входу для партнерів, крос-платформеність коду міні-програми. Обмеження: продуктивність нижча за нативну, немає доступу до складних нативних API без Bridge.

Native plugin-based. Міні-програма — скомпільований нативний код (Android: DEX через DexClassLoader; iOS: compile-time Swift Package). Нативна продуктивність, повний доступ до API через контрольовані інтерфейси. Обмеження: App Store забороняє завантаження виконуваного коду на iOS, тому на iOS нативні плагіни мають бути включені в бінарник при збірці.

На практиці використовуємо гібрид: базові партнерські сервіси — WebView, власні критичні міні-програми — нативні плагіни. Нативний runtime кращий за WebView в 2–3 рази за швидкістю на складних UI-сценаріях. Порівняння підходів:

Характеристика WebView-based Native plugin-based
Холодний старт 500–800 мс 100–200 мс
Доступ до API Тільки через Bridge Повний нативний
Оновлення Без релізу Без релізу (Android), з релізом (iOS)
Продуктивність UI Середня Висока

WebView-based міні-програми простіші в розробці, але нативні плагіни в 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 з публічним ключем партнера), перевіряє сумісність minHostVersion, перевіряє permissions проти списку дозволених для даного партнера, розпаковує в ізольовану директорію. Запуск — тільки після успішної верифікації.

Як працює 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 }); 

На стороні хоста (нативний код) Bridge:

  1. Отримує виклик через WKScriptMessageHandler.userContentController(_:didReceive:) (iOS) або @JavascriptInterface метод (Android)
  2. Парсить method та params
  3. Перевіряє: чи є у цієї міні-програми дозвіл викликати payment.pay
  4. Якщо так — виконує нативний код (показує Payment UI, обробляє транзакцію)
  5. Повертає результат через webView.evaluateJavaScript("MiniAppBridge._resolve(requestId, result)")

Кожен метод Bridge має явний список дозволів. Виклик методу без потрібного дозволу -> синхронна помилка PERMISSION_DENIED. Дозволи видаються при реєстрації партнера, зберігаються на сервері, кешуються в хості.

Детальніше про компоненти BridgeBridge API складається з модулів: payment, auth, storage, geolocation, ui. Кожен модуль має власний набір дозволів. Наприклад, модуль payment вимагає дозволу payment, а модуль geolocation — geolocation. Документація доступна в Partner SDK.

Чому ізольоване сховище критичне?

Кожна міні-програма отримує namespace в локальному сховищі: ключі виду {mini_program_id}:{key}. Прямого доступу до SQLite або SharedPreferences хоста — немає. Доступ тільки через Bridge методи storage.set / storage.get / storage.remove з примусовим namespace.

WebView localStorage теж ізольований: кожна міні-програма запускається з WKWebViewConfiguration з окремим WKWebsiteDataStore.nonPersistent() або іменованим persistent store. На Android — WebStorage з кастомним директорієм та забороною перетину origin.

Сесія користувача. Міні-програма отримує access token тільки через Bridge auth.getToken(). Токен видається хостом на 15 хвилин, прив'язаний до mini_program_id, scope обмежений. Міні-програма не бачить master JWT користувача.

Як оновлюються міні-програми?

Оновлення — без рев'ю в App Store. Послідовність:

  1. При запуску міні-програми (або у фоні за розкладом) хост перевіряє актуальну версію через GET /mini-programs/{id}/version
  2. Якщо сервер повертає новішу версію — завантажуємо архів у фоні
  3. Верифікуємо підпис нового архіву
  4. При наступному запуску міні-програми — активуємо новий пакет
  5. Попередня версія — в backup (для rollback при необхідності)

Примусове оновлення: якщо minHostVersion нового пакета несумісна з поточним хостом — показуємо екран Доступне оновлення застосунку замість запуску міні-програми.

Налагодження та DevTools для партнерів

Розробнику міні-програми потрібен зручний інструментарій. Надаємо:

  • Simulator mode: локальний сервер (localhost:8080) як джерело міні-програми замість CDN — хост читає файли напряму без верифікації підпису (тільки в debug build)
  • Bridge Inspector: логування всіх Bridge-викликів у debug консоль Xcode / Android Studio Logcat
  • Mock Bridge: JS-бібліотека (mini-program-bridge-mock) для тестування в браузері без хоста

Кейс. Партнерська екосистема маркетплейсу: 8 партнерів, 23 активних міні-програми (12 WebView, 11 нативних плагінів на Android / compile-time на iOS). Bridge API: 55 методів. Середній час холодного запуску міні-програми (перший за сесію) — 380 мс на iPhone 14. Теплий запуск (повернення після паузи) — 80 мс. Оновлення у фоні: 70% користувачів отримують нову версію міні-програми без перезапуску хоста. Впровадження системи дозволило збільшити конверсію на 15% та знизити вартість інтеграції на 40%.

Що входить у роботу

  • Аналіз вимог та проектування Bridge API
  • Реалізація WebView- та нативного runtime
  • Інтеграція з CDN, підпис пакетів та система оновлень
  • DevTools для партнерів: Simulator, Inspector, Mock
  • Документація та навчання команди партнера
  • Підтримка після запуску

Орієнтовні терміни

Компонент Терміни
WebView runtime + базовий Bridge (20 методів) 8–12 тижнів
Маркетплейс + підпис + оновлення +4–6 тижнів
Нативний plugin runtime (Android) +4–8 тижнів
Partner SDK + DevTools +4–6 тижнів

Вартість розраховується індивідуально після аналізу вимог до Bridge API, кількості партнерів та вимог безпеки. Зв'яжіться для точної оцінки вашого проєкту. Отримайте консультацію — ми підберемо оптимальну архітектуру.

Super app