Връщане към нативното: Защо Shopify заменя React Native със Swift и Kotlin

Изображение: Svetni.me / ИИ генерирано изображение
В официална публикация в инженерния блог на компанията [1] ръководителят на мобилното инженерство в Shopify Мустафа Али обяви фундаментален обрат в технологичната стратегия на платформата: компанията се отказва от рамката React Native и започва пълномащабна миграция на всички свои мобилни приложения към чист нативен код на Swift за iOS и Kotlin за Android. Решението бележи края на шестгодишен цикъл, започнал през 2020 г., когато гигантът в електронната търговия заложи изцяло на междуплатформената разработка.
Причината за стратегическата промяна не се корени в технически дефицити на React Native, а в качествения скок при големите езикови модели (LLM) и автономните софтуерни агенти. Докато в миналото изграждането на отделни приложения за двете основни операционни системи изискваше удвояване на инженерния ресурс и непрекъснато синхронизиране на функционалности, съвременните модели за програмиране драматично свиха тези разходи. Автономните агенти вече пренасят логика между езиците, пишат съпътстващи тестове и валидират поведението в пъти по-бързо от човешки екипи, превръщайки директната нативна разработка в по-продуктивен и устойчив избор.

Изображение: Svetni.me / ИИ генерирана инфографика
Преосмисляне на първите принципи: От общ код към специализирани платформи
Когато Shopify премина към React Native през 2020 г., решението се базираше на три ясни аргумента: прекратяване на паралелното разработване на едни и същи функционалности два пъти, възможност за уеб разработчици без мобилен опит да допринасят към мобилните приложения и фокусиране на усилията върху стойността за потребителите вместо върху догонване на паритет между платформите [1]. Този залог се оказа изключително успешен за компанията. Въпреки че поддръжката изискваше значителни инвестиции в оптимизиране на графичната производителност, развиване на базови компоненти и следене на честите обновления на рамката, компромисът бе напълно оправдан от скоростта на доставка.
Още през януари 2025 г. ръководството на мобилния екип потвърждаваше ангажимента си към екосистемата на React Native. Инженерната философия на Shopify обаче изисква всяко решение да бъде преразгледано от първи принципи, когато базовите допускания зад него се променят. Компанията експериментира с езикови модели при създаването на софтуер още от 2021 г. Към края на 2025 г. възможностите на специализираните модели надхвърлиха простото ускоряване на писането на код и поставиха фундаменталния въпрос: дали разработката за две различни платформи все още означава двойно повече работа?
Прототипите на екипа показаха категоричен резултат:
- Софтуерните агенти успешно имплементират функционалности за Android на Kotlin, използвайки готовата iOS версия на Swift като функционална спецификация, и обратно.
- Инженери с експертиза само в едната екосистема успяват да работят продуктивно по целия стек с помощта на автономни асистенти.
- Поддържането на паритет между двете версии се постига с минимален човешки разход чрез споделени текстови спецификации, тестови сценарии и контролни точки за преглед.
Въпреки че нативният подход все още изисква две отделни кодови бази, агентите поемат такъв обем от имплементацията, превода, писането на тестове и проверките, че необходимостта от единен междуплатформен код отпада като решаващ фактор. В замяна Shopify получава директен достъп до най-новите възможности на Apple и Google, без да поддържа междинни абстракционни слоеве и зависимости [1].
Стратегия на зелено поле: Пренаписването на Shop App за 12 седмици
При планирането на прехода екипът разглежда два пътя: постепенна хибридна миграция на отделни екрани (brownfield) или цялостно пренаписване на приложенията от нулата на чист нативен код (greenfield). В миналото Shopify залагаше на постепенния подход, тъй като пренаписването на мащабни системи отнемаше години и налагаше замразяване на продуктовото развитие.
При новите реалности изграждането от нулата печели убедително. Съществуващият код на React Native служи като безупречна изпълнима референция за моделите, а чистият старт освобождава инженерите от натрупан технически дълг и архитектурни компромиси.
Първото доказателство за приложимостта на този модел е потребителското приложение Shop, което редовно оглавява класациите в категория пазаруване в магазините за приложения. С активното съдействие на софтуерни агенти екипът успява да премине от начален прототип до напълно пренаписано нативно приложение, одобрено и публикувано в App Store и Google Play, за рекордните 12 седмици. В момента тече миграцията и на основното търговско приложение Shopify, което съдържа над 300 отделни екрана, интеграции с Apple Watch, приспособления (widgets) за заключен екран и преки пътища за Siri. Очаква се то да дебютира в нативен вариант по-късно през годината [1].
Предотвратяване на некачествен код: Системата Helix
Един от основните капани при използването на изкуствен интелект в разработката е изкушението цяла кодова база да бъде преведена наведнъж с еднократна заявка (one-shot). Подобен подход неминуемо генерира огромен обем неструктуриран, труден за поддръжка код, който не може да бъде внедрен в реална експлоатация.
За да елиминира този риск, Shopify разработва специализираната вътрешна система Helix. Тя не очаква първоначалният генериран код да бъде съвършен, а организира стриктен итеративен цикъл, при който незадоволителен резултат не може да премине към следващия етап.
Работният процес се разделя на последователни контролни точки:
- Анализ на екрана: Разработчикът насочва Helix към конкретен екран от React Native приложението. Системата прочита кода и предлага поредица от малки, логически обособени работни отрязъци, чието преглеждане отнема минути.
- Етапно изграждане: Всяка отделна контролна точка се генерира самостоятелно и трябва да премине през четири задължителни бариери:
- Да докаже коректността си чрез успешни автоматизирани модулни и интеграционни тестове;
- Да постигне пълно визуално съответствие с работещото оригинално приложение;
- Да издържи критичен преглед от два състезателни (adversarial) софтуерни агента за ревю на код;
- Да получи финално одобрение от инженер преди комитване във версията.
- Адаптивна памет: Системата съхранява обратната връзка от всеки човешки преглед, благодарение на което степента на автономност нараства с напредването на проекта [1].
Безглава архитектура и конзолен контрол за светкавична обратна връзка
Критично тясно място при работата на софтуерните агенти в мобилната разработка се оказва взаимодействието със симулаторите. Традиционното управление на емулатори чрез обхождане на дървото за достъпност (accessibility tree) или анализ на екранни снимки е бавно и податливо на сривове. Докато агентът прави промени в кода за секунди, стартирането на симулатора и валидирането на интерфейса отнема минути, обезсмисляйки високата скорост на езиковия модел.
Shopify решава този проблем чрез препроектиране на самата архитектура на приложенията, съобразявайки я едновременно с нуждите на хората и софтуерните агенти. Основният архитектурен принцип е пълното отделяне на бизнес логиката от потребителския интерфейс, което позволява тя да се изпълнява самостоятелно в безглав (headless) режим директно на работната станция.
Цялата логика се управлява чрез специализиран конзолен интерфейс (CLI):
- Агентите могат да инспектират състоянието на приложението, да навигират между разделите и да изпълняват действия без да докосват графичния интерфейс.
- Времето за една итерация и проверка на хипотези се съкращава от минути до броени милисекунди, осигурявайки непрекъсната автономна работа на агентите в продължение на часове.
- Когато се налага визуално тестване, конзолният инструмент се свързва дистанционно със симулатора и подава команди към интерфейса директно, заобикаляйки тежките дървета за достъпност за максимално бързи цялостни (E2E) тестове [1].
Преходен план за проектите с отворен код
През годините Shopify беше сред най-активните дарители на код в екосистемата на React Native, създавайки ключови библиотеки за общността. За да гарантира плавен преход без сътресения за разработчиците, компанията обяви конкретни планове за поддръжка:
- React Native Skia: Shopify ще продължи финансовото спонсорство на библиотеката до края на 2026 г. Нейният създател Уилям Кандилон ще продължи развитието ѝ независимо, като през следващите месеци ще създаде форк под ново наименование, след което оригиналното хранилище ще бъде архивирано.
- FlashList: Библиотеката с отворен код се радва на около 2 милиона изтегляния седмично и се утвърди като стандарт за високопроизводителни списъци в React Native. Shopify ще продължи да отстранява критични проблеми със съвместимостта и води преговори с външни технологични компании за дългосрочното поемане на проекта.
- Restyle: Поради по-малката потребителска база библиотеката ще се поддържа до края на 2026 г., след което ще бъде официално архивирана или преотстъпена на доброволци от общността.
Инженерният екип изрази специална благодарност към Meta за отличното управление на платформата, както и към екипа на Software Mansion за дългогодишното партньорство по анимационния двигател Reanimated [1].
Новите хоризонти пред мобилното инженерство
Връщането към Swift и Kotlin не означава занижаване на летвата за качество. Всяко пренаписано приложение трябва да запази или надмине съществуващите стандарти за бързодействие, достъпност и стабилност. За Shopify крайната цел не е просто смяната на езика, а трайното увеличаване на скоростта на продуктова доставка за търговците и купувачите.
Успехът на инициативата ще се измерва чрез продуктовата динамика, стабилността на крайните продукти и процента работа, който агентите извършват без човешка намеса. Компанията планира да публикува задълбочени технически анализи за архитектурата на Helix и конзолните среди за агенти, като същевременно отваря нови позиции за мобилни инженери и специалисти по изкуствен интелект.
Източници:
[1]: Native is now the future of mobile at Shopify - Shopify Engineering