На проходящей в эти дни конференции F8 2017, Facebook представил (https://code.facebook.com/posts/1005990452878946/facebook-op.../) несколько новых открытых фреймворков для построения интерфейса:- Открыт (https://code.facebook.com/posts/1187475984695956/open-sourci.../) код Litho (http://fblitho.com/), декларативного фреймворка для построения эффективного интерфейса пользователя для платформы Android. Фреймворк уже используется в приложениях Facebook для Android (Facebook app, Facebook Lite, Messenger, Workplace), которыми пользуется более миллиарда человек. Код открыт (https://github.com/facebook/litho) под лицензией BSD.
В качестве достоинств Litho отмечается обеспечение высокого качества работы приложений, независимо от стабильности сетевого соединения и скорости работы устройства. Интерфейс формируется как набор отдельных компонентов, которые генерируются с упреждением, компонуются асинхронно в единое целое специальным фоновым потоком и отрисовываются по частям, не допуская возникновения блокировок и предоставляя всегда плавную прокрутку. Для снижения потребления ресурсов в Litho применяется техника повторного использования типовых компонентов. После перевода приложений Facebook на Litho производительность прокрутки увеличилась на 35%, при снижении потребления памяти и упрощении тестирования кода.
- React Fiber (https://github.com/acdlite/react-fiber-architecture) - полная переработка ядра фреймворка React с целью расширения возможностей, связанных с анимацией, раскладкой элементов интерфейса (layout) и управлением жестами. Ключевым отличием является переход на систему инкрементальной отрисовки, при которой работа разбивается на несколько частей. Также появились такие возможности, как остановка, сброс и повторное использование выполняемых работ, установка разных приоритетов для разных типов обновлений, новые примитивы для распараллеливания работы, возможность возврата массивов и строк от обработчика отрисовки, расширенные средства обработки ошибок. React Fiber позволяет обеспечить более качественную работу на маломощных устройствах, на которых обычный React начинал притормаживать. При этом обеспечена поддержка обратной совместимости с приложениями, ранее написанными для React.
- Relay Modern (https://facebook.github.io/relay/) - новый JavaScript-фреймворк для построения React-приложений, ориентированных на управление данными (data-driven). Достаточно (https://code.facebook.com/posts/1362748677097871/relay-moder.../) определить требования к данным и зависимости через GraphQL (https://www.opennet.dev/opennews/art.shtml?num=42964) и фреймворк сам решит когда и как извлечь нужные данные, избавляя разработчика от необходимости использования API для прямого обращения к хранилищу. Данные запрашиваются только когда они необходимы, а для увеличения пропускной способности применяется техника агрегирования нескольких запросов. При обновлении данных в хранилище автоматически обновляется и представление данных в приложении. Код открыт (https://github.com/facebook/relay) под лицензией BSD.
- Открыт (https://code.facebook.com/posts/215238872297197/building-vir.../) код библиотеки React VR (https://facebook.github.io/react-vr/), предназначенной для разработки на языке JavaScript web-приложений, связанных с виртуальной реальностью, используя декларативный стиль программирования React и React Native. React VR построен поверх API WebGL и WebVR и включает компоненты для формирования 3D-сцен, комбинируя 3D-модели и сферические панорамы в режиме 360-градусов с обычным двумерным интерфейсом, текстом и изображениями. Код поставляется (https://github.com/facebook/react-vr) под лицензией BSD.
URL: https://code.facebook.com/posts/1005990452878946/facebook-op.../
Новость: http://www.opennet.dev/opennews/art.shtml?num=46408