Что нового?

Сначала давайте начнем с нескольких вопросов -

  1. Вы хотите быть разработчиком приложений?
  2. У вас уже есть большой опыт работы с JavaScript?
  3. Вы хотите создавать приложения для Android и iOS, не зная Java и Swift?

Если на любой из этих трех вопросов вы получили ДА, то эта полная статья написана для вас.

Начнем!

Итак, что же такое React Native?

React Native - это фреймворк Javascript для рендеринга мобильных приложений в iOS и Android. React - это библиотека Javascript для создания пользовательских интерфейсов, ориентированных на мобильные платформы. Таким образом, теперь разработчики могут создавать мобильные приложения, используя эту библиотеку Javascript, которую можно использовать на разных платформах, что упрощает разработку как для iOS, так и для Android.

Теперь, ПОЧЕМУ REACT NATIVE?

На мобильной платформе есть библиотеки виджетов пользовательского интерфейса, которые разработчики могут использовать для создания приложений для этой платформы. На Android разработчики реализуют приложения Java, а на iOS разработчики реализуют приложения Swift. Если вам нужно функциональное мобильное приложение, вам нужно его выбрать. Однако вам нужно будет выучить оба языка, так как поддержка только одной из двух основных платформ нереальна для успеха.

Для разработчиков React это не проблема. Те же компоненты React, которые вы создаете, работают повсюду, даже в мобильных браузерах! Изучение еще двух языков программирования для создания и доставки мобильного приложения требует больших затрат и времени.

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

Узнай один раз, пиши где угодно.

Преимущество React Native заключается в том, что если вы понимаете, как создать приложение React Native для iOS, вы понимаете, как создать приложение React Native для Android. Это - учиться один раз, писать где угодно.

Такие библиотеки, как Phonegap, предоставляют оболочку для пользовательского веб-интерфейса с использованием HTML, CSS и JavaScript. React Native вместо этого предоставляет представление виртуальной DOM, которое затем отображает собственные элементы управления. React Native может взять собственные компоненты платформы, такие как ползунки, переключатели, метки, панели вкладок, и обернуть их в аналоги компонентов React.

React Native позволяет создавать мобильные приложения, которые выглядят, работают и работают намного больше, чем нативные приложения, чем типичные веб-приложения, из-за основной технологии, лежащей в основе нативной технологии. Это позволяет разработчикам делать это, продолжая использовать большинство тех же навыков веб-разработки, которые они приобрели за эти годы, и делает это, позволяя разрабатывать кроссплатформенные. Больше не нужно писать приложения для iOS на Objective-C или Swift, а затем снова писать то же приложение на Java для Android. Нет, теперь вы можете написать свое приложение один раз, используя React Native, и заставить его работать на обоих платформы с минимальными усилиями.

Пришло время воспользоваться машиной времени. Итак, пристегнитесь -

Поехали - 3–2–1 - - - - - - - - 2011

React Native начал свою жизнь в Facebook как побочный проект (по сути, проект внутреннего хакатона) другого проекта, который сам когда-то был побочным: React. Этот проект, созданный инженером Facebook Джорданом Уолком, впервые был использован в 2011 году для ленты новостей Facebook. Instagram начал использовать React в 2012 году, а в мае 2013 года его исходный код был открыт в JSConf US.

Фактически, в 2012 году Марк Цукерберг прокомментировал: «Самая большая ошибка, которую мы сделали как компания, заключалась в том, что слишком много делала ставка на HTML5, а не на нативный».

Он пообещал, что Facebook скоро предоставит лучший мобильный опыт, и React Native станет ключом к этой цели. Итак, в январе 2015 года на съезде React.js была предложена первая публичная предварительная версия React Native. Всего месяц спустя, в марте 2015 года, на конференции Facebook F8 было объявлено, что React Native открыт и доступен на неизменно популярном GitHub. В этот момент React Native стал популярным.

