Rendering mit Skia
Bei der Entwicklung von Flutter waren drei Ziele ausschlaggebend: Apps sollen eine visuell ansehnliche Oberfläche besitzen, performant ausgeführt werden und komfortabel zu entwickeln sein. Diese Ziele werden in erster Linie durch die Verwendung der Rendering Engine Skia, der baumartigen Strukturierung der Oberflächen-Elemente sowie den Einsatz der Programmiersprache Dart erreicht.
Im Gegensatz zu anderen Cross-Plattform-Tools verwendet Flutter für die Darstellung der Oberfläche eine eigene Rendering Engine namens Skia anstelle der nativen Bedienelemente des darunterliegenden Betriebssystems. Beim Start einer App fordert die Flutter Engine beim Betriebssystem eine weisse Zeichenfläche an. Auf diese Fläche zeichnet Skia anschliessend die grafischen Elemente, in Flutter Widgets genannt. Dank dieser eigenen, hoch-performanten Engine sind Flutter-Apps unabhängig vom darunterliegenden Betriebssystem und dessen grafischen Möglichkeiten. So lassen sich selbst visuell aufwendige Oberflächen inklusive komplexer Animationen plattformübergreifend gestalten. Google verspricht eine konstante Bildrate von mindestens 60 Bildern pro Sekunde bei Einhaltung der empfohlenen Programmierrichtlinien. Im Gegenzug muss die Engine aber als Teil jeder App ausgeliefert werden, wodurch der Speicherbedarf um einige Megabyte anwächst. Ferner übernehmen Flutter-Apps aufgrund des Verzichts auf die nativen Bedienelemente nicht automatisch den Look & Feel der darunterliegenden Plattform. Ist dies nötig, so kann mittels vorgefertigter Widgets der Android- oder iOS-Stil nachgeahmt werden. Hierbei ist zu berücksichtigen, dass eine mit iOS-Widgets gestaltete App auch bei der Ausführung auf Android diesen Stil besitzt. Unterschiedliche Oberflächen pro Plattform sind gegenwärtig nur mit mehrfacher Implementierung möglich.