前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【技术圈】Flutter 1.12、Firefox 71、V8 8.0 一大把新特性来袭

【技术圈】Flutter 1.12、Firefox 71、V8 8.0 一大把新特性来袭

作者头像
ConardLi
发布2020-02-01 16:56:35
1.7K0
发布2020-02-01 16:56:35
举报
文章被收录于专栏:code秘密花园

速览

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

Flutter 1.12 发布

Flutter 1.121.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.12master、devbeta 都提供了改进的 Web 支持。
  • macOS 的支持很快也会实现,目前正在从技术预览阶段进入到 alpha 阶段,masterdev 已经可用。

SDK

  • 建议开发者将 Android 项目迁移到 AndroidXSDK 的瘦身,增加了 google_fonts 字体的支持等。
  • Android 插件的改进 Android plugins APIs,比以前更加简单明了,分割了 FlutterPlugin and MethodCallHandler ,同时提供 ActivityAwareServiceAware 作为独立支持。
  • 新增加了不兼容的 breaking change,比如: PageView 启用 RenderSliverFillViewportWidgetsBinding 中的 attachRootWidget 被替换为 scheduleAttachRootWidget
  • 增加 MediaQuery.systemGestureInsets 支持 Android Q的手势导航;

开发工具

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

V8 发布 8.0 版本,内存占用量大幅下降

JavaScript 引擎 V8 团队在官宣推出 8.0 版本。这次更新的重点主要集中在错误修复及性能改善上,正式的版本将在数周后随着谷歌 Chrome 80 稳定版一起发布。

V8 是一个由 Google 开发的开源 JavaScript 引擎,用于 Google ChromeChromium 中。Lars Bak 是这个项目的组长,以 V8 发动机为其命名。V8 在运行之前将JavaScript 编译成了机器代码,而非字节码或是解释执行它,以此提升性能。更进一步,使用了如内联缓存(inline caching``)等方法来提高性能。有了这些功能,JavaScript 程序与 V8 引擎的速度媲美二进制编译。

V8 引擎的这次更新,对内存占用量与速度都进行了优化。V8 堆包含了很多东西,例如浮点值、字符串字符、编译代码以及标定值,开发团队发现这些标记值占据了堆的很大一部分空间。标定值与系统指针一样大,32 位宽度对应 32 位架构,64 位宽度对应 64 位架构。当开发团队对比 32 位版本与 64 位版本时发现,每个标记值使用了两倍的堆内存。因为高位可以由低位合成,所以只需要将唯一的低位存储到堆中就能实现降低内存的占用量,平均可节省 40% 堆内存,这一方法被称为「指针压缩」。

新版本在 JavaScript 方面出现了两个新特性 ── Optional ChainingNullish 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 月举办的 Ecma118 次会员大会上,360 代表也见证了阿里巴巴、华为和 Sujitech 等另外 3 家中国公司被批准为 Ecma 会员。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 code秘密花园 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 速览
  • Flutter 1.12 发布
    • 框架
      • SDK
        • 开发工具
        • V8 发布 8.0 版本,内存占用量大幅下降
        • WICG引入了展现锁定,实现更快的Web渲染
        • Firefox 71 发布
          • 新功能
            • 修复
              • 开发者
              • 360 加入 Ecma 参与 JavaScript 语言标准制定
              相关产品与服务
              Elasticsearch Service
              腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档