Today marks the first day of F8 2017, where more than 4,000 people gathered in San Jose to learn about Facebook's latest technologies and tools for developers. We announced several new open source projects today that improve app experiences for both users and engineers. With modern frameworks, we can support richer, more immersive experiences like augmented reality, even on low-power devices.
Litho
Today we open-sourced Litho, a new declarative framework for efficient UIs on Android. Every month, more than 1 billion people use Facebook for Android, often on typical devices over slow or inconsistent network connections, and we wanted to provide a best-in-class experience for everyone regardless of how they access our Android products. Litho uses a declarative API to define a user interface out of individual components. It seamlessly prepares UI components ahead of time, runs layout code in background threads, and renders incrementally to provide the best experience for users. We've already started rolling out Litho across our Android apps, including the main Facebook app, Facebook Lite, Messenger, and Workplace, and have seen up to a 35 percent improvement in scroll performance. We're excited to open-source Litho and hope to enable Android developers everywhere to develop more efficient UIs while writing simpler code.
React Fiber
As our apps have grown more and more complex, and in order to support low-end mobile devices, we've been exploring some fundamental changes to React. React Fiber is a complete, backwards compatible rewrite of the React core which enables sophisticated scheduling of rendering work. In the short term it will unlock new developer facing features like comprehensive error boundaries, the ability to return arrays and strings from render, and more descriptive error messages and stack traces. In the long term, Fiber will serve as a new foundation on top of which the next several years of improvements and innovation will come, making it easier to build high-quality web and native mobile apps.
Relay Modern
We released Relay Modern, a new version of our JavaScript framework for building data-driven applications. Relay Modern is the culmination of our five years of experience building GraphQL clients for multiple platforms, and embraces the declarative nature of GraphQL and static analysis to deliver high performance and an intuitive developer experience. Relay Modern retains the best parts of Relay today — colocated view components with their data-dependencies, automatically updating views as their data changes, and using declarative data-fetching — while extending it to offer new features such as local state, cache eviction, GraphQL subscriptions, and more.
Relay Modern is also designed as a suite of modular tools that can form the foundation of a GraphQL client ecosystem: An optimizing GraphQL compiler that can efficiently regenerate code artifacts, a view-agnostic core runtime that can be integrated into React and other view libraries, and an easy-to-use React API.
React VR
We also open-sourced React VR, a new library that will allow developers everywhere to build compelling experiences for VR. Expanding on the declarative programming style of React and React Native, React VR allows anyone with an understanding of JavaScript to rapidly build and deploy VR experiences using standard web tools.
For a full recap of everything announced today, you can check out today's keynotes from Mark and others here, as well as find videos of all the engineering and open source talks at fbf8.com.