1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/CarGuo-GSYFlutterBook

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
issue.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 00:06 5767d61

Прогресс популярных задач и дорожной карты Flutter за первый квартал 2024 года и немного личных впечатлений

После недавних событий, связанных с публикацией "Flutter: Я слышал, что ты недавно говорил всем, что я распустился?", многие стали интересоваться текущими прогрессами Flutter. В данной статье будет сделана краткая сводка наиболее важных задач и дорожной карты за прошедший квартал, а также будут приведены некоторые личные мысли после прочтения комментариев и сообщений.

iOS Приватность

О новых требованиях Apple к спискам приватности, начиная с мая, возможно, вы уже знаете. Если нет, вот подробное объяснение:

С учетом последних новостей, начиная с 1 мая, новые требования будут применяться только к динамическим фреймворкам, но ожидается, что требования к статической сборке плагинов вернутся в будущем. Это снижает требования к адаптации Flutter Plugin, если они не находятся в списке требований для сторонних SDK:

image-20240508075803090

Невидимость элементов TLHC в Android 14

В Android 14 произошли изменения, связанные с невидимостью элементов TLHC (Top-Level Home Component).Эта проблема была представлена в #146499 и исправлена. Она возникла из #139039 как специфический для Samsung вопрос, связанный с неправильным отображением PlatformView. Затем проблема была перенесена на #146499 как баг системы Android 14.Интересным моментом было то, что сторонние разработчики считали это ошибкой Samsung, которую можно было бы ожидать от производителя, хотя она уже была исправлена в Android 15. Эти заявления привели к тому, что обсуждение было заблокировано для успокоения участников.

Наконец, официально было установлено, что на платформе Android 14 действительно существует системный баг, при котором PlatformView прекращает получать информацию о рисовании от Android во время очистки памяти, что приводит к прозрачному состоянию элемента, хотя он остаётся активным для взаимодействия. Этот набор условий не является уникальным для Flutter, так как используемые API также могут вызывать проблемы для нативных приложений Android. Основной причиной текущей проблемы является недостаток памяти, поэтому она возникает в фоновом режиме. С версии Flutter 3.19 платформа больше не кэширует последнюю кадровую информацию для PlatformView и не отрисовывает её при восстановлении, что привело к данной ситуации.

В качестве временного решения PR рекомендовано добавить вызовы getPlatformViewsController().onResume() и resetSurface(), а также сообщено, что команда Flutter уже начала сотрудничество с командой Android для внедрения исправлений в Android 14:

image4

Множественные окнаЭто печальная новость. После того как менеджеры проекта по работе с ПК покинули свои должности прошлым летом, прогресс в этом направлении замедлился. Одним из самых популярных требуемых функций было множественное окно, которое в настоящее время приостановлено. Личное мнение автора указывает на связь между этим решением и финансовыми проблемами компании, поскольку большинство проектов Google сейчас сталкиваются со сокращением штата. В условиях отсутствия значительных движений в Flutter для ПК за последние полгода, дальнейшее снижение ресурсов для обеспечения выполнения основных задач становится неизбежностью. Хорошо, теперь можно продолжить прогнозировать негативное развитие событий 😏.

image5

Многие пользователи Flutter для ПК отказываются от использования из-за отсутствия возможности работы с несколькими окнами.

Живое обновление

Как один из создателей Flutter, Эрик после ухода из компании продолжил работу над проектами, связанными с Flutter. Недавно он представил версию 1.0 своего проекта Shorebird, который официально поддерживает живое обновление Flutter на устройствах Android и iOS.

image6Эрик отметил, что Shorebird, будучи инструментом для живого обновления Flutter, работает в соответствии с политиками App Store компании Apple и Google Play, обеспечивая высокую производительность даже после применения патчей, так как он не использует горячую перезагрузку (или JIT-компилятор Dart), а реализует специальный интерпретатор Dart.> Shorebird существует как ветка Flutter, где добавлены функции отправки кода, но это не замена Flutter, а замена его движка. Хотя это выглядит хорошо, стоит отметить, что это платное решение.

Skwasm

