Очевидно, что flutter - это фреймворк для запуска приложений на iOS
и Android
с использованием одной кодовой базы. Но как это удается сделать? Будет ли он компилироваться в нативный код, или в процесс вовлечен язык среднего уровня или виртуальная машина? Я попытался прочитать часть исходного кода на Github, но не смог ничего найти.
Флаттер - Как это работает за кулисами?
Ответ 1
Исходный код Dart скомпилирован в собственный код с использованием функции корреляции Dart AoT. По-прежнему требуется, чтобы Dart VM выполнялся, но код скомпилирован в собственный код раньше времени, потому что iOS не позволяет динамическую компиляцию.
Flutter также может вызывать Android и использовать функции Android, доступные только на Java. Flutter поддерживает создание пользовательских плагинов, которые позволяют вызывать собственный код платформы.
Ответ 2
Позвольте мне объяснить с помощью этой диаграммы:
Flutter построен с использованием языка программирования Dart. Флаттер имеет 2 основных компонента:
- Флаттер Фреймворк.
- Флаттер SDK.
Flutter Framework использует Dart в качестве языка программирования, а Framework имеет набор служебных функций, с помощью которых вы можете добавлять элементы пользовательского интерфейса и виджеты в свое приложение Flutter.
А Flutter SDK позволяет создавать, развертывать и настраивать приложения Flutter.
Флаттер использует дротик
Потому что Dart - это строго типизированный объектно-ориентированный язык программирования. И у этого есть особенности Опережающей компиляции времени и Компиляции Just in Time.
За счет предварительной компиляции Flutter SDK и Dart могут создавать собственный код ARM, который можно скомпилировать на Android и iOS.
Более подробно вы можете посмотреть это видео: как работает Flutter и почему Flutter использует Dart