Что такое React Native

React Native — это фреймворк с открытым исходным кодом, разработанный Meta (ранее Facebook), который позволяет создавать мобильные приложения для iOS и Android с использованием JavaScript или TypeScript и знакомой модели компонентов из React.

Основная идея React Native — писать один код на языке, известном веб-разработчикам, но при этом получать приложение, которое выглядит и ведёт себя как нативное. Это достигается за счёт того, что компоненты React Native не рендерятся в HTML-элементы DOM, а транслируются в настоящие нативные UI-компоненты операционной системы: UIButton на iOS или android.widget.Button на Android.

Почему используют React Native

  • Единая кодовая база для двух платформ. Большая часть логики и интерфейса может быть общей, что снижает время и стоимость разработки.
  • Знакомый синтаксис для тех, кто уже знает React. Используются те же принципы: компоненты, состояние, эффекты.
  • Доступ к нативным возможностям через модули (камера, геолокация, сенсоры и др.), хотя иногда требуется написание дополнительного нативного кода.
  • Большое сообщество и экосистема, включая библиотеки для навигации, хранения данных, анимаций и тестирования.

Чем React Native отличается от веб-React

В веб-приложении на React компоненты рендерятся в DOM: <div>, <p>, <img> и стилизуются с помощью CSS. В React Native этого нет:

  • Вместо <div> используется <View>
  • Вместо <p> или <span> — <Text>
  • Вместо <img> — <Image>
  • Стилизация происходит не через CSS-файлы, а через объекты с camelCase-свойствами, например:
    const styles = {
      container: {
        flex: 1,
        backgroundColor: 'white',
        padding: 16
      }
    };
    
  • Нет доступа к таким веб-API, как window, document, localStorage — они заменяются на мобильные аналоги.

React Native не использует WebView (в отличие от гибридных решений вроде Cordova). Он взаимодействует с нативной платформой напрямую, что обеспечивает лучшую производительность и внешний вид.