На проходящей в эти дни конференции 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.me/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.me/opennews/art.shtml?num=46408
И опять джаваскриптерам есть куда бежать
Не читаю, а комменты пишу. Там первое совсем не JavaScript.
Зато три остальных...
>предназначенной для разработки на языке JavaScript web-приложений, связанных с виртуальной реальностьюМне жаль батареек этих VR очков.
Ахиллес и черепаха. Вечно бегущие JS-разрабы.
"Производительность прокрутки"
Да, появилась такая проблема с развитием всевозможных фреймворков.
Когда сравниваю HTC Sense на Android 2.3.5 с современными оболочками, кажется что современные тормозят больше, а делают меньше
"Проблема" появилась, когда появилась техническая возможность отказаться от постраничной навигации, которая с точки зрения UX зачастую весьма убога, в пользу псевдобесконечного скролла.
"Интерфейс формируется как набор отдельных компонентов, которые генерируются с упреждением, компонуются асинхронно в единое целое специальным фоновым потоком и отрисовываются по частям, не допуская возникновения блокировок и предоставляя всегда плавную прокрутку. "Вот какого хрена в DE для desktop-a так не делается?
Наверное потому, что DE для desktop-a написаны на языках аля C++? JS-ненавистники должны страдать.
Если что, это был сарказм. Правда, получилось не очень...
> JS-ненавистники должны страдать.Но Litho же на Java...
Лучше б они при нехватке ресурсов все эти анимашки, преерисовки и прокрутки на фиг отключали автоматом. А ещё лучше - чтобы и не включали.(глядит на свой ion3 ) хм, чего это я...
Litho - Интересно... это чьё "Лицо"? :) Этот проект наверное назвал выходец из русско говорящих стран?
Судя по всему, это отсылка к литографии.
> Этот проект наверное назвал выходец из русско говорящих стран?тогда бы он назывался Ruka Litso