В Flutter есть несколько фраз типа «Все - это виджет!». Таким образом, все, что вы и все, что вы пишете выше MaterialApp, CupertinoApp и т. Д., Являются виджетами. Еще одна броская фраза: «Тебе больше не нужно отказывать своему дизайнеру», и в основном это говорит о том, что ты свободен.
В качестве точки входа у вас есть основной метод, вызывающий метод с именем runApp
void main() => runApp(SomeWidget());
Итак, если вы откроете документацию runApp, вы увидите инструкцию
Раздуйте заданный виджет и прикрепите его к экрану. Виджет имеет ограничения во время компоновки, которые заставляют его заполнять весь экран. ....
И объявление метода показывает, что он ожидает виджет, как можно увидеть здесь void runApp(Widget app)
.
На самом деле это показывает, что даже ваше приложение является виджетом , и вы даже можете запускать приложения в приложениях.
В любом случае, короче говоря, эти классы и все, что вы видите, есть готовые вспомогательные вещи, которые вы можете использовать (и в основном легко изменить), чтобы получить что-то родное и что-то приятное, что, возможно, ваш дизайнер говорит вам использовать.
Но с Flutter вы не привязаны только к этим классам, вы можете реализовать все так, как вы хотите (или ваш дизайнер хочет), и просто использовать это, потому что, в конце концов, все это виджет: )