Сравнение: разработка приложений React Native и Native

Опубликовано: 2021-10-05

Может ли фреймворк React Native RoR конкурировать с разработкой нативных приложений ?

На самом деле это одно из тех гибридных приложений, о которых мы слышим так много мнений в наши дни. Существует множество инструментов кросс-платформенной разработки, но в этом тексте мы обращаем внимание на фреймворк React Native RoR. React Native является родным? Тогда давайте разберемся с этим вопросом.

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

Хорошо известные и пройденные пути разработки приложений - нативные и кроссплатформенные. Разработка собственных приложений отлично подходит для мобильных устройств и является официальным типом разработки для конкретной цели (iOS или Android) в рамках конкретной IDE ( XCode или Android Studio ) и на определенном языке ( Kotlin / Java для Android, Swift / Objective-C для iOS ).

Второй тип разрабатываемых приложений называется гибридным. В чем разница между кроссплатформенной (например, React Native) и нативной разработкой приложений? Кросс-платформенная разработка приложений немного отличается от нативной, так как в большинстве случаев она включает в себя среду с открытым исходным кодом, которая смешивает концепции мобильной и веб-разработки, и довольно часто она написана на Java Script, хотя конечный результат в конечном итоге будет быть файлом приложения «как родной». В наши дни соперничество «нативные приложения против гибридных» достигает своего меридиана.

В то время как с «родными» платформами и языками все ясно, гибридные приложения имеют более широкую классификацию. Наиболее часто используемые кроссплатформенные JS-фреймворки:

  • Ионный 3 фреймворк
  • Xamarin
  • Кордова (бывший PhoneGap)
  • Фреймворк React Native RoR

Почему сегодня стоит выбирать гибридные приложения и на какой платформе они будут построены? Что выбрать - React Native vs Ionic? Xamarin против React Native? React Native - одна из самых популярных платформ для разработки кроссплатформенных приложений, но что заставляет людей ее использовать? Я пытался разобраться в этом вопросе.

Реагируйте быстрее.

приложения, построенные на React Native
[Источник изображения: Facebook React Native]

Бьюсь об заклад, вы узнали каждый из этих значков. Все они (в прошлом или даже в настоящее время) были созданы или создаются с использованием React Native. Кстати, компания Facebook, по сути, является владельцем и активным промоутером разработки приложений React Native. Однако сама компания отрицает, что является «инструментом для гибридных приложений». Как они заявляют на своей официальной посадке,

«С React Native вы не создадите« мобильное веб-приложение »,« приложение HTML5 »или« гибридное приложение ». Вы создаете настоящее мобильное приложение, неотличимое от приложения, созданного с использованием Objective-C или Java. React Native использует те же фундаментальные строительные блоки пользовательского интерфейса, что и обычные приложения для iOS и Android. Вы просто соединяете эти строительные блоки, используя JavaScript и React ».

[Источник: Facebook Github]

Но действительно ли React Native выгоден по сравнению с разработкой нативных приложений? Не совсем так. Во-первых, здесь другой процесс создания приложений.

Как создать собственное приложение с реакцией? Заверните.

React Native для Android (и iOS) сам по себе является оболочкой нативной компиляции, где инструмент JS позволяет вам создавать приложения намного проще. У него даже упрощенная структура - компоненты выглядят как базовые HTML-теги. Код, который вы пишете в React Native, уникален для каждой мобильной платформы, но существует множество универсальных инструментов, которые можно повторно использовать и повторно применять на iOS или Android. Кроме того, у вас может быть несколько направлений сборки, что заставляет меня называть разработку React Native не только кроссплатформенным фреймворком, но и кросс-девайсным. Вы можете адаптировать свое приложение для iOS, так же, как AppleTV и Mac OS.

Приложения, разработанные в React Native, не требуют встроенной среды IDE (XCode или Android Studio), хотя вы можете разрабатывать их с их помощью, поскольку в специально разработанной IDE Expo - React Native меньше возможностей для отладки. Фреймворк RN также не усложняет структуру компонентов - она ​​довольно проста, и если вы ищете более сложную, вам нужно использовать нативные части iOS или Android, завернутые в оболочку JS сверху (что довольно , довольно грязно). Некоторые компоненты одеты в , который поможет вам добавить в него различный реквизит.

Несколько преимуществ, которые делают React Native привлекательным для разработчиков кроссплатформенных приложений по всему миру :

1. Это требует от вас меньше ресурсов.

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

2. React Native - в его компонентах.

Как уже было сказано, список компонентов, приемлемых для React Native, огромен. В свою очередь, эти компоненты, безусловно, могли бы быть повторно использованы в других проектах, если бы у них было несколько общих черт.

