Почему не выбрал React Native?

Ответ

Я выбрал Flutter, потому что для моих задач он предлагал более предсказуемую производительность и единообразие UI. В моем опыте с кросс-платформенной разработкой ключевыми были два аспекта:

  1. Архитектура рендеринга: Flutter рисует UI самостоятельно, используя движок Skia. Это означает, что интерфейс выглядит и ведет себя абсолютно одинаково на iOS и Android, и нет зависимости от нативных компонентов ОС, которые могут отличаться. В React Native я сталкивался с необходимостью тонкой настройки под каждую платформу и иногда с "проседанием" производительности из-за асинхронного моста (bridge).
  2. Язык и производительность: Dart, особенно с AOT-компиляцией (Ahead-Of-Time) для релизных сборок, генерирует нативный код. Это дает производительность, близкую к нативной. Горячая перезагрузка (Hot Reload) в Flutter работает невероятно быстро и стабильно, что сильно ускоряет разработку UI. В то время как в React Native на JavaScript иногда возникали проблемы с отладкой и производительностью сложных анимаций.

Пример из практики: При разработке приложения с кастомными сложными анимациями и интерактивными графиками во Flutter это было реализовано напрямую через CustomPainter и анимационные контроллеры с гарантированными 60 fps. В аналогичном сценарии на React Native пришлось бы либо писать нативные модули, либо мириться с компромиссами.

Ответ 18+ 🔞

Слушай, я тут Flutter взял на вооружение, и знаешь почему? Потому что эта штука, блядь, работает как швейцарские часы, а не как эта мартышлюшка с вечно кривыми руками. Мне нужна была производительность, которую можно в рот брать, а не гадать, выстрелит ли сегодня нативный мост или накроется медным тазом.

Вот смотри, два главных кита, на которых всё держится:

  1. Как оно рисует: Flutter сам себе хозяин, ёпта. У него свой движок Skia, и он рисует всё с нуля. Это значит, что кнопка на айфоне десятки и на древнем андроиде — это одна и та же кнопка, близнец-брат. Никаких сюрпризов. А вот в React Native, бывало, подгонишь виджет под iOS, а на Android он выглядит так, будто его пизда с ушами нарисовала. И этот их мост между JS и нативкой... Волнение ебать, пока ждёшь, когда твой тап дойдёт до системы. Иногда такое ощущение, что он через хуй с горы ползёт.

  2. На чём написано и как летает: Dart, конечно, не самый модный язык, но когда он компилируется в нативный код (AOT), приложение летает. Серьёзно, как угорелое. А их Hot Reload — это просто песня, ядрёна вошь! Тыкнул — и через секунду видишь результат. В React Native с их связкой JS иногда такая дичь творилась при отладке, что хотелось кричать "Чёрта в душу, в сердцу мать!". Особенно если пытаешься сделать что-то сложное с анимациями.

Простой пример из жизни, чтобы было понятно: Делал я приложение с графиками, которые должны были плавно изменяться от действий пользователя. Во Flutter сел, написал CustomPainter, настроил контроллеры — и всё, блядь, пизда рулю, стабильные 60 кадров, как по маслу. Представляешь, какую б я пляску с бубном танцевал в React Native? Пришлось бы либо нативные модули городить (а это ещё та история), либо смотреть на дергающиеся графики и тихо бздеть от бессилия. А тут — раз, и готово. Вот и весь выбор.