О Wasm Native ранее были статьи, подробнее можно прочитать здесь:

  • Flutter будет прекратить использование Html renderer

  • Wasm Native скоро будет доступен. На самом деле это также умное решение для проекта Flutter Web — «уметь делать выборы и использовать ресурсы». Когда было принято решение развивать нативную реализацию Dart в Wasm, было решено продвигать передовую технологическую способность Flutter Web. Независимо от того, будет ли конечный результат таким, как ожидалось, это связано с тем, что участие в развитии WasmGC не ограничивается только потребностями Flutter Web. Поэтому ему удается привлекать внимание и ресурсы.

imageПри этом, чтобы лучше «концентрировать» ресурсы, было вынесено предложение отказаться от Html_Renderer в Flutter Web, что, конечно же, вызвало множество протестов со стороны пользователей. В конце концов, реализация skwasm пока еще имеет немало реальных проблем. Однако как решение направления, лично мне кажется это хорошим шагом для Flutter Web — преимущества Html_Renderer действительно невелики, а необходимость адаптации к большему количеству ресурсов делает этот выбор более привлекательным. По крайней мере, с текущей точки зрения, переход Flutter Web на Wasm_Native позволяет избежать ситуации, когда прогресс становится застрявшим, как это произошло с командой PC.

Последнее

Дополнительные будущие достижения и планы можно найти здесь: Flutter 2024 план развития. Также ближайший Google I/O уже скоро, если вас интересует эта тема, следите за ним: https://io.google/2024/intl/ru/

Отступление

Скажу немного отдельно, почему эти увольнения вызвали такой шум в сообществе Flutter? На самом деле, это связано с тем, что Flutter за последние годы стал объектом многочисленной критики. Интернет любит эмоциональность и суждение, а в техническом сообществе это ещё более распространено. Это нормальная ситуация, когда есть люди, которые высказывают своё мнение?

На данный момент, увольнения проектов из-за финансовых причин вполне естественны, снижение численности разработчиков, конечно, оказывает влияние, но ключевой вопрос заключается в том, остаются ли ключевые менеджеры продуктов. Почти все модули маршрута открытых проектов Google зависят от этих менеджеров, как, например, текущее положение Flutter PC является типичным примером.

Как разработчик, мой личный подход всегда был таким, что разработчики обладают способностями к разработке, а не к использованию конкретных фреймворков. Карьера разработчика представляет собой последовательность выбора различных фреймворков, а не полное доверие всей карьеры одному фреймворку.По моему мнению, это именно такая установка, которая полностью зависит от одного фреймворка, порождает различные "чувства любви и ненависти". Независимо от того, это Cordova, React Native, uni-app или Flutter, даже native и frontend, легко могут стать жертвами таких эмоций:

Прикрепляешь себе метку, ограничивая себя только этим фреймворком, чтобы выжить, и начинаешь его защищать и отвергать всё остальное.

Мне кажется, что это источник тревоги, если ты работаешь в сфере цифрового контента, достаточно просто использовать эту "точку" для создания волнений, и любой маленький шаг может вызвать общественный резонанс. За эти годы я действительно редко говорю об этом, а также редко спорю с людьми о том, что правильно, а что нет. В конце концов, я не продаю курсы и не делаю рекламу, поэтому мне не нужны фолловеры в соцсетях или сообществах. Больше всего это просто записи и регулярные публикации, а убеждать других людей не приносит никакой полезной выгоды, за исключением случая, если есть слишком много свободного времени.

К тому же, достигнув этого возраста, уже нет такого эмоционального привязывания к какому-то конкретному фреймворку. Более того, выбор фреймворка зависит от удобства его использования, подходящего для командной работы, а также от того, какой фреймворк лучше всего подходит для текущих задач.При回头看看过去这些年,从嵌入式系统、Android、Cordova、React Native、iOS、Weex、uni-app、Flutter到鸿蒙,基本上就是这么一路走来的。而这几年主要分享的内容集中在Flutter上,仅仅是因为当前业务需求更多的是使用Flutter。

对我来说,我的观点是:经过多年的工作经验后,我已不再认为自己必须“精通”或“忠诚”于某一架构,毕竟这些技术并没有很高的门槛,更重要的是开发能力、解决问题的能力以及项目管理能力。毕竟我认为,对于开发者而言,最有价值的经验并不是掌握某个框架的API数量

总之,放过自己,或许就能看到不同的世界?

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/CarGuo-GSYFlutterBook.git
git@api.gitlife.ru:oschina-mirror/CarGuo-GSYFlutterBook.git
oschina-mirror
CarGuo-GSYFlutterBook
CarGuo-GSYFlutterBook
master