Flutter 1.12
是 1.9.x
的版本在经历 6 次 hotfix
之后,才带来的 stable
大版本更新。该版本解决了 4571
个报错,合并了 1905
份 pr,同时本次发布也是 Flutter
一年内的第五个稳定版本。
iOS 13
暗色模式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
已经可用。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
代码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 ”
该提案适应多种使用场景,包括快速展现非常大的HTML文档,滚动显示大量内容,异步预渲染不可见的内容供后续展现,以及更快速地度量布局。该提案试图在不破坏Web特性和布局计算的情况下避免加载和渲染不可见的内容,并且为开发人员提供一种灵活性,使其能够在不向终端用户屏幕展现的情况下将内容预先渲染出来。
目前,DOM
是原子渲染的,随着站点和应用规模的增长,渲染也会耗费越来越长的时间。现在,我们所采用的技术包括隐藏不可见的内容或虚拟化,但是这些方式有一些限制,并且有可靠性方面的潜在问题。
展现锁定提案引入了三个新特性:
rendersubtree
属性,控制一个 DOM
子树是否要渲染。该属性可以被浏览器或其他的用户终端所修改,并且会触发一个 MutationObserver
事件,开发人员可以对事件进行响应。content-size
属性,为 rendersubtree
属性标记为不可见的内容分配一个占位符的大小。Element
对象的 updateRendering
方法,预渲染 rendersubtree
属性标记为不可见的子树中的内容。在现今的Web浏览器中,目前还没有该提案的实现。该提案还处于早期阶段。 ”
Firefox 71
现已正式发布。该版本添加了许多新的开发人员工具功能,其中包括 Web
套接字消息检查器,控制台多行编辑器模式,登录事件以及网络面板全文搜索。
Lockwise
的改进Firefox
现在可以识别子域,并将通过 Lockwise
自动填充域登录信息Firefox Monitor
的集成违规警Firefox
阻止加密矿工时的通知PIP
)功能:允许将视频包含在一个单独的小窗口中,无论您用户从标签到标签还是在 Firefox
浏览器之外切换,仍可以观看。HTML
重新实现了配置页面DevTools
的网络面板现在可以 检查 WebSocket
消息,并自动格式化各种框架格式Console
的新多行编辑器模式提供了类似于 IDE
的体验,可方便地在较长的代码段上进行迭代DevTools
的新增功能面板中的每个版本都可以找到更多功能和改进360
成为 Ecma
会员,奇舞团将代表公司参与 TC39
的工作,制定 JavaScript
语言标准。在 12
月举办的 Ecma
第 118
次会员大会上,360
代表也见证了阿里巴巴、华为和 Sujitech
等另外 3
家中国公司被批准为 Ecma
会员。