Подтвердить что ты не робот

ReactNative VS NativeScript: Какие преимущества?

Я много делаю о том, как реагировать на сеть и реагировать на родной язык, и немного о nativescript. Оба они используют javascript для написания родных мобильных приложений, но мне интересно, какие конкретные преимущества в ReactNative над NativeScript?

4b9b3361

Ответ 1

Оба служат для того, чтобы быть кросс-платформенной платформой JavaScript для разработки мобильных устройств. Сила с React Native над другими сопоставимыми структурами заключается в том, что она использует абстракции и силу React. Facebook хорошо описывает его преимущества: https://facebook.github.io/react/docs/why-react.html

Если NativeScript удовлетворяет ваши потребности, и вам нравится парадигма, пойдите с этим. Это личный выбор. Мне нравится React Native, и в сочетании с реализацией Flux я обнаружил, что он действительно улучшил обработку состояния приложения, повторное использование компонентов и мое общее счастье в развитии.

Ответ 2

Перед заданием по созданию кроссплатформенного мобильного приложения для внутреннего использования у меня была возможность оценить оба варианта в течение месяца.

Итог: NativeScript более зрелый в данный момент (может измениться в будущем). Мы выбрали NativeScript для нашего проекта.

Зачем? Вот несколько примеров из нашего оценочного приложения:

  • Если вы уже не являетесь магазином React (а мы не являемся им), то синтаксис и реализацию NativeScript будет гораздо проще понять для разработчика, который занимается веб-разработкой с использованием Html/CSS/JavaScript. Использование XML очень похоже на Html для выполнения макета.
  • Способность использовать существующие стандарты и инструменты. Например, подсветка синтаксиса, доступная в Sublime, Visual Studio и т.д., Уже поддерживает XML/JavaScript. На момент моей оценки (декабрь 2015 г.) я не смог найти никаких надстроек для правильной подсветки синтаксиса с помощью кода ReactNative. Вместо этого мне пришлось бороться с текстовым редактором красным подчеркиванием всех "синтаксических ошибок" в действительном коде ReactNative.
  • ReactNative предоставляет область "touchableHight", и вам необходимо нарисовать кнопку внутри. Хотя создать модуль "button" для повторного использования легко, это не так элегантно, как прямой вызов основной кнопки android/ios (как это делает NativeScript). Для меня весь смысл использования ReactNative или NativeScript заключается в обращении к нативным объектам.
  • При добавлении поля пароля сторона ReactNative не меняла символы на маркеры на стороне Android, хотя я установил для "secureTextEntry" значение true. Впервые это сработало на стороне NativeScript для Android/iOS.

Я все еще обеспокоен тем, как это обернется в долгосрочной перспективе. Поскольку Facebook больше, я предполагаю, что на разработку ReactNative уходит больше ресурсов, чем Telerik может сделать с NativeScript. Тем не менее, поскольку мы должны что-то сделать сейчас, мы выбрали NativeScript для нашего проекта. Теперь я провел второй месяц с NativeScript и еще сильнее чувствую, что это был правильный выбор для нашего проекта.

Ответ 3

Вот несколько сравнений (стоит хорошо с декабря 2017 года и может быть в начале 2018 года. Может измениться в будущем).

1) Поддерживаемые платформы

React Native - iOS и Android (от Facebook - команда React). Поддержка Windows 10 и UWP от Microsoft здесь.

NativeScript - iOS и Android - от команды Nativescript. Предварительный просмотр поддержки Windows, выпущенный здесь в марте 2016 года. И по состоянию на ноябрь 2017 года это не приоритет команды, учитывая такие вещи, как требования сообщества, и Microsoft объявила, что Windows Phone мертв.

Verdict: если учесть тот факт, что Microsoft больше не выпускает Windows Phone (ссылка выше), только двумя другими основными операционными системами, на которые следует ориентироваться, будут iOS и Android, которые поддерживаются как родным React, так и NativeScript. Двигайтесь дальше с другими соображениями. Если поддержка Windows обязательна и не подходит для использования дополнительных платформ, таких как Electron, React Native - ваш собеседник.

2) Рамки

React Native - Да. Использует React JS!

NativeScript - несколько вариантов. Вы можете выбрать из плана JS, TypeScript, Angular 2+ и теперь Vuejs.

Verdict Если вы уже не являетесь магазином React (более разработанные и собственные повторно используемые компоненты), NativeScript предоставляет больший выбор и гибкость. Пользовательский интерфейс NativeScript XML будет более знаком для разработчиков HTML, а его CSS-версия практически не отличается.

3) Размер приложения

React Native - размер простого приложения "Hello world" будет чуть меньше 10 МБ.

NativeScript - само приложение Hello World может занимать более 40 МБ.