3. У него огромное сообщество.

Сообщество React Native

Как вы думаете, сколько людей в официальном сообществе React Native на Facebook? На момент публикации этой статьи их число превысило 23 000. Самое важное в том, чтобы быть частью большого сообщества, - это чувство определенной включенности + способность извлекать из него новые компоненты. Компоненты, которые вы создаете для своих индивидуальных целей, можно легко распределить внутри группы, и вы сможете найти готовое решение, когда оно вам понадобится, без необходимости переписывать его с нуля.

4. Его продвигают ...

компания facebook

Корпорацию Facebook в целом уже можно назвать «Фирменным брендом», так что весь Facebook, стоящий за ней, дает огромное преимущество фреймворку React Native (если мы даже возьмем сравнение Ionic с React Native). Пользователи верят, что эта социальная сеть достаточно прочна, чтобы выдерживать рекламируемые продукты и полагаться на них.

Один размер не подходит всем.

На другом углу, где находятся разработчики нативных приложений, также есть ценности и преимущества, которые вы приобретаете, когда платите за «переход на нативные».

1. Родной = более отзывчивый.

Отзывчивость интерфейса - это то, чего жаждут дизайнеры UX и для чего прилагают десятки усилий. Когда это собственное приложение, каждый экран дизайна отдельно разрабатывается и адаптируется к руководствам магазинов, чтобы соответствовать стилю - будь то плоский или материальный .

2. Родные языки = официально разработаны магазинами Apple и Google.

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

3. «Жажда скорости».

Один из основных принципов Usability Engineering означает быстрое взаимодействие: «1,0 секунда - это предел, при котором поток мыслей пользователя остается непрерывным». В то время как собственные приложения реагируют и работают достаточно быстро, чтобы удерживать пользователей в ритме системы, гибридные продукты часто отстают.

4. Родной = посложнее.

родные приложения = сложные приложения

Кросс-платформенные решения хороши, когда вы хотите создать что-то, что уже существует, с функциями, выходящими за рамки «среднего» класса. Когда дело доходит до сложных вещей (все эти модные алгоритмы IoT, AR / VR, Big Data Mining находятся в этом списке), гибридным приложениям не хватает технических возможностей для реализации того, что вы хотите. С другой стороны, у родных IDE и языков есть бесконечные технические перспективы - на них можно написать множество вещей.

Выбирайте с осторожностью.

Если вы ищете простое приложение для создания (списки и ничего более сложного), тогда React Native - это настоящая находка. Если потребуется дальнейшая производительность приложения, возникнут более сложные процедуры разработки - вам уже нужно переключиться на Swift или на Kotlin, а затем завернуть все это в блестящую оболочку Java Script; и это не кажется легким делом. Таким образом, для таких вещей, как потоковое видео или аудио, маршрутизация, чаты в реальном времени, редактирование фотографий и т. Д., Вам будет лучше начать с нативной разработки с самого начала, избегая этих недостатков.

Кроме того, React Native - это полная структура JavaScript, и весь код можно даже написать в текстовом редакторе, таком как TextMate или Notepad ++. Хотя, когда дело доходит до создания проекта, вам отчаянно нужна конкретная IDE или, по крайней мере, эмулятор.

Вот несколько примеров достойных приложений на основе RN:

  • Приложения Facebook, очевидно
  • Мобильные приложения Airbnb (гибрид iOS и Android)
  • Мобильное приложение Walmart (поскольку в нем было несколько встроенных веб-представлений, реализация которых оказалась ниже ожидаемой)

Вы можете посмотреть весь список продуктов на основе RN на их официальном сайте, и снова RN побеждает в конкурсе React Native vs Xamarin framework здесь.

Ради перспективы.

Согласно статистике Flurry, «сегодня потребители в США тратят в среднем 2 часа 38 минут в день на смартфоны и планшеты. 80% этого времени (2 часа 7 минут) тратится внутри приложений». Ваш продукт должен каким-то образом вписываться в эти 2 часа работы каждый день. Учитывая все обстоятельства, фреймворк React Native RoR был бы удобным решением для крошечного краткосрочного проекта; обзоры доказывают, что это быстро, яростно и ново, или когда вы хотите «проверить концепцию». Тем не менее, в долгосрочной перспективе или при планировании технического новшества для кикстарта нельзя полагаться на готовый вариант. Вам нужно, чтобы он был создан с нуля, вам нужно, чтобы он был настроен - значит, тогда вам нужно, чтобы это была разработка собственного приложения.

Авторы Артем Червичник и Элина Бессарабова .