Мобільні застосунки

React Native чи нативна розробка: що обрати у 2026 році

React Native чи нативна розробка — зазвичай перше технічне рішення в мобільному проєкті, і його легко ухвалити з хибних причин: через статтю 2018 року, улюблену мову розробника чи страх, що «кросплатформне» означає «повільне». У 2026 році чесна відповідь для більшості бізнес-застосунків — React Native з Expo. А випадків, коли варто двічі платити за нативну розробку під iOS та Android, небагато, і їх легко назвати. Розбираємо обидва варіанти, щоб ви побачили, до якого належить ваш застосунок.

9 хв читанняКоманда EVA-X

Зміст
  1. Що насправді означає кожен варіант
  2. Коротка відповідь
  3. Порівняння
  4. Де виграє React Native
  5. Де виграє нативна розробка
  6. Три міфи, від яких варто відмовитися
  7. Середній шлях: React Native з нативними частинами
  8. Кілька слів про Flutter та інших
  9. Приклад: LUMEN
  10. Як вирішити для свого застосунку
  11. Ризики, про які варто знати заздалегідь
  12. Що це означає для ціни й термінів
  13. Запитання й відповіді

Що насправді означає кожен варіант

Нативна розробка — це два застосунки: для iOS, зазвичай на Swift і SwiftUI, і для Android, зазвичай на Kotlin і Jetpack Compose. Дві кодові бази, часто дві команди, і в кожної прямий доступ до всього, що дає її платформа.

React Native — це одна кодова база на TypeScript, яка на обох платформах показує справжні нативні елементи інтерфейсу. Це не сайт в обгортці: кнопки, списки й навігація — власні, платформені. Починаючи з React Native 0.76 нова архітектура (New Architecture) увімкнена за замовчуванням: вона замінила старий асинхронний «міст» між JavaScript і нативним кодом, який і був головним вузьким місцем.

Expo — фреймворк, який для нових застосунків рекомендує сама документація React Native. Він бере на себе збірки в хмарі, публікацію в App Store і Google Play, оновлення «по повітрю» і має великий набір готових нативних модулів: камера, сповіщення, геолокація, файли тощо. Якщо потрібного модуля немає, його пишуть на Swift і Kotlin просто в тому самому проєкті.

Тож вибір насправді не між «нативним» і «несправжнім». Він між однією кодовою базою з нативними модулями там, де треба, і двома повністю нативними.

Коротка відповідь

Для більшості бізнес-застосунків — React Native з Expo. Це акаунти й профілі, каталоги, бронювання, оплати, чати, push-сповіщення, особисті кабінети, форми, що працюють без зв’язку, і мобільні застосунки до вебплатформ.

Нативна розробка виправдана тоді, коли застосунок і є пристроєм: складна графіка, глибока робота із залізом, обробка медіа в реальному часі або функції, яким потрібна нова можливість iOS чи Android у день її виходу.

Порівняння

React Native + ExpoНативно (Swift + Kotlin)
Кодові базиОдна для iOS та AndroidДві
КомандаОдна, часто спільна з вебомЗазвичай окремі iOS- та Android-розробники
Перший запускШвидше: більшість функцій пишуть один разДовше: більшість функцій пишуть двічі
Швидкодія інтерфейсуНативні компоненти, плавно для бізнес-застосунківМаксимальна, особливо для графіки
Доступ до пристроюЧерез модулі Expo або власні нативні модуліПовний і прямий
Нові можливості ОСКоли їх підтримує модуль або ваш нативний кодЗ першого дня
Дрібні виправлення після запускуОновлення «по повітрю» для змін у JavaScriptКожна зміна проходить модерацію
Підтримка рокамиОдна кодова база плюс оновлення фреймворкуДві бази, які треба тримати синхронно

Де виграє React Native

Одна функція — один раз. Бронювання, оплату чи форму профілю проєктують, пишуть і тестують один раз для обох платформ. Дизайн, бекенд і публікація все одно потрібні для обох, тож це не половина ціни двох нативних застосунків. Але різниця відчутна, і з кожним наступним оновленням вона більшає.

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

Швидкі виправлення. Оновлення «по повітрю» дають змогу випустити виправлення в JavaScript і ресурсах без модерації — у межах правил App Store і Google Play. Неправильний підпис, зламана перевірка поля, з’їхала верстка на одному розмірі екрана — усе це виправляється так. Те, що зачіпає нативний код, однаково проходить модерацію.