В то время как базовое приложение включает в себя большинство файлов, относящихся к фреймворку, и, таким образом, раздувает размер даже для "приложения Hello World", размер не увеличивается резко, когда в приложение добавляется больше страниц. Вы можете ожидать увеличения на пару МБ, когда добавим еще несколько библиотек.

Verdict Если ваше приложение предназначено для пользователей, чья скорость интернета будет ограничена/высока, React Native станет вашим другом. Если нет, рассмотрите другие критерии для принятия решения.

4) Совместное использование кода

React Native - хотя он поддерживает 3 основные мобильные платформы, вам, возможно, придется написать некоторый специфичный для платформы код (помимо тех, которые вы выбираете для пользовательской реализации). Хотя это не может быть нарушителем сделки для большинства.

NativeScript - Необходимость такого пользовательского кода между iOS и Android не так велика, как у React Native. NativeScript также выигрывает, когда дело доходит до совместного использования кода с веб-приложением и даже настольным приложением. В итоге вы создадите отдельный слой пользовательского интерфейса для каждого (мобильный, веб и настольный компьютер). Но большинство других слоев кода можно легко использовать с помощью таких проектов Seed, как этот.

Verdict: если вы ожидаете, что вы будете делиться большим количеством кода между платформами (Native Mobile, Web и Desktop), в этой области победит nativescript.

5) Лицензия

React Native - У пользователей/организаций всегда были проблемы с лицензированием. Недавно Facebook повторно лицензировал React в MIT, но оставил React Native в патентах BSD + (спасибо @Anton Bessonov за исправление). Есть опасения, как это во всем Интернете. Просто Google для React проблем с лицензированием. Это янтарный свет, если вы рассматриваете React Native. Я не говорю КРАСНЫЙ. Это может быть, в зависимости от типа организации и юридической команды. Я видел две большие компании, которые не выбирали React native только для этого. Конечно, есть большие компании, использующие его, и многие могут выбрать.

Обновление:: по состоянию на 16 февраля 2016 года React Native повторно лицензирован на MIT, как вы могли видеть на его странице Github. Это все еще не отражается в нескольких других местах, таких как репозиторий NPM. Думаю, они находятся в процессе обновления. Это хорошая новость для организаций, которые обеспокоены проблемами с лицензией.

NativeScript - Apache 2.0 - зеленый свет для большинства.

По всему вердикту: это не то, что вы ожидали увидеть здесь. Это зависит от вашего выбора на основе вышеуказанных критериев. Оба достаточно перспективны для рассмотрения.

Ответ 4

NativeScript имеет 3 преимущества над реакцией native:

  • Nativescript может использовать гораздо больше кода, чем реагировать на native. Означает это сохраните свое время.
  • Nativescript - это настоящая кросс-платформа, которая позволяет 100% -ный собственный api доступа и доступа к Libs.
  • Как он использует Angular 2, означает, что у него есть все преимущества Angular 2.

Ответ 5

Я только до сих пор реагировал на развитие нации, и я могу петь многие из его добродетелей. Опыт разработчиков фантастический, как и сообщество. Я думаю, что модель макета flexbox - это недооцененная функция реагировать на родной язык. Он развивается и созревает очень быстро. Тем не менее, меня интересует NativeScript, в первую очередь, для одного существенного различия... он дает вам прямой доступ к API-интерфейсам на основе платформы, который является довольно удивительным и мощным когда вы думаете об этом.

Ответ 6

React Native:

  • Может обрабатывать более сложные функции.
  • Можно писать с ES6 или TypeScript.
  • Дополнительная рука для конкретной разработки платформы.
  • Спектакль.
  • Большое Сообщество.
  • Меньший размер приложения по сравнению с nativescript.

Родной скрипт:

  • Ускоренное развитие.
  • Элемент списка.
  • Можно писать с помощью Angular, Vue, TypeScript или JavaScript.
  • Прямой доступ к API нативной платформы.

Ответ 7

Хотя NativeScript хорошо работает с Angular, вы можете использовать "простой" javaScript (или TS) вместе с разметкой xml и подмножеством css. И реализация Vue также может быть использована. Поэтому, если вам нужны опции, NativeScript может быть интересным вариантом для поиска.

Ответ 8

В общем, я определенно рекомендую NativeScript, и одним из главных моментов для этого является то, что на самом деле компания Progress - это компания с огромным опытом, и основной бизнес - создание программного обеспечения для разработчиков. Таким образом, в конечном итоге это означает лучшие инструменты, лучшее качество и поддержку.

Более подробную информацию вы можете найти в моем блоге здесь: http://www.fankod.com/nativescriptvsreactnative.html и здесь https://stackshare.io/stackups/nativescript-vs-react-native.