Как подготовить монолит к разделению на сервисы
Инженерный материал о границах доменов, зависимостях и поэтапном разделении монолита.
Прошло два года с момента полного перехода Meta на New Architecture. Пора честно оценить, что стабилизировалось, что всё ещё болит, и стоит ли смотреть на Flutter как альтернативу.
JSI (JavaScript Interface) заменил асинхронный Bridge на синхронный интерфейс между JS и нативным слоем. Главный эффект – жесты и анимации перестали "лагать" при нагрузке на JS-поток.
Bridgeless mode (без Legacy Bridge) доступен с RN 0.73. На новых проектах включаем по умолчанию. На старых – миграция требует аудита всех нативных модулей: не все сторонние библиотеки поддерживают New Arch.
Expo Router v3 – де-факто стандарт для новых проектов. File-based routing как в Next.js: app/(tabs)/home.tsx – это и есть роут. Deep linking работает из коробки. Universal links на iOS – тоже.
router.push('/profile') с автодополнениемWorklets на UI-потоке, без JS-потока в петле анимации – это работает. 60fps на бюджетных Android. Shared Element Transitions нативные. useAnimatedStyle + withSpring – стандартный паттерн, к которому привыкаешь быстро.
Flutter имеет смысл если: команда знает Dart, важна пиксель-точная кастомная UI, нужен десктоп (Flutter поддерживает Windows/macOS/Linux). React Native выигрывает если: команда знает JS/TS, нужно переиспользовать веб-логику, важна экосистема npm.
Для большинства продуктовых команд с веб-background – RN быстрее в старте и дешевле в поддержке. Flutter – обоснованный выбор при специфических требованиях к UI.
React Native в 2026 – зрелая технология. New Architecture убрала главные боли с производительностью. Expo Router сделал структуру проекта понятной. Рекомендуем для большинства мобильных продуктов.