Спільна мова з вебом. Якщо ваша вебплатформа й адмінка написані на TypeScript, одна команда може працювати і над застосунком, і над бекендом, і над адмінкою, використовуючи ті самі типи й правила перевірки даних. А оскільки застосунок і вебплатформа працюють з одним бекендом, замовлення, створене з телефона, — це той самий запис, який менеджер бачить у браузері.

Де виграє нативна розробка

Платіть за нативну розробку, коли щось із цього — серце продукту, а не другорядна функція:

  • складна графіка, 3D, AR чи ігри, де важить кожен кадр;
  • глибока робота із залізом: тривалі Bluetooth LE-сесії з пристроями, точна геолокація у фоні, датчики з високою частотою;
  • обробка аудіо чи відео в реальному часі просто на пристрої;
  • нові можливості платформи з першого дня, якщо цінність продукту в тому, щоб підхоплювати кожну новинку iOS чи Android того ж тижня;
  • сильна нативна команда, яка у вас уже є, і немає вебкоманди, з якою можна ділити код.

Якщо цей список описує один екран вашого застосунку, а не весь застосунок, дві нативні кодові бази вам, найімовірніше, не потрібні. Потрібен нативний модуль.

Три міфи, від яких варто відмовитися

«Кросплатформний застосунок схожий на сайт». Так було із застосунками, які є вебсторінкою в обгортці. React Native використовує власні компоненти платформи, тож прокручування, жести й системні діалоги поводяться так, як звикли користувачі на кожній платформі.

«До заліза не дістатися». Дістатися можна — через модулі Expo або власний нативний код. Справжнє запитання інше: якій частині застосунку потрібен такий доступ і чи варто через неї утримувати другу кодову базу.

«Нативний застосунок проживе довше». Старіють обидва. Нативні API застарівають, дизайн платформ змінюється, і оновлювати доводиться дві кодові бази замість однієї. Здоров’я застосунку тримається на регулярній підтримці, хоч би на чому його написали.

Середній шлях: React Native з нативними частинами

Більшість наших застосунків написані на React Native з Expo. Коли функції потрібен нативний код — фонова геолокація, Bluetooth, важкі медіа, — ми додаємо нативні модулі саме для цієї частини, а решта лишається в спільній кодовій базі.

Те саме з речами, що живуть поза головним екраном. Віджети на домашньому екрані, Live Activities на iOS і застосунки для годинника пишуть нативними інструментами кожної платформи, і вони можуть бути окремими нативними частинами всередині проєкту на React Native. Нативну ціну ви платите лише за ту частину, якій вона справді потрібна.

Кілька слів про Flutter та інших

React Native — не єдиний кросплатформний варіант. Flutter, який сам відмальовує інтерфейс і використовує мову Dart, теж зрілий вибір, а Kotlin Multiplatform дає змогу ділити бізнес-логіку, залишаючи інтерфейс нативним. Усі три варіанти розумні. Вирішують зазвичай команда, яка у вас є, і технології навколо застосунку. Команді, що вже пише вебчастину на TypeScript, React Native дасть більше. Команда з досвідом Kotlin може придивитися до Kotlin Multiplatform.

Є й варіант зовсім без застосунку. Якщо вашим користувачам не потрібні App Store і Google Play, глибокий доступ до пристрою чи надійна робота у фоні, може вистачити прогресивного вебзастосунку, який встановлюють із браузера. Ці два шляхи ми порівнюємо в статті PWA чи мобільний застосунок.

Приклад: LUMEN

LUMEN — платформа, що дає змогу інвестувати в частку реального активу: нерухомості, землі чи бізнесу. Кожна частка має NFT-сертифікат власності в блокчейні, щомісячні виплати доходу й можливість перепродажу на внутрішньому OTC-ринку.

Інвестори працюють у мобільному кабінеті з портфелем, доходами й гаманцем, і цей застосунок інвестора зроблено на Expo. Команда керує активами, пулами, KYC, виплатами й ризиками на вебплатформі із сотнею екранів. Такий поділ типовий: застосунок лишається зосередженим, а важка логіка — пули, виплати, розрахунки — працює на бекенді під контролем системи ризиків. Фінансовий продукт із гаманцем і KYC працює на одній кодовій базі Expo для iOS та Android, бо найскладніше живе на сервері.

Як вирішити для свого застосунку

