Facebook открыл фреймворки для построения интерфейса: Litho, React Fiber, Relay Modern и React VR
19 апреля 2017 года
На проходящей в эти дни конференции F8 2017, Facebook представил несколько новых открытых фреймворков для построения интерфейса:
- Открыт код Litho, декларативного фреймворка для построения эффективного интерфейса пользователя для платформы Android. Фреймворк уже используется в приложениях Facebook для Android (Facebook app, Facebook Lite, Messenger, Workplace), которыми пользуется более миллиарда человек. Код открыт под лицензией BSD.
В качестве достоинств Litho отмечается обеспечение высокого качества работы приложений, независимо от стабильности сетевого соединения и скорости работы устройства. Интерфейс формируется как набор отдельных компонентов, которые генерируются с упреждением, компонуются асинхронно в единое целое специальным фоновым потоком и отрисовываются по частям, не допуская возникновения блокировок и предоставляя всегда плавную прокрутку. Для снижения потребления ресурсов в Litho применяется техника повторного использования типовых компонентов. После перевода приложений Facebook на Litho производительность прокрутки увеличилась на 35%, при снижении потребления памяти и упрощении тестирования кода.
- React Fiber - полная переработка ядра фреймворка React с целью расширения возможностей, связанных с анимацией, раскладкой элементов интерфейса (layout) и управлением жестами. Ключевым отличием является переход на систему инкрементальной отрисовки, при которой работа разбивается на несколько частей. Также появились такие возможности, как остановка, сброс и повторное использование выполняемых работ, установка разных приоритетов для разных типов обновлений, новые примитивы для распараллеливания работы, возможность возврата массивов и строк от обработчика отрисовки, расширенные средства обработки ошибок. React Fiber позволяет обеспечить более качественную работу на маломощных устройствах, на которых обычный React начинал притормаживать. При этом обеспечена поддержка обратной совместимости с приложениями, ранее написанными для React.
- Relay Modern - новый JavaScript-фреймворк для построения React-приложений, ориентированных на управление данными (data-driven). Достаточно определить требования к данным и зависимости через GraphQL и фреймворк сам решит когда и как извлечь нужные данные, избавляя разработчика от необходимости использования API для прямого обращения к хранилищу. Данные запрашиваются только когда они необходимы, а для увеличения пропускной способности применяется техника агрегирования нескольких запросов. При обновлении данных в хранилище автоматически обновляется и представление данных в приложении. Код открыт под лицензией BSD.
- Открыт код библиотеки React VR (Архивная копия от 22 августа 2018 на Wayback Machine), предназначенной для разработки на языке JavaScript web-приложений, связанных с виртуальной реальностью, используя декларативный стиль программирования React и React Native. React VR построен поверх API WebGL и WebVR и включает компоненты для формирования 3D-сцен, комбинируя 3D-модели и сферические панорамы в режиме 360-градусов с обычным двумерным интерфейсом, текстом и изображениями. Код поставляется под лицензией BSD.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.