The Functional Programming Concepts in Facebook's Mobile Apps
In this talk, Adam will detail how his team -- who historically used a traditional imperative programming paradigm for rendering News Feed -- encountered spiraling complexities and declining reliability and decided to make the challenging shift to functional, both to the data model and the view layer of News Feed. Adam will walk through the nuances his team faced and the solutions that stemmed from certain challenges. Specifically, he will dive into why his team found it easier to manage and reason about deeply-immutable data structures, and how the team decided to make the shift to a functional framework -- not just for data models, but all the way to the view layer. Adam will walk through the many challenges his team faced and the benefits of the new framework: deeply-immutable data structures that are easier to reason about, a defined flow for state changes enabling greater reliability, and improved testability. This talk will include an inside look at actual APIs and patterns used to render News Feed on iOS.