在flutter 3对所有平台皆提供稳定支持后,官方仍持续积极更新发布flutter 3.3,这次总共整合了5,687个拉取请求,强化flutter web、桌面和文本处理的性能,并且在开发工具下功夫,更新go_router组件、devtools和vs code扩展组件。
flutter 3.3修正了过去flutter web应用程序选择文本,与用户预期行为不一致的问题,在传统的网页应用程序中,用户可以通过滑动手势,一次选取多个网页元素,但这件事情没有办法在flutter web应用程序上完成。而现在官方推出selectablearea小工具,任何selectablearea的子组件都能够被自由的选取,开发者只需要将路由主体(route body)以selectablearea小工具包起来,flutter便会处理剩下的工作。
触摸板的输入在flutter 3.3也更顺畅了,除了提供更丰富的控制,也减少特定情况出现误判,同时,flutter现在也支持用户在ipados上,以apple pencil进行手写输入。
官方改进flutter对富文本编辑的支持,3.3版本中的textinputplugin能够接受更精细的文本更新,过去textinputclient仅能传递新的编辑状态,无法在新旧之间增量更新,而新加入的texteditingdeltas和deltatextinputclient组件则补充了这项功能。借由增量更新,开发者可以构建具有范围样式的输入框,让最终用户在一段文本中,可以选择其中文本加上粗体会是斜体等样式。
flutter 2.10正式登陆windows桌面,但是之前windows桌面应用程序的版本,是由特定于windows桌面应用程序的文件设置,这个行为与其他平台设置版本的方法不一致,因此在flutter 3.3中,官方修正了这个问题,现在开发者可以从项目的pubspec.yaml文件,和构建参数中设置windows桌面应用程序版本,使windows桌面应用程序的更新更一致可预测。
由于应用程序有时候会因为设计而有复杂的页面导航需求,flutter 3.3扩展原生导航api,发布新版本go_router组件,开发者在设计行动、桌面和网页的路由逻辑,将会更简单。go_router为一个由flutter团队维护的组件,开发者通过声明式方法,可简单处理导航和深度连接,在这个最新版本,应用程序还能够使用异步程序代码,执行应用程序重定位。
官方也更新了flutter的vs code扩展组件,添加的更新包括改进相依项目的操作,用户可以使用dart一次添加多个逗号分隔的相依项目。在devtools方面则改进ux,资料表格的显示性能也获得提升。