Qconn

The Functional Programming Concepts in Facebook's Mobile Apps

The Functional Programming Concepts in Facebook's Mobile Apps

Time: 
Friday, 4:15pm - 5:05pm
Abstract: 

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.

Adam.Ernst's picture
As an engineer on the iOS team at Facebook New York, Adam Ernst helped relaunch the Facebook iOS app to use native code. Today he works on News Feed for iOS with a focus on building tools for other developers. Before joining Facebook, Adam was an independent iOS developer and created the iTrans series of mass transit apps (www.itrans.info). He studied computer science at Princeton University. @adamjernst