На конференции F8 2015 компания Facebook представила открытый проект React Native, в рамках которого подготовлен вариант web-фреймворка React, предназначенный для разработки обособленных мобильных приложений, внешний вид и поведение которых ничем не отличается от программ, написанных с использованием штатных средств разработки различных мобильных платформ. Код проекта распространяется под лицензией BSD.

Приложения создаются при помощи HTML5, JavaScript и компонентов пользовательского интерфейса, предоставляемых фреймворком React. Подготовленное при помощи React Native приложение может быть собрано для всех поддерживаемых платформ. Разработчику предоставляется возможность использования как штатные компоненты целевой платформы, например, в iOS доступны классы TabBarIOS и NavigatorIOS, так и универсальные для всех платформ реализации элементов интерфейса (например, UITabBar и UINavigationController), внешний вид которых адаптирован для каждой платформы. Первый выпуск React Native предоставляет средства разработки только для платформы iOS, поддержка Android ожидается в ближайшем будущем.

Взаимодействие между JavaScript-приложением и мобильной платформой производится в асинхронном режиме, что позволяет вынести в отдельную нить такие операции как декодирование изображений и сохранение на диск, и организовать выполнение ресурсоёмких операций, не блокируя интерфейс пользователя. Кроме того, разработчику предоставляется мощная система обработки событий с сенсорного экрана, многослойная модель Flexbox для блочной компоновки элементов интерфейса на экранах разного размера. Имеется возможность установки дополнений, модулей и библиотек, как написанных на JavaScript, так и распространяемых для целевой платформы (например, в iOS можно использовать сторонние модули на Objective-C).

Одновременно объявлено о создании новой интегрированной среды разработки Nuclide, оптимизированной для разработки мобильных и web-приложений на языке JavaScript с использованием React или React Native и статического анализатора Flow, а также для разработки на языке Hack (вариант PHP со статической типизацией). Проект Nuclide развивается в сотрудничестве с GitHub и базируется на среде редактирования кода Atom, которая построена с использованием браузерного ядра Chromium. Предварительную версию Nuclide планируется опубликовать в ближайшее время.



Источник: http://www.opennet.ru/opennews/art.shtml?num=41918