TGViewer
Стас Ильин | Flutter Стас Ильин | Flutter @frezycode · 3.39K subscribers
Post #768 3.97K

Forwarded from Flutter and chill

Объединение потоков во Flutter

👀 Недавно вышло видео с интригующим названием The great thread merge, где мистер Craig рассказывает о прошлом и будущем флаттера в контексте потоков (threads).

🔜 Как было: Раньше между платформенным потоком и UI существовал разрыв, из-за чего все обращения к апи нативной платформы с использованием Platform Channels были асинхронными. Каждый вызов сопровождался сериализацией данных, переключением контекста и ожиданием ответа - даже если нативная функция возвращала результат мгновенно.

🔥 С версии 3.29 ситуация изменилась: Dart-код теперь исполняется в том же потоке, что и платформенный UI. Это означает, что вызовы нативных функций могут быть синхронными, без необходимости оборачивать их в Future. Типобезопасность теперь обеспечивается механизмом FFI (Foreign Function Interface) и инструментом ffigen, который генерирует Dart-биндинги к C-API.

⚡️ На практике это открывает новые возможности: плагины могут быть переписаны так, чтобы вызовы типа получения уровня батареи, статуса сети или доступа к датчикам возвращали значение сразу. Виджеты становятся проще - вместо StatefulWidget можно обойтись обычным StatelessWidget, если данные доступны синхронно.

🧑‍💻 Сейчас возможно отключить объединение потоков на Windows и macOS используя флаг:

project.set_ui_thread_policy(flutter::UIThreadPolicy::RunOnSeparateThread)

Попыталась найти аналогичный для мобильных платформ, но оказалось что он уже выпилен 🥹

🧑‍💻 Это серьезное архитектурное изменение, которое позволит писать больше Dart кода, но не стоит забывать о производительности: тяжёлые операции должны выноситься в изоляты, иначе они заблокируют UI 🔪
YouTube The great thread merge Dive deep into Flutter's thread merge, a fundamental shift in its engine design aimed at enhancing native interoperability. Craig breaks down the roles of the UI and Raster threads, introduces the native platform thread, and explains how integrating Dart…
  • 🔥 31
  • 💅 5
  • ❤ 4
  • 🏆 1
More from @frezycode
  1. Sep 23, 2026JavaScript - язык имбицилов
  2. Sep 21, 2026🤖 "За 4 минуты можно собрать демо. На настоящий продукт всё равно уйдут месяцы" Посмотрел…
  3. Sep 21, 2026Post #963
  4. Sep 16, 2026Щас попросил у ИИ сделать описание и оценку по задаче Задача, по-сути: параметр из одной р…
  5. Sep 14, 2026👩‍💻 С Днем Программиста - Вымирающей профессии Последнее время мне не давал покоя вопрос…
  6. Sep 10, 2026🎰 О, а я придумал как адаптиовать приложения под новый iPhone Ещё и доход с прилы вырасте…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →