Flutter 2(2)

在之前版本的 Flutter 中,platform view 会立即创建一个新的画布,每个额外的平台视图都会添加另一个画布,可是创建额外的画布是很昂贵的,因为每个画布都是整个窗口的大小。

所以该版本会复用早期平台视图创建的画布,这意味着开发者可以在 HtmlElementView 的 Web 应用中拥有多个实例而不会降低性能,同时还可以减少使用平台视图时的滚动卡顿。

WebView 3.0


这次 webview_flutter 的另一个新版本是,这里提高了版本号,是因为新功能的数量增加了,而且还因为 Web 视图在 Android 上的工作方式可能发生了重大变化

在之前的版本中, webview_flutter 的 hybrid composition 模式已经可用,但并不是默认设置。

hybrid composition 修复了先前默认 virtual displays 模式存在的许多问题,根据用户反馈和问题跟踪的结果,我们认为是时候让 hybrid composition 成为默认设置了,另外 webview_flutter 还增加了一些要求很高的功能:

此外在 3.0 版本中,webview_flutter 为新平台提供了初步支持:web,这个支持允许开发者从单个代码库构建 mobile 和  web 应用,在 Flutter Web 应用程序中托管 Web 视图是什么样的?从代码的角度来看它看起来是一样的:

import ‘package:flutter/foundation.dart’;

import ‘package:flutter/material.dart’;

import ‘package:webview_flutter/webview_flutter.dart’;

import ‘package:webview_flutter_web/webview_flutter_web.dart’;

void main() {

runApp(const MaterialApp(home: HomePage()));

}

class HomePage extends StatefulWidget {

const HomePage({Key? key}) : super(key: key);

@override

State createState() => _HomePageState();

}

class _HomePageState extends State {

@override

void initState() {

super.initState();

// required while web support is in preview

if (kIsWeb) WebView.platform = WebWebViewPlatform();

}

@override

Widget build(BuildContext context) => Scaffold(

appBar: AppBar(title: const Text(‘Flutter WebView example’)),

body: const WebView(initialUrl: ‘https://flutter.dev’),

);

}

在 Web上运行时它也会按开发者的预期工作:

请注意,其实当前的 webview_flutter for web 的实现还有许多限制,因为它是使用 构建的 iframe 实现的

它仅支持简单的 URL 加载,无法控制加载的内容或者和加载的内容交互

有关更多信息,请查看 webview_flutter_web Readme

但是 webview_flutter_web 由于太收欢迎,我们将作为 未经认可的插件提供,如果你想尝试一下,请将以下行添加到 pubspec.yaml 中:

dependencies:

webview_flutter: ^3.0.0

webview_flutter_web: ^0.1.0 # add unendorsed plugin explicitly

Flutter Favorites


Flutter Ecosystem Committee 生态系统委员会再次召开会议,指定以下 Flutter Favorites 包:

特定于平台的软件包

=========

如果你是软件包作者,必须选择哪些平台是将支持的,如果正在使用特定于平台的本机代码构建插件,可以使用pluginClass项目中的属性来实现,属性pubspec.yaml指示提供功能的 native 类:

flutter:

plugin:

platforms:

android:

package: com.example.hello

pluginClass: HelloPlugin

ios:

pluginClass: HelloPlugin

但是随着 Dart FFI 变得更加成熟,可以像 path_provider_windows 包一样在 100% Dart 中实现用于特定平台的功能,所以当没有任何本机类可以使用,但你仍想将你的包指定为仅支持某些平台时,请改用该dartPluginClass 属性:

flutter:

plugin:

implements: hello

platforms:

windows:

dartPluginClass: HelloPluginWindows

使用这个配置后,即使没有任何 native 代码,也已将包指定为仅支持某些平台,另外还必须提供 Dart 插件类;可以在 flutter.dev 上的 Dart-only 平台实现文档中了解更多信息。

Firebase


关于它的一系列升级和更新,很大一块,反正国内用不上,懒得写了

Desktop


Flutter 2.8 版本在 Windows、macOS 和 Linux 稳定版本的道路上又迈出了一大步。 包括国际化和本地化支持,如最近的 中文IME支持、韩语IME支持和汉字IME支持。

一个为稳定版本准备的例子:完全重构 Flutter 处理键盘事件以允许同步响应,这使 Widget 能够处理按键并取消其在 tree 的其余部分中传播。

最初是在 Flutter 2.5 和 Flutter 2.8 中添加了对问题的回归和修复,这是重新设计处理特定于设备的键盘输入的方式,重构 Flutter 处理文本编辑方式来达到补充的目的,所有这些都是键盘输入密集型桌面应用程序所必需。

此外我们会继续扩展 Flutter 对视觉密度的支持并为对话框公开对齐方式,以实现更加桌面友好的 UI。

最后 Flutter 团队并不是唯一一个在 Flutter 桌面上工作的人,举个例子,Canonical 的桌面团队正在与 Invertase 合作,在 Linux 和 Windows 上实现最流行的 Flutter Firebase 插件。

DartPad


DartPad 的改进,其中最大的改进是对更多包的支持,事实上现在有 23 个包可供导入,除了几个 Firebase 服务,该名单包含常用软件如 bloccharacterscollectiongoogle_fonts,和 flutter_riverpod ,DartPad 团队会继续添加新的软件包,因此如果想查看当前支持哪些软件包,请单击右下角的信息图标。

还有另一个新的 DartPad 功能也非常方便。以前 DartPad 总是运行最新的稳定版本,在此版本中可以使用状态栏中的新频道菜单,来选择最新的 Beta 频道版本以及之前的稳定版本(称为“旧频道”)。

Removing the dev channel


Flutter “channel” 控制着底层 Flutter 框架和引擎在你的开发机器上变化的速度,Stable 代表最少的问题,而 master 代表最多。

由于资源限制,我们最近停止更新 dev channel。虽然为此我们确实收到了一些关于此的问题,但我们发现只有不到 3% 的 Flutter 开发人员使用该dev渠道。

因此我们决定正式退役的进程dev渠道,因为很少有开发人员使用 dev 频道,但 Flutter 工程师需要花费大量时间和精力来维护它。

你可以使用该 flutter channel 命令决定想要哪个频道,以下是 Flutter 团队对每个频道的看法:

  • stable频道代表我们拥有的最高质量的构建。它们每季度(大致)发布一次,并针对中间的关键问题进行热修复,这就是“慢”通道:安全、成熟、长期服务。

  • beta 频道为那些习惯于更快节奏的人提供了一种快速移动的替代方案。目前每月发布。

  • master 频道是我们活跃的开发频道,我们不提供对该频道的支持,但我们针对它运行了一套全面的单元测试。

dev 在未来几个月停用该频道时,请考虑 betamaster 频道,具体取决于对问题的容忍度以及对最新和最好的需求。

【附】相关架构及资料

源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,和技术大牛一起讨论交流解决问题。

image

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
在未来几个月停用该频道时,请考虑 betamaster 频道,具体取决于对问题的容忍度以及对最新和最好的需求。

【附】相关架构及资料

源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,和技术大牛一起讨论交流解决问题。

[外链图片转存中…(img-V79cVQKV-1714808727906)]

《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 11
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值