Налаштування CodePush для React Native: швидка доставка оновлень

Швидка доставка оновлень React Native: Hot Code Push (CodePush) Уявіть: ви знайшли критичний баг у продакшні — розрахунок знижки округлює не туди. Виправлення готове, але щоб потрапити до користувачів, потрібно пройти рев'ю App Store, яке триває від 24 годин до тижня. Кожна година простою — втрач

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Налаштування CodePush для React Native: швидка доставка оновлень
Середній
~2-3 дні

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

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

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    894
  • 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
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Швидка доставка оновлень React Native: Hot Code Push (CodePush)

Уявіть: ви знайшли критичний баг у продакшні — розрахунок знижки округлює не туди. Виправлення готове, але щоб потрапити до користувачів, потрібно пройти рев'ю App Store, яке триває від 24 годин до тижня. Кожна година простою — втрачені гроші та нерви. CodePush вирішує проблему: JavaScript-бандл та ресурси оновлюються напряму, минаючи магазини. Ми впроваджуємо CodePush у React Native-додатки, гарантуючи коректне налаштування, безпечний rollout та rollback на випадок помилок.

Як CodePush оминає рев'ю магазинів?

React Native додаток складається з нативного хоста (Objective-C/Swift / Java/Kotlin) та JS-бандла. CodePush замінює JS-бандл та ресурси (images/, fonts/) без зміни нативного коду. Apple та Google дозволяють такі оновлення — за умови, що оновлення не змінює поведінку додатка принципово (не можна через JS додати нові native permissions або змінити модель розповсюдження). Наш досвід показує, що правильне налаштування CodePush економить командам тижні часу на доставці фіксів.

Чому варто обрати CodePush замість звичайного оновлення?

Порівняйте: стандартне оновлення через App Store займає 1–3 дні, а CodePush доставляє патч за хвилини. Різниця в десятки разів — CodePush у 100 разів швидше. Крім того, CodePush дозволяє тестувати оновлення на невеликій групі користувачів перед повним rollout. Це знижує ризик регресій.

Критерій App Store / Google Play CodePush
Час доставки 1–3 дні 2–5 хвилин
Проходження рев'ю Обов'язково Не потрібно (для JS)
Rollback Ні (тільки новий реліз) Автоматичний при краші
Контроль аудиторії 100% Поступовий (10% → 50% → 100%)

Як ми налаштовуємо CodePush: реальний кейс

Встановлення та інтеграція типового проекту:

npm install react-native-code-push npx pod-install # iOS 

У AppDelegate.mm (iOS):

#import <CodePush/CodePush.h> - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge { #if DEBUG return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; #else return [CodePush bundleURL]; #endif } 

У головному компоненті:

import CodePush from 'react-native-code-push'; const App = () => { // ... компонент }; const codePushOptions = { checkFrequency: CodePush.CheckFrequency.ON_APP_RESUME, installMode: CodePush.InstallMode.ON_NEXT_RESUME, mandatoryInstallMode: CodePush.InstallMode.IMMEDIATE, }; export default CodePush(codePushOptions)(App); 

InstallMode.ON_NEXT_RESUME — оновлення застосовується при наступному виході з фону, не перериваючи користувача. IMMEDIATE — тільки для критичних обов'язкових оновлень.

Деплой через Fastlane

lane :codepush_staging do sh("appcenter codepush release-react \ -a MyOrg/MyApp-iOS \ -d Staging \ --description '#{ENV["CHANGELOG"]}' \ --target-binary-version '~1.2'") sh("appcenter codepush release-react \ -a MyOrg/MyApp-Android \ -d Staging \ --description '#{ENV["CHANGELOG"]}' \ --target-binary-version '~1.2'") end 

--target-binary-version '~1.2' — семвер-вираз. Оновлення отримають лише користувачі з нативною версією 1.2.x. Якщо новий JS-бандл використовує нативний модуль з 1.3, пушити на 1.2 не можна.

Стратегія rollout: як уникнути проблем

Не викатуйте CodePush одразу на 100% аудиторії. AppCenter підтримує --rollout:

appcenter codepush release-react \ -a MyOrg/MyApp-iOS \ -d Production \ --rollout 10 

10% користувачів отримують оновлення. Через 30 хвилин дивимося Firebase Crashlytics — якщо crash rate не зріс, розширюємо через AppCenter UI до 50% → 100%.

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

Налаштування CodePush включає:

Що робимо Результат
Аналіз архітектури та підготовка dev-оточення Звіт про сумісність, план впровадження
Інтеграція SDK та налаштування AppCenter Робочий білд з CodePush у Staging
Автоматизація через Fastlane та CI Скрипти релізу, pipeline у GitLab CI / GitHub Actions
Налаштування моніторингу та алертів Дашборд AppCenter, інтеграція з Crashlytics
Документування та навчання команди Інструкція з випуску оновлень, чек-лист rollout

Етапи роботи

  1. Аналітика (2–4 години): аудит поточної архітектури, перевірка сумісності з CodePush, визначення target binary версій.
  2. Проєктування (2–4 години): вибір схеми перевірки оновлень, план rollout та fallback.
  3. Інтеграція (4–8 годин): встановлення SDK, конфігурація AppCenter, правка коду для підтримки CodePush.
  4. Автоматизація (4–8 годин): Fastlane-скрипти, CI-пайплайн.
  5. Тестування (2–4 години): rollout на Staging, моніторинг крашів, тестування rollback.
  6. Запуск (1–2 години): rollout на Production з поступовим розширенням.

Обмеження та що не працює

CodePush не може оновити:

  • Нативний код (Swift/ObjC/Kotlin/Java)
  • Нативні залежності (додавання нового pod або aar)
  • AndroidManifest.xml та Info.plist
  • Splash screen та іконку додатку

Якщо PR зачіпає нативну частину — потрібен стандартний реліз через магазин. CodePush від Microsoft AppCenter оголошений deprecated на користь EAS Update (Expo). Для проектів не на Expo ми розглядаємо міграцію на власний сервер code-push-server, щоб зберегти незалежність від AppCenter.

Моніторинг оновлень

AppCenter Deployments показує статистику: скільки пристроїв отримали оновлення, скільки відкотилися. Автоматичний rollback спрацьовує при краші одразу після оновлення — CodePush повертає попередній бандл.

Згідно з документацією AppCenter, CodePush використовує прогресивний rollout для мінімізації ризиків.

Додатково: що таке CodePush насправді CodePush — це хмарний сервіс, який дозволяє розробникам розгортати оновлення мобільних додатків безпосередньо на пристрої користувачів. Він працює з React Native та Cordova, замінюючи лише веб-ресурси (JS, HTML, CSS, зображення).

Досвід та гарантії

У нас 6 років досвіду в розробці React Native. Ми впровадили CodePush для десятків проектів: фінтех, маркетплейси, соціальні мережі. Гарантуємо стабільність оновлень, швидкий відкат та повну документацію процесу. Зв'яжіться з нами для безкоштовної консультації — оцінимо ваш проект і запропонуємо оптимальну стратегію впровадження CodePush. Замовте налаштування під ключ і забудьте про довгі очікування рев'ю.