The evolution of Facebook’s iOS app architecture

Facebook för iOS (fbios) har genomgått en tioårig arkitektonisk evolution driven av behovet att stödja tusentals ingenjörer och miljarder användare, vilket resulterat i en unik kodbas med C++, Objective-C och Swift, samt omfattande användning av interna abstraktioner och kodgenerering. År 2014 ersattes Apples standardramverk Core Data och MVC-mönstret i News Feed med en egenutvecklad deklarativ UI-ramverk, ComponentKit (inspirerad av React), och en ny datamodell för att lösa tillförlitlighetsproblem och uppnå 50% prestandaförbättring. År 2015 ledde en "feature explosion" och en ökning av dagliga bidragsgivare till allvarliga problem med appens starttid, som kunde uppgå till nästan 30 sekunder. För att hantera den obegränsade tillväxten av starttiden började ingenjörerna 2016 flytta stora delar av produktkoden till dynamiska bibliotek (dylibs), vilket krävde en omprövning av hur kärnsystem fungerade och introducerade nya utmaningar med körtidsfel och länkfel. Utvecklingen av fbios-arkitekturen har varit en balansgång mellan att leverera en utmärkt användarupplevelse och att hantera komplexiteten för utvecklare, ofta genom att ersätta standardlösningar med egenutvecklad infrastruktur.