Layout Engine: Facebook portiert CSS-Flexbox für native Apps

Das Layout sei ein wichtiger Teil beim Erstellen von Anwendungen, egal ob für das Web, Mobil- oder Desktop-Systeme, schreibt Facebook in der Ankündigung der Layout Engine Yoga(öffnet im neuen Fenster) . Das Problem dabei sei aber, dass das Layout auf allen Plattformen unterschiedlich gehandhabt wird. Yoga soll deshalb eine einheitliche und plattformübergreifende Lösung für eben dieses Problem bereitstellen.
Der Clou an Yoga(öffnet im neuen Fenster) ist, dass das System auf dem CSS3-Standard Flexbox(öffnet im neuen Fenster) basiert, der wohl bereits von vielen Designern und Entwicklern beherrscht wird. Mittels der flexiblen Boxen, kurz eben Flexbox, lassen sich die Größe von Elemente einer Oberfläche und deren Positionen zueinander so gestalten, dass sich diese an verschiedene Displaygrößen und Gerätekategorien anpassen können. Facebook nutzte die CSS-Umsetzung bereits in React Native, das es ermöglicht, native Apps mit Webtechniken zu erstellen.
Flexbox für Java, C# und Obj-C
Die Layout Engine Yoga sei der Neuanfang der bisher auf CSS beschränkten Technik, so dass mit Yoga tatsächlich auch Apps in den nativen Programmiersprachen verschiedener Systeme gestaltet werden können. Zur Geschwindigkeitsoptimierung habe das Team Yoga in der Sprache C verfasst, dementsprechend können auch in C geschriebene Programme auf Yoga zugreifen.
Für die plattformübergreifende Nutzung hat Facebook Anbindungen für die Sprachen Java, C# und Objective-C erstellt, so dass Yoga in nativen Anwendungen für Android, Windows und iOS genutzt werden kann. Facebook selbst nutzt Yoga für das bereits erwähnte React Native, für seine Android-Components(öffnet im neuen Fenster) sowie für das Oculus. Darüber hinaus plant das Team Yoga auch für Views in Instagram in iOS zu verwenden, ebenso soll Yoga in das Componentkit für iOS(öffnet im neuen Fenster) integriert werden.
Der Code von Yoga steht auf Github zum Download(öffnet im neuen Fenster) bereit und nutzt eine BSD-Lizenz. Zusätzlich dazu verwendet Facebook, wie bei vielen seiner eigenen Projekte, eine Patent-Lizenz.