Так в чем разница между React и React Native?

React Native не использует HTML для рендеринга приложений. Вместо этого предоставляет компоненты, работающие аналогично, и большинство из них можно преобразовать в их эквиваленты в HTML, например ‹View› на ‹div› и ‹Text› на что-то вроде смеси ‹span› и ‹p›. Из-за этого библиотеки, используемые с ReactJS, не могут использоваться в среде React Native. React Native не использует теги CSS или, скорее, использует их не так, как Flexbox.

И ReactJS, и React Native отлично подходят для быстрого создания сложных пользовательских интерфейсов, и переход от первого ко второму несложен для тех, кто любит изучать новые фреймворки JavaScript.

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

В настоящее время React Native поддерживает множество популярных мобильных приложений, включая Facebook, Airbnb, Discord, Instagram, Walmart, Bloomberg, Gyroscope, Wix и Skype. Готов поспорить, что вы используете хотя бы один из них каждый день и никогда не догадывались, что он был создан с помощью React Native! Это свидетельство того, насколько близко к нативному виду, ощущениям и производительности может обеспечить React Native.

Реквизит React Native -

1. Быстрее строить

Основным преимуществом React Native является более короткое время разработки. Фреймворк предоставляет множество готовых к применению компонентов, которые могут ускорить процесс. RN основан на JavaScript, что дает доступ к крупнейшей в мире экосистеме пакетов, npm. Имея доступ к такой обширной базе пакетов, вы можете сэкономить много времени, и оно будет только улучшаться.

2. Горячая перезагрузка

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

3. Небольшие команды

Для нативной разработки требуются две отдельные команды для Android и iOS. Это может затруднить общение между разработчиками и, соответственно, замедлить разработку. Команды разработчиков Android и iOS имеют свои собственные проекты, и часто у них разные скорости и методы разработки. Как следствие, два проекта легко могут стать несовместимыми. Это может привести к различиям во встроенных функциях, поведении и внешнем виде приложения. Если вы выберете React Native, вам, скорее всего, понадобится разработчик JavaScript, который может написать код для обеих платформ. Приложения с большим количеством нативных функций также потребуют дополнительной помощи от нативных разработчиков. Тем не менее, в большинстве случаев команда будет меньше по размеру, и, следовательно, ею будет легче управлять.

4. Упрощенный интерфейс.

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

Минусы React Native -

1. Отсутствие некоторых пользовательских модулей

Несмотря на свою зрелость, React Native по-прежнему не имеет некоторых компонентов. Другие, в свою очередь, развиты недостаточно. Скорее всего, у вас не возникнет проблем с этим, поскольку большинство необходимых вам настраиваемых модулей доступны, хорошо документированы и работают должным образом. Однако может случиться так, что вам придется создать свое решение с нуля или попытаться взломать существующее. При разработке собственных модулей вы можете получить три базы кода (RN, Android и iOS) для компонента вместо одной.

2. По-прежнему нужны собственные разработчики

Реализация некоторых встроенных функций и модулей требует детального знания конкретной платформы. Отсутствие готовой поддержки многих нативных функций приложений (например, камеры, push-уведомлений) раньше было значительной проблемой при разработке React Native. По мере роста сообщества все больше и больше библиотек с открытым исходным кодом обеспечивают легкий доступ к функциям собственной платформы. Тем не менее, для реализации некоторых дополнительных функций может потребоваться помощь разработчиков iOS и Android.

Вот и все

Спасибо за прочтение!

Если этот пост был полезен, пожалуйста, нажмите несколько раз кнопку хлопка 👏 ниже, чтобы выразить свою поддержку!

Хочешь со мной связаться -

Напишите мне в Instagram @im_avishek

Напишите в Твиттере свои вопросы и отметьте меня @im_avigautam

Я буду более чем счастлив помочь вам расти в этом мире высоких технологий, опираясь на свой опыт.

Удачного обучения! 😃