React Native
React Native — это среда выполнения (runtime) и набор инструментов, который связывает ваш JavaScript-код с нативными возможностями операционной системы.
Если проводить аналогию:
- Ваш JS-код — это чертежи и инструкции.
- React Native — это прораб, который переводит эти инструкции на язык строителей (iOS и Android).
- Нативные компоненты — это сами строители, которые возводят здание (интерфейс).
Что именно входит в эту «среду/платформу»:
- Движок JavaScript (Hermes или JSC): Внутри каждого приложения React Native «живет» маленький и быстрый браузерный движок (без графической части), который круглосуточно крутит ваш JS-код.
- Слой коммуникации (Bridge или JSI): Та самая «переводческая контора», которая гоняет сообщения между JS и Native.
- Библиотека нативных модулей: Огромный набор готового кода на Java/Kotlin и Objective-C/Swift, который умеет создавать кнопки, списки, работать с камерой или GPS по команде из JS.
- Yoga Layout Engine: Движок, который берет ваши правила Flexbox из CSS и превращает их в конкретные пиксели и координаты, понятные для мобильных процессоров.
Главный нюанс
React Native не компилирует JS в Java или Swift. Ваш JS-код остается JS-кодом даже внутри скачанного из App Store приложения. Платформа просто запускает его и позволяет ему «дёргать за ниточки» реальные элементы системы.
А набор инструментов это возможность вызывать любые функции телефона (камеру, GPS, уведомления), потому что React Native предоставляет JS-интерфейсы для обращения к нативному API. Думаю, именно из-за набора инструментов React Native часто называются фреймворком, хотя конечно это не фреймворк.
Аналогия с php-fpm
Если проводить аналогию с php, то React Native это php-fpm, js-код это php-код.
11.09.2021 07:08
Комментарии
Комментариев пока нет.