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

React Native v Xamarin Forms - Выбор среды приложений для кросс-платформенных приложений

Я искал Xamarin Forms для создания кросс-платформенного приложения. Нам нужна инфраструктура, ориентированная на iOS, Android и Windows Phone. Это похоже на хороший продукт, но стоимость лицензии может вызвать у нас проблемы с нашей бизнес-моделью, а также лицензирование для разработки Windows Phone неясно.

Я столкнулся с другой структурой под названием React Native, которая утверждает, что может создавать кросс-платформенные приложения. Я задавался вопросом, может ли кто-нибудь дать мне представление о его сильных и слабых сторонах, в частности, относительно Формы Хамарина, если это возможно. Одно дело в том, что он использует Javascript, который может плохо масштабироваться (как в плане обслуживания кода, так и при выполнении исполнения). Но я был бы благодарен за вклад от любого, кто был ближе к Реактору и сформировал некоторые объективные мнения о его полезности.

https://facebook.github.io/react-native/

Спасибо.

4b9b3361

Ответ 1

раскрытие: я не являюсь сотрудником Facebook или Microsoft, я не участвую ни в одной из платформ, я веб-разработчик, который только начал изучать, как развиваться с реакцией native.

реагировать на родной

созданный facebook и открытым исходным кодом - он в настоящее время (по состоянию на октябрь 2015 года) поддерживает только iOS и Android. Это похоже на Xamarin на тот факт, что компоненты пользовательского интерфейса, которые вы создаете, преобразуются в собственные компоненты и НЕ запускаются внутри веб-представления, например, в других средах (например, Cordova); преимущество заключается в том, что нативные компоненты более чувствительны, чем веб-компоненты.

Приложения должны иметь возможность совместно использовать код бизнес-логики и большинство компонентов пользовательского интерфейса, но, поскольку команда позади реагирует на родные, каждая платформа имеет свой собственный интерфейс, и ваше приложение должно учитывать это, и поэтому оно позволяет и поощряет вас (это еще не навязывает вам), чтобы написать интерфейс вашего интерфейса приложения для каждой платформы.

Весь код написан в Javascript (а не Java), работающем в процессе nodejs, с пользовательским интерфейсом, описанным с использованием элементов XML, и оформлен с шаблоном, похожим на CSS, но внутренне разбирается как Javascript.

Ваше приложение будет работать в двух потоках, главном потоке, в котором будет выполняться большая часть пользовательского интерфейса, и потоке nodejs, где будет работать ваша бизнес-логика. Это имеет некоторые последствия при архивировании приложения.

Структура достаточно зрелая, чтобы вы могли создавать готовые приложения для производства, но официально поддерживаемые кросс-платформенные компоненты все же должны увеличиваться. Сообщество также создает большие компоненты кросс-платформы, которые вы, возможно, захотите использовать, большинство, если не все из них являются бесплатными.

что теперь заставляет команда реагировать на родную работу? (на основе переговоров, которые я смотрел онлайн):

  • исправление рабочего процесса - в настоящее время, если вы изменяете актив, сначала вы должны сделать это в другом месте для поддержки каждой платформы, и чтобы увидеть изменения при разработке, вам нужно перекомпилировать приложение.
  • увеличение количества реагирующих элементов пользовательского интерфейса (специально для платформы Android)

Вкратце, эти моменты необходимо учитывать:

                 Xamarin                     React Native

built by:        Xamarin                     Facebook
language         C#                          Javascript (nodejs)
age              mature                      (prod ready), but not mature
community:       good support                good support
platforms        iOS, Android, Windows       iOS, Android
cost             FREE (open sourced)         FREE (open sourced)