Дайте відповіді, суворо розрізняючи «серце продукту» і «було б добре»:

  1. Що людина робить у застосунку найчастіше? Якщо це форми, списки, оплати й сповіщення — React Native.
  2. Чи залежить головний сценарій від заліза або графіки? Якщо так — дивіться на нативну розробку або принаймні на нативні модулі для цієї частини.
  3. Чи є у вас вебплатформа? Якщо вона на TypeScript, React Native дасть змогу одній команді вести обидві.
  4. Як часто ви випускатимете зміни? Часті дрібні зміни — аргумент на користь однієї кодової бази й оновлень «по повітрю».
  5. Хто підтримуватиме застосунок через два роки? Одній кодовій базі потрібен один набір навичок. Двом — два, і обидві треба тримати синхронно.

Ризики, про які варто знати заздалегідь

React Native:

  • оновлення фреймворку й Expo SDK потребують регулярної уваги: застосунок, який два роки ніхто не чіпав, оновлювати важче;
  • сторонні бібліотеки іноді запізнюються з підтримкою нових версій ОС, тож нативних залежностей має бути мало, і лише доглянуті;
  • налагодження іноді проходить крізь кілька шарів, від JavaScript до нативного коду, і для цього потрібна людина, яка знає обидва.

Нативна розробка:

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

Жоден із цих ризиків не причина відмовитися від того чи іншого варіанта. Це привід запитати підрядника, як він із ними працює.

Що це означає для ціни й термінів

Одна кодова база зазвичай помітно дешевша за два нативні застосунки і швидше потрапляє в App Store і Google Play, бо більшість функцій пишуть один раз. Наскільки дешевша, залежить від того, яка частина застосунку — спільні екрани й логіка, а яка однаково потребує нативної роботи. Орієнтири щодо цифр — у статтях скільки коштує розробка мобільного застосунку і скільки часу триває розробка застосунку. Про інструменти докладніше — у матеріалі про Expo для бізнес-застосунків.

Підхід ми радимо на перевірці командою, коли прочитаємо ваш опис: за замовчуванням React Native з Expo, нативні модулі там, де функції без них не обійтися, і повністю нативна розробка, лише якщо цього вимагає сама суть застосунку. Щоб побачити модулі, терміни й фіксовану ціну для свого застосунку, опишіть його в оцінці або почитайте про нашу розробку мобільних застосунків.

Запитання й відповіді

Застосунок на React Native повільніший за нативний?

Для типових бізнес-застосунків користувач різниці не помітить. React Native використовує власні компоненти платформи, а нова архітектура замінила старий асинхронний «міст» між JavaScript і нативним кодом. Різниця проявляється у складній графіці, іграх, AR та обробці медіа в реальному часі — саме там нативна розробка виправдовує свою вищу ціну.

Чи може застосунок на React Native працювати з камерою, GPS, Bluetooth і push-сповіщеннями?

Так. В Expo є готові модулі для камери, геолокації, сповіщень, файлів і багато чого іншого. Якщо чогось бракує, наприклад, роботи з конкретним Bluetooth-пристроєм чи точної фонової геолокації, інженери пишуть нативний модуль на Swift і Kotlin у тому самому проєкті, а решта застосунку лишається в спільній кодовій базі.

Чи можуть Apple або Google відхилити додаток через те, що він на React Native?

Ні. В App Store і Google Play багато застосунків на React Native, і модерація дивиться на те, що застосунок робить, а не на фреймворк. Відмови бувають із звичних причин: бракує даних про конфіденційність, рецензент не може увійти, незрозумілі оплати, застосунок падає. Оновлення «по повітрю» теж мусять залишатися в межах правил магазинів застосунків і не змінювати того, чим є застосунок.

Чи можна почати з React Native, а потім перейти на нативну розробку?

Так, і не обов’язково все одразу. Екран чи функцію, якій потрібна нативна швидкодія, можна переписати як нативний модуль, а решта лишиться на React Native. Бекенд, дані й сторінки в App Store і Google Play не змінюються, тож користувачі зберігають свої акаунти, історію замовлень і налаштування.

Expo чи «чистий» React Native?

Для більшості нових застосунків — Expo. Його рекомендує документація React Native, і він додає збірки в хмарі, публікацію в магазинах застосунків, оновлення «по повітрю» та багато готових нативних модулів. Обмежень, як колись, уже немає: власний нативний код можна додати в той самий проєкт, коли він потрібен функції.

// Ми це робимо

Розробка мобільних застосунків

Застосунки для iOS та Android на React Native і Expo — разом із бекендом і адмінкою за ними.

Про послугу →

Опишіть продукт. Отримайте фіксовану ціну.

Достатньо тексту, посилання чи файлу. Оцінка займає близько 15 секунд і нічого не коштує, а команда перевіряє її ще до договору.

Отримати ціну