Shopify відмовляється від React Native заради Swift та Kotlin

Shopify відмовляється від React Native заради Swift та Kotlin 3

Shopify оголосила про стратегічний розворот: компанія переходить від React Native назад до нативних Swift і Kotlin. Причина — кодогенеруючі агенти кардинально змінили економіку розробки застосунків «двічі», окремо для iOS та Android. Про це йдеться в блозі Shopify Engineering.

Shopify відмовляється від React Native заради Swift та Kotlin 4

Від нативу до React Native і назад

У 2020 році Shopify зробила ставку на React Native, щоб не дублювати розробку фіч для двох платформ, залучити до мобільних застосунків розробників без відповідного бекграунду й менше часу витрачати на паритет функцій між iOS та Android. Ставка виявилася успішною — ще в січні 2025 року компанія писала про плани й надалі інвестувати у фреймворк.

Однак відтоді кодогенеруючі моделі суттєво покращилися, і побудова однієї фічі окремо на Swift і Kotlin більше не коштує стільки, скільки раніше. У Shopify наголошують: рішення не тримається за вибір лише тому, що він був успішним у минулому — щойно базове припущення змінюється, стратегію варто переглянути з нуля.

Чому саме зараз

Shopify застосовує LLM у розробці з 2021 року — ще до появи ChatGPT. Спершу моделі допомагали писати код і шукати баги, але з часом складність довірених їм задач зросла настільки, що наприкінці 2025-го вони почали ставити під сумнів саму тезу, що розробка «двічі» означає подвійний обсяг роботи.

Прототипування показало: агенти здатні реалізовувати фічу на Android, використовуючи iOS-версію як референс, і навпаки; допомагати розробникам продуктивно працювати поза межами свого основного стеку; суттєво знижувати витрати на підтримку паритету між платформами завдяки спільним специфікаціям, тестам і контрольним точкам рев’ю.

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

Доля відкритих бібліотек Shopify

  • React Native Skia — компанія спонсоруватиме проєкт до кінця 2026 року, після чого творець Вільям Кандільйон продовжить розвивати бібліотеку самостійно під новою назвою.
  • FlashList (~2 млн завантажень/тиждень) — Shopify продовжуватиме виправляти критичні проблеми сумісності й веде перемовини щодо довгострокового супроводу проєкту іншими компаніями.
  • Restyle — має найменшу аудиторію, тож репозиторій архівують: підтримка триватиме до кінця 2026 року, далі проєкт зможе форкнути будь-хто охочий.

Greenfield замість поступової міграції

На відміну від переходу 2020 року, коли для найбільших застосунків обрали поступову міграцію, цього разу Shopify вибрала повну перебудову з нуля. LLM добре реалізують функції на Swift і Kotlin, використовуючи React Native-версію як референс, а такий підхід дає чисте поле без обмежень минулого — прототипи показали суттєво вищу швидкість перебудови порівняно з періодом до появи кодогенеруючих агентів.

Першим повністю мігрував застосунок Shop, який регулярно очолює категорію шопінгу в App Store: за допомогою ШІ команда пройшла шлях від proof-of-concept до нативного релізу за 12 тижнів. Триває міграція основного застосунку Shopify — найбільшого в портфелі, з понад 300 екранами, віджетами, застосунком для Apple Watch і підтримкою Siri Shortcuts; реліз запланований пізніше цього року. Решта застосунків мігрують згодом.

Helix: система проти «сирого» коду від ШІ

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

Для цього команда побудувала систему Helix, яка діє поступово: недосконала спроба не може просунутися далі, поки не стане якісним результатом. Розробник вказує Helix на конкретний екран, система аналізує код React Native й пропонує послідовність контрольних точок — невеликих фрагментів роботи, які перевіряються за кілька хвилин. Кожна точка має підтвердити поведінку тестами, збігтися з застосунком під час візуального рев’ю, пройти перевірку двох «змагальних» ШІ-рев’юерів і отримати підтвердження людини перед комітом. Зауваження з кожного рев’ю запам’ятовуються, тож цикл стає дедалі автономнішим.

Швидкий зворотний зв’язок без симуляторів

Керування симуляторами стало вузьким місцем: агенти не могли надійно збирати, тестувати й ітерувати без постійного нагляду людей, значною мірою через залежність від дерева доступності чи скриншотів для визначення стану застосунку. Агент вносить зміни в код за секунди, але перевірка результату займала кілька хвилин, критично уповільнюючи ітерацію.

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

Що далі

Shopify планує перевести всі мобільні застосунки на Swift і Kotlin, використовуючи ШІ на кожному етапі. Застосунок Shop уже повністю нативний, Shopify — у процесі, решта підуть слідом. У компанії підкреслюють: темп пришвидшується без зниження планки якості — кожна перебудована функція має відповідати нинішнім очікуванням щодо продуктивності, стабільності й доступності. Це не просто переписаний іншою мовою код, а перебудова, що дозволяє і людям, і агентам швидко розуміти, тестувати й змінювати застосунки.

No votes yet.
Please wait...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *