Flutter 2025 Roadmap

2025
这个路线图是有抱负的。它主要代表了我们这些在谷歌工作的人收集的内容。到目前为止,非Google贡献者的数量超过了谷歌雇佣的贡献者,所以这并不是一个详尽的列表,列出了我们希望今年Flutter能够出现的所有令人兴奋的新事物!在软件业务中,总是很难准确地预测工程工作——对于开源项目更是如此。所以请注意,我们在这里所涵盖的是一个意向声明,而不是一个保证。
可访问性:
2024年,我们完成了移动平台(iOS和Android)可访问性的几个关键用例的验证。在2025年,我们计划进一步关注web平台的可访问性支持。
性能表现:
我们继续关注Impeller的质量和性能。我们计划通过移除iOS上的Skia后端来完成向Impeller的iOS迁移。在Android上,我们关注的是现代Android设备,特别是那些支持Android api级别29或更高版本的设备,我们希望将Impeller作为默认值。我们在2024年看到了旧设备上的问题,现在,我们希望在这些设备上继续支持Skia。
移动(Android和iOS)平台:
我们将继续更新iOS,支持即将发布的iOS 19和Xcode 17版本,并完成对Swift PackageManager (SwiftPM)的支持。我们预计SwiftPM将在2025年晚些时候成为默认选项。其次,我们将继续完善Cupertino的支持——那些符合苹果人机界面准则的小部件。在Android上,我们将研究即将发布的Android 16支持的一些主要功能。我们还希望将Gradlebuild逻辑从Groovy转移到Kotlin,并增加构建工具的单元测试覆盖率。在iOS和Android上,互操作性对于与平台原生代码进行交互至关重要。我们希望继续我们的实验工作,以支持直接从Dart调用到Objective C和Swift代码(iOS),以及Java和Kotlin (Android)。这还包括调用只能在主操作系统/平台线程上调用的api。
Web平台:
在2024年,我们在性能和质量上取得了巨大的进步(如应用大小的减小,更好地使用多线程和改进的应用加载时间)。在2025年,我们计划对Flutter web的核心进行进一步改进。这包括可访问性、文本输入、国际文本呈现、大小、性能和平台集成。我们还希望通过编译Wasm/WebAssembly来继续提高Web性能。支持JS和Wasm编译的新的Dart JS互操作机制已经完成。接下来,我们计划在2025年移除遗留的HTML和JS库(参见重大变更公告)。最后,我们在支持网络热重载方面取得了不错的进展,并希望在2025年推出。
桌面平台:
谷歌的Flutter团队将在2025年专注于移动和web支持,而Canonical的Flutter团队将继续投资于桌面平台,如Windows、macOS和Linux。在2024年,我们登陆了桌面的多视图渲染。2025年,Canonical计划进一步改进对可访问性、键盘、文本输入和焦点的多窗口支持。Canonical还计划在窗口api方面取得进展。
核心框架
我们正在调查一些变化,目标是减少Flutter小部件代码中不必要的冗长。
工具套件和人工智能
我们將继续集成人工智能解决方案,为核心编提任务提供人工智能帮助。
我们将继续投资于我们的工具套件,其中包括Flutter DevTools,VS code,Android Studio/IntelliJ和IDX。此外,我们将继续努力,始终改善编辑刷新周期和整体开发人员体验。
Dart编程语言
在2024年,我们得出结论,在Dart中支持宏是不可行的。基于此,在2025年,我们预计将改进build_runner中当前对代码生成的支持,井研究改进Dart对序列化和反序列化支持的替代方法。
我们还希望发布一个或多个目前正在通过Dart语言设计漏斗的语言特性。
Dart编译器和工具
我们计划重构Dart分析器和前端编译器,分享更多它们的实现,这样可以加速未来的语言特性开发、性能和稳定性。
我们还计划研究对交叉编译Dart AOT可执行文件的支持(例如,在macOS开发机器上编译成Linux AOT可执行文件)。
正式版本
我们计划在2025年期间发布4个稳定版本和12个测试版,与2024年类似。为了提高这些版本的可预测性和规律性,并减少稳定版本中的回归,我们将在进一步的測试覆盖上进行投资。
我们还将进行投资,以提高我们的能力,加快任何需要的热修复/补丁版本的发布。
非目标
我们仍然不打算投资于对代码推送或热更新的内置支持。对于代码推送,我们在Shorebird.dev的朋友可能会提供感兴趣的产品。对于UI推送(也称为服务器驱动UI),我们推荐使用rfw包。
我们也不打算增加任何额外支持的平台。
原文链接:https://github.com/flutter/flutter/blob/master/docs/roadmap/Roadmap.md
https://github.com/flutter/flutter/blob/master/docs/roadmap/Roadmap.md
相关文章:
Flutter 2025 Roadmap
2025 这个路线图是有抱负的。它主要代表了我们这些在谷歌工作的人收集的内容。到目前为止,非Google贡献者的数量超过了谷歌雇佣的贡献者,所以这并不是一个详尽的列表,列出了我们希望今年Flutter能够出现的所有令人兴奋的新事物!在…...
[数据结构]排序 --2
目录 8、快速排序 8.1、Hoare版 8.2、挖坑法 8.3、前后指针法 9、快速排序优化 9.1、三数取中法 9.2、采用插入排序 10、快速排序非递归 11、归并排序 12、归并排序非递归 13、排序类算法总结 14、计数排序 15、其他排序 15.1、基数排序 15.2、桶排序 8、快速排…...
第16届蓝桥杯c++省赛c组个人题解
偷偷吐槽: c组没人写题解吗,找不到题解啊 P12162 [蓝桥杯 2025 省 C/研究生组] 数位倍数 题目背景 本站蓝桥杯 2025 省赛测试数据均为洛谷自造,与官方数据可能存在差异,仅供学习参考。 题目描述 请问在 1 至 202504ÿ…...
记一次InternVL3- 2B 8B的部署测验日志
1、模型下载魔搭社区 2、运行环境: 1、硬件 RTX 3090*1 云主机[普通性能] 8核15G 200G 免费 32 Mbps付费68Mbps ubuntu22.04 cuda12.4 2、软件: flash_attn(好像不用装 忘记了) numpy Pillow10.3.0 Requests2.31.0 transfo…...
Android PowerManager功能接口详解
PowerManager 是 Android 系统中用于管理设备电源状态的核心服务,开发者可以通过它控制设备的唤醒、休眠、屏幕亮灭等行为。以下是对 PowerManager 核心功能接口的详细说明,包含使用场景、注意事项和代码示例。 1. 获取 PowerManager 实例 通过 Context…...
使用SSH解决在IDEA中Push出现403的问题
错误截图: 控制台日志: 12:15:34.649: [xxx] git -c core.quotepathfalse -c log.showSignaturefalse push --progress --porcelain master refs/heads/master:master fatal: unable to access https://github.com/xxx.git/: The requested URL return…...
Tauri 2.3.1+Leptos 0.7.8开发桌面应用--Sqlite数据库的写入、展示和选择删除
在前期工作的基础上(Tauri2Leptos开发桌面应用--Sqlite数据库操作_tauri sqlite-CSDN博客),尝试制作产品化学成分录入界面,并展示数据库内容,删除选中的数据。具体效果如下: 一、前端Leptos程序 前端程序主…...
关于 Java 预先编译(AOT)技术的详细说明,涵盖 GraalVM 的配置、Spring Boot 3.x 的集成、使用示例及优缺点对比
以下是关于 Java 预先编译(AOT)技术的详细说明,涵盖 GraalVM 的配置、Spring Boot 3.x 的集成、使用示例及优缺点对比: 1. 预先编译(AOT)技术详解 1.1 核心概念 AOT(Ahead-of-Time)…...
《车辆人机工程-》实验报告
汽车驾驶操纵实验 汽车操纵装置有哪几种,各有什么特点 汽车操纵装置是驾驶员直接控制车辆行驶状态的关键部件,主要包括以下几种,其特点如下: 一、方向盘(转向操纵装置) 作用:控制车辆行驶方向…...
使用多进程和 Socket 接收解析数据并推送到 Kafka 的高性能架构
使用多进程和 Socket 接收解析数据并推送到 Kafka 的高性能架构 在现代应用程序中,实时数据处理和高并发性能是至关重要的。本文将介绍如何使用 Python 的多进程和 Socket 技术来接收和解析数据,并将处理后的数据推送到 Kafka,从而实现高效的…...
Redis 哨兵模式 搭建
1 . 哨兵模式拓扑 与 简介 本文介绍如何搭建 单主双从 多哨兵模式的搭建 哨兵有12个作用 。通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。 当哨兵监测到master宕机,会自动将slave切换成master,然后通过…...
【网络安全 | 项目开发】Web 安全响应头扫描器(提升网站安全性)
原创项目,未经许可,不得转载。 文章目录 项目简介工作流程示例输出技术栈项目代码使用说明项目简介 安全响应头是防止常见 Web 攻击(如点击劫持、跨站脚本攻击等)的有效防线,因此合理的配置这些头部信息对任何网站的安全至关重要。 Web 安全响应头扫描器(Security Head…...
构建灵活的接口抽象层:支持多种后端数据存取的实战指南
构建灵活的接口抽象层:支持多种后端数据存取的实战指南 引言 在现代软件开发中,数据存取成为业务逻辑的核心组成部分。然而,由于后端数据存储方式的多样性(如关系型数据库、NoSQL数据库和文件存储),如何设计一套能够适配多种后端数据存取的接口抽象层,成为技术团队关注…...
计算机的发展及应用
一、计算机的发展历程 计算机的发展经历了从机械计算到电子计算的跨越,其核心驱动力是 硬件技术革新 和 体系结构演进,大致可分为以下阶段: 1. 前电子计算机时代(19世纪-20世纪40年代) 机械计算装置: 16…...
深入理解linux操作系统---第4讲 用户、组和密码管理
4.1 UNIX系统的用户和组 4.1.1 用户与UID UID定义:用户身份唯一标识符,16位或32位整数,范围0-65535。系统用户UID为0(root)、1-999(系统服务),普通用户从1000开始分配特殊UID&…...
【NLP】18. Encoder 和 Decoder
1. Encoder 和 Decoder 概述 在序列到序列(sequence-to-sequence,简称 seq2seq)的模型中,整个系统通常分为两大部分:Encoder(编码器)和 Decoder(解码器)。 Encoder&…...
Npfs!NpFsdCreate函数分析之从NpCreateClientEnd函数分析到Npfs!NpSetConnectedPipeState
第一部分: 1: kd> g Breakpoint 5 hit Npfs!NpFsdCreate: baaecba6 55 push ebp 1: kd> kc # 00 Npfs!NpFsdCreate 01 nt!IofCallDriver 02 nt!IopParseDevice 03 nt!ObpLookupObjectName 04 nt!ObOpenObjectByName 05 nt!IopCreateFile 06…...
基于PySide6与pycatia的CATIA绘图比例智能调节工具开发全解析
引言:工程图纸自动化处理的技术革新 在机械设计领域,CATIA图纸的比例调整是高频且重复性极强的操作。传统手动调整方式效率低下且易出错。本文基于PySide6+pycatia技术栈,提出一种支持智能比例匹配、实时视图控制、异常自处理的图纸批处理方案,其核心突破体现在: 操作效…...
STM32硬件IIC+DMA驱动OLED显示——释放CPU资源,提升实时性
目录 前言 一、软件IIC与硬件IIC 1、软件IIC 2、硬件IIC 二、STM32CubeMX配置KEIL配置 三、OLED驱动示例 1、0.96寸OLED 2、OLED驱动程序 3、运用示例 4、效果展示 总结 前言 0.96寸OLED屏是一个很常见的显示模块,其驱动方式在用采IIC通讯时,常用软件IIC…...
Spring Bean的创建过程与三级缓存的关系详解
以下以 Bean A 和 Bean B 互相依赖为例,结合源码和流程图,详细说明 Bean 的创建过程与三级缓存的交互。 1. Bean 的完整生命周期(简化版) #mermaid-svg-uwqaB5dgOFDQ97Yd {font-family:"trebuchet ms",verdana,arial,sa…...
IDEA 调用 Generate 生成 Getter/Setter 快捷键
快捷键不会用? 快捷键:AltInsert 全选键:CtrlA IDEA 调用 Generate 生成 Getter/Setter 快捷键 - 爱吃西瓜的番茄酱 - 博客园...
泛型的二三事
泛型(Generics)是Java语言的一个重要特性,它允许在定义类、接口和方法时使用类型参数(Type Parameters),从而实现类型安全的代码重用。泛型在Java 5中被引入,极大地增强了代码的灵活性和安全性。…...
编程思想——FP、OOP、FRP、AOP、IOC、DI、MVC、DTO、DAO
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...
实现一个动态验证码生成器:Canvas与JavaScript的完美结合
验证码(CAPTCHA)是现代网站中常见的安全机制,用于区分人类用户和自动化程序。本文将详细介绍如何使用HTML5 Canvas和JavaScript创建一个美观且功能完整的验证码生成器。 一、核心功能概述 这个验证码生成器具有以下特点: 随机生…...
python中 “with” 关键字的取舍问题
自动管理资源(自动关闭文件) 当你使用 with 打开文件时,文件会在 with 代码块结束后自动关闭,无论是否发生异常。这意味着你不需要显式地调用 f.close() 来关闭文件 示例: with open("words.txt", "r…...
【区块链安全 | 第三十九篇】合约审计之delegatecall(一)
文章目录 外部调用函数calldelegatecallcall 与 delegatecall 的区别示例部署后初始状态调用B.testCall()函数调用B.testDelegatecall()函数区别总结漏洞代码代码审计攻击代码攻击原理解析攻击流程修复建议审计思路外部调用函数 在 Solidity 中,常见的两种底层外部函数调用方…...
Nginx部署spa单页面的小bug
没部署过,都是给后端干的,自己尝试部署了一个下午终于成功了 我遇到的最大的bug是进入后只有首页正常显示 其他页面全是404,于是问问问才知道,需要这个 location / { try_files $uri $uri/ /index.html; } 让…...
linux多线(进)程编程——(6)共享内存
前言 话说进程君的儿子经过父亲点播后就开始闭关,它想要开发出一种全新的传音神通。他想,如果两个人的大脑生长到了一起,那不是就可以直接知道对方在想什么了吗,这样不是可以避免通过语言传递照成的浪费吗? 下面就是它…...
【愚公系列】《Python网络爬虫从入门到精通》050-搭建 Scrapy 爬虫框架
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...
信息安全管理与评估2021年国赛正式卷答案截图以及十套国赛卷
2021年全国职业院校技能大赛高职组 “信息安全管理与评估”赛项 任务书1 赛项时间 共计X小时。 赛项信息 赛项内容 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 平台搭建与安全设备配置防护 任务1 网络平台搭建 任务2 网络安全设备配置与防护 第二…...
