React Native против Flutter
Поддержка горячего обновления
Горячее обновление всегда было одним из преимуществ платформы RN, будь то служба CodePush, предоставляемая Microsoft, или платформа горячего обновления, созданная различными крупными производителями, такими как отечественный JD.com и Ctrip, которые имеют очень зрелые платформы обновления RN. Google, с другой стороны, вообще не планирует поддерживать Flutter. Функция горячего обновления, исходя из текущей информации, Jingdong JDFlutter добился горячего обновления на платформе Android, но фактический эффект и гибкость все еще намного меньше, чем у RN.
Вероятно, это основная причина, по которой большинство компаний предпочитают использовать RN. Частые обновления приложений раздражают пользователей, а проверка Apple доставляет массу хлопот. Сейчас многие крупные приложения используют RN, ведь каждый раз проходить аудит APP из-за многочисленных бизнес-итераций — кошмар.
JS VS Dart
- РН разработан на JS
- Flutter использует разработку Dart
Среда разработки и отладки
- С точки зрения цепочки инструментов, оба очень зрелые, и отладка очень удобна.
- С точки зрения среды разработки для сборки, особенно интегрированной в существующие проекты APP, RN намного проще по сравнению с Flutter.
Встроенная поддержка гибридной разработки
Поскольку компоненты RN изначально отображаются через собственную систему пользовательского интерфейса, очень легко встроить RootView RN в собственную страницу или компонент собственного пользовательского интерфейса в страницу RN, что очень удобно для гибридной поддержки разработки на существующей ПРИЛОЖЕНИЕ. И у Flutter будет много проблем, таких как память или производительность, из-за встраивания FlutterView в нативные страницы или встраивания собственных компонентов пользовательского интерфейса в страницы Flutter. В настоящее время команда Xianyu имеет больше практики в Китае, а также открыла исходный код проекта FlutterBoost, чтобы попытаться решить эту проблему, но у официального представителя пока нет идеального решения. Таким образом, Flutter больше подходит для использования в новых приложениях.
устойчивость рамы
Судя по фактическому использованию командой фреймворков RN и Flutter, после 4 лет разработки и непрерывной итерации RN текущая стабильность и совместимость значительно улучшились. На Github всего более 500 открытых вопросов, и многие отечественные производители, такие как JD.com и Ctrip, также широко используют его.Общая стабильность достигла требований производственной среды. Однако из-за ограничений общей архитектуры RN она по-прежнему опирается на нативные компоненты, поэтому с итерацией системы Android и iOS в будущем требуется постоянное улучшение стабильности и совместимости. Поэтому мы также рекомендуем, чтобы при применении инфраструктуры RN крупные производители могли иметь специальную собственную команду для обслуживания и оптимизации механизма RN, что может принести наибольшую пользу. Номер версии Flutter был быстро итерирован до 1.7, но все еще есть много проблем, возникающих при реальном использовании.Еще предстоит пройти долгий путь с точки зрения производительности и стабильности.Что еще больше беспокоит, так это то, что существует более 7000 открывать файлы на Github. Более того, движок Flutter содержит большое количество кода на языке C, который относительно неясен и сложен для понимания, и общим командам сложно оптимизировать и повысить стабильность.
Поддержка экосистемы разработчиков
Github Star от RN достиг 80 000, и с помощью экосистемы React можно использовать большое количество сторонних плагинов. Microsoft, airbnb и другие компании также предоставили большое количество высококачественных плагинов, а вся экосистема разработчиков очень полная и активная. Напротив, экология Flutter находится только на ранней стадии, хотя Github Star уже имеет 72 КБ, количество доступных сторонних библиотек в целом не так хорошо, как RN. Конечно, мы также видим, что экосистема Flutter в последнее время быстро развивается, а также увеличивается количество публичных библиотек на Dart Pubs, что в принципе может соответствовать развитию общего бизнеса.
Полная поддержка платформы
На самом деле, и у RN, и у Flutter большие амбиции по достижению гегемонии на полной платформе. Помимо платформ Android и iOS, RN уже может поддерживать Windows UMP, Web, Desktop, macOS с помощью сторонних инструментов, и даже недавний проект Alita с открытым исходным кодом JD.com реализовал связь между RN и апплетом WeChat. Flutter еще не идеален.Хотя он официально поддерживает Android, iOS, Desktop и Web, он недостаточно зрел в реальном тестировании, особенно Hummingbird все еще находится на ранней стадии, а производительность преобразованного Web не соответствует производственная среда.
Родная поддержка: Нужно сначала открыть соединение между родным и рп. То есть есть нативные контейнеры, которые могут поддерживать запуск rn в нем. Требуется встроенная поддержка для идеального сочетания
Действительно ли Flutter уступает RN?
На техническом уровне RN и Flutter не исключают друг друга, они оба являются отличными кросс-энд фреймворками. Хотя перечисленных выше проблем с Flutter много, это не проблемы, которые невозможно решить, а проблемы, с которыми любой фреймворк может столкнуться на ранней стадии. Наоборот, с точки зрения общего архитектурного дизайна и общего планирования, я думаю, что Flutter лучше, чем RN, и принадлежит кросс-энд фреймворку следующего поколения. Мы можем предвидеть, что, когда система Google Fuchsia будет официально выпущена через несколько лет, это будет момент, когда Flutter сможет показать свои таланты.
Варианты использования РН:
1. Jingdong, Ctrip используют больше
Например, ранжирование на главной странице приложения Jingdong осуществляется через rn, а стоимость обслуживания относительно высока.
2. Основная причина, по которой Airbnb отказалась от React Native
В React Native не удается добиться полной кроссплатформенной абстракции, и иногда для решения проблемы все равно приходится писать код под конкретную платформу. Это косвенно требует, чтобы их инженеры были знакомы с тремя платформами, чтобы действительно использовать React Native.Однако большинство разработчиков знакомы только с одной или двумя платформами, что со временем вызвало ряд проблем.
Взято из:Tickets.WeChat.QQ.com/Yes/DL ZY6 отменяет FC…
Суммировать:
- И rn, и флаттер требуют нативных вложений, а общие вложения могут быть больше.
- Когда мы выбираем технологию, мы сосредоточимся на нескольких аспектах, мы рассмотрим
- Поддержка горячего обновления
- Язык разработки JS VS Dart (стек командных технологий, подбор персонала)
- Среда разработки и отладки (опыт разработки)
- Встроенная поддержка
- устойчивость рамы
- экология
- Полная поддержка платформы (кроссплатформенность)