

【技术圈】Flutter 1.12、Firefox 71、V8 8.0 一大把新特性来袭
source link: http://mp.weixin.qq.com/s?__biz=Mzg2NDAzMjE5NQ%3D%3D&%3Bmid=2247485141&%3Bidx=1&%3Bsn=8093a03b4ad10eda27c370f613e3ffcf
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

速览
-
Flutter 1.12发布
-
V8 发布 8.0 版本,内存占用量大幅下降
-
WICG引入了展现锁定,实现更快的Web渲染
-
Firefox 71 发布
-
360 加入 Ecma 参与 JavaScript 语言标准制定
Flutter 1.12 发布

Flutter 1.12
是 1.9.x
的版本在经历 6 次 hotfix
之后,才带来的 stable
大版本更新。该版本解决了 4571
个报错,合并了 1905
份 pr,同时本次发布也是 Flutter
一年内的第五个稳定版本。
框架

-
完全支持
iOS 13
暗色模式-
完全支持 iOS 13 主题模式是 Flutter 1.12 的一大亮点,包括支持 Cupertino 小部件的暗色模式。
-
为了让
Flutter App
看起来更像原生App
,我们还改进了滚动条保真度,提供了自适应的CupertinoAlertDialog
填充,并允许为CupertinoDatePicker
设定最小和最大日期限制。
-
-
支持将全屏
Flutter
实例添加到App
中-
提供了稳定的平台集成
API(Java、Kotlin、Objective-C 和 Swift)
,包括一组新的Android
平台API
-
可以在内嵌的
Flutter
模块里使用插件。
-

-
Flutter 1.12
的master、dev
和beta
都提供了改进的Web
支持。 -
对
macOS
的支持很快也会实现,目前正在从技术预览阶段进入到alpha
阶段,master
和dev
已经可用。
SDK
-
建议开发者将
Android
项目迁移到AndroidX
,SDK
的瘦身,增加了google_fonts
字体的支持等。 -
Android
插件的改进Android plugins APIs
,比以前更加简单明了,分割了FlutterPlugin and MethodCallHandler
,同时提供ActivityAware
、ServiceAware
作为独立支持。 -
新增加了不兼容的
breaking change
,比如:PageView
启用RenderSliverFillViewport
、WidgetsBinding
中的attachRootWidget
被替换为scheduleAttachRootWidget
-
增加
MediaQuery.systemGestureInsets
支持Android Q
的手势导航;
开发工具

-
DartPad
-
你可以在不安装任何东西的情况下尝试
Dart
的新特性。新版的DartPad
现在支持Flutter
-
-
Hot UI
-
如果你在本地安装了
Flutter
工具,就会在IntelliJ/Android Studio
的Flutter
插件中看到一个新的预览功能。你可以在IDE
中直接看到你正在开发的小部件。
-
-
Spuernova
-
在
Spuernova
中可以通过Sketch
文件就可以生成Flutter
代码
-
V8 发布 8.0 版本,内存占用量大幅下降

JavaScript
引擎 V8
团队在官宣推出 8.0
版本。这次更新的重点主要集中在错误修复及性能改善上,正式的版本将在数周后随着谷歌 Chrome 80
稳定版一起发布。
V8
是一个由 Google
开发的开源 JavaScript
引擎,用于 Google Chrome
及 Chromium
中。 Lars Bak
是这个项目的组长,以 V8
发动机为其命名。 V8
在运行之前将JavaScript
编译成了机器代码,而非字节码或是解释执行它,以此提升性能。更进一步,使用了如内联缓存( inline caching``)等方法来提高性能。有了这些功能,JavaScript
程序与 V8
引擎的速度媲美二进制编译。

