React Native | |
---|---|
Тип | фреймворк для разработки мобильных приложений |
Разработчики | Meta и сообщество |
Написана на | JavaScript, Java, C++, Objective-C |
Операционная система | кроссплатформенность |
Первый выпуск | 26 марта 2015[1] |
Аппаратные платформы | Android, Android TV, iOS, macOS, tvOS, Web и Windows |
Последняя версия |
|
Репозиторий | github.com/facebook/reac… |
Лицензия | MIT License |
Сайт | reactnative.dev |
React Native — кроссплатформенный фреймворк с открытым исходным кодом для разработки нативных мобильных и настольных приложений на JavaScript и TypeScript, созданный Facebook, Inc. (Ныне Meta)[3] React Native поддерживает такие платформы как Android,[4] Android TV,[5] iOS, macOS,[6] tvOS,[7] Web,[8] Windows и UWP[9], позволяя разработчикам использовать возможности библиотеки React вне браузера для создания нативных приложений, имеющих полный доступ к системным API платформ.[10]
Основные принципы работы React Native практически идентичны принципам работы React, за исключением того, что React Native управляет не браузерной DOM, а платформенными интерфейсными компонентами. JavaScript-код, написанный разработчиком, выполняется в фоновом потоке, и взаимодействует с платформенными API через асинхронную систему обмена данными, называемую Bridge.[11][12][13] В 2021 году ожидается замена Bridge на более производительную синхронную модель обмена данными, поддерживающую парадигму zero-copy.
Хотя система стилей (способ конфигурации визуальных свойств элементов интерфейса) React Native имеет синтаксис, похожий на CSS, фреймворк не использует технологии HTML или CSS как таковые.[14] Вместо этого для каждой из поддерживаемых фреймворком операционных систем реализованы программные адаптеры, применяющие заданный разработчиком стиль к платформенному интерфейсному элементу.
React Native также позволяет разработчикам использовать уже существующий код, написанный на других языках программирования — например, Java или Kotlin для Android и Objective-C или Swift для iOS. Также React Native поддерживает интеграцию в уже существующие приложения — например, часть интерфейса мобильного приложения может быть реализована на React Native, а часть — при помощи чисто платформенных средств.