Die Grundidee von Flutter lautet: „Alles ist ein Widget“. Dabei wird die objektorientierte Programmierung bis in das User Interface umgesetzt. Alle Elemente wie z.B. Buttons oder auch Text sind Widgets, die ineinander verschachtelt aufgebaut sind. Diese lassen sich entsprechend verändern und können sich durch den verschachtelten Aufbau gegenseitig im Verhalten beeinflussen oder auf veränderte Bedingungen reagieren. Standardmäßig sind schon viele Widgets vorhanden mit denen sich gewünschte Anwendungen wie z.B. Apps programmieren lassen. Falls nötig können ebenso eigene Widgets erstellt werden, die sich wiederum alle mit einander kombinieren lassen. Dies macht Flutter zu einer sehr flexiblen aber auch sehr anspruchsvollen Entwicklungsumgebung.