V8
引擎的这次更新,对内存占用量与速度都进行了优化。 V8
堆包含了很多东西,例如浮点值、字符串字符、编译代码以及标定值,开发团队发现这些标记值占据了堆的很大一部分空间。标定值与系统指针一样大, 32
位宽度对应 32
位架构, 64
位宽度对应 64
位架构。当开发团队对比 32
位版本与 64
位版本时发现,每个标记值使用了两倍的堆内存。因为高位可以由低位合成,所以只需要将唯一的低位存储到堆中就能实现降低内存的占用量,平均可节省 40%
堆内存,这一方法被称为「指针压缩」。
新版本在 JavaScript
方面出现了两个新特性 ── Optional Chaining
和 Nullish Coalescing
。
-
Optional Chaining
:在编写属性访问链时,我们经常需要检查中间值是否为空。没有经过错误检查的链可能会扔出,而经过了明确的错误检查的链是冗长的,并且会产生不必要的结果,即检查所有的真实值,而不是只检查非空值。可选链(Optional Chaining
)允许我们编写更精炼、鲁棒性更强的属性访问链,检查中间值是否为空。如果中间值为空,则整个表达式的计算结果为未定义的。 -
Nullish Coalescing
:一个新的用于处理默认值的短路二进制操作符。
具体使用可查看:https://v8.dev/blog/v8-release-80
”
WICG引入了展现锁定,实现更快的Web渲染

该提案适应多种使用场景,包括快速展现非常大的HTML文档,滚动显示大量内容,异步预渲染不可见的内容供后续展现,以及更快速地度量布局。该提案试图在不破坏Web特性和布局计算的情况下避免加载和渲染不可见的内容,并且为开发人员提供一种灵活性,使其能够在不向终端用户屏幕展现的情况下将内容预先渲染出来。
目前, DOM
是原子渲染的,随着站点和应用规模的增长,渲染也会耗费越来越长的时间。现在,我们所采用的技术包括隐藏不可见的内容或虚拟化,但是这些方式有一些限制,并且有可靠性方面的潜在问题。
展现锁定提案引入了三个新特性:
-
rendersubtree
属性,控制一个DOM
子树是否要渲染。该属性可以被浏览器或其他的用户终端所修改,并且会触发一个MutationObserver
事件,开发人员可以对事件进行响应。 -
content-size
属性,为rendersubtree
属性标记为不可见的内容分配一个占位符的大小。 -
Element
对象的updateRendering
方法,预渲染rendersubtree
属性标记为不可见的子树中的内容。
在现今的Web浏览器中,目前还没有该提案的实现。该提案还处于早期阶段。
”
Firefox 71 发布

Firefox 71
现已正式发布。该版本添加了许多新的开发人员工具功能,其中包括 Web
套接字消息检查器,控制台多行编辑器模式,登录事件以及网络面板全文搜索。
新功能
-
对集成的密码管理器
Lockwise
的改进-
Firefox
现在可以识别子域,并将通过Lockwise
自动填充域登录信息 -
使用屏幕阅读器的用户现在可以使用
Firefox Monitor
的集成违规警
-
-
有关实际使用的增强跟踪保护的更多信息
-
Firefox
阻止加密矿工时的通知 -
通过单击地址栏防护栏,可以访问保护面板中被阻止的跟踪器的运行记录
-
-
画中画(
PIP
)功能:允许将视频包含在一个单独的小窗口中,无论您用户从标签到标签还是在Firefox
浏览器之外切换,仍可以观看。
修复
-
各种安全修复程序。
-
以
HTML
重新实现了配置页面
开发者
-
DevTools
的网络面板现在可以 检查WebSocket
消息,并自动格式化各种框架格式 -
Console
的新多行编辑器模式提供了类似于IDE
的体验,可方便地在较长的代码段上进行迭代 -
网络面板的新资源阻止功能可以模拟跟踪保护,安全性,服务中断和不良连接的影响,以进行更可靠的测试
-
在美国,
DevTools
的新增功能面板中的每个版本都可以找到更多功能和改进
360 加入 Ecma 参与 JavaScript 语言标准制定

360
成为 Ecma
会员,奇舞团将代表公司参与 TC39
的工作,制定 JavaScript
语言标准。在 12
月举办的 Ecma
第 118
次会员大会上, 360
代表也见证了阿里巴巴、华为和 Sujitech
等另外 3
家中国公司被批准为 Ecma
会员。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK