★ 新增黄金文件测试(GoldenFile):“黄金图像”术语指的是主图像文件,也就是你选择要进行测试的组件,状态,应用程序或其他可视表示形式的真实呈现。在Flutter 1.12中,新增GoldenFileComparator和LocalFileComparator类的实现,这些类按像素而不是位进行比较,从而消除了false positives。这些新的实现突出显示了视觉上的差异,以便黄金图像和测试中的更新之间存在差异时可以清楚地看到它们。

具体用法可以查看: api.flutter.dev/flutter/flu…

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TsYsfFRf-1637903556938)(https://user-gold-cdn.xitu.io/2019/12/17/16f137d694f7d21e?imageView2/0/w/1280/h/960/ignore-error/1)]

1.2 Flutter Web Beta版发布

具体的请查看我前面的文章介绍:Flutter Web Beta版本终于发布了,可用于开发正式项目了

1.3 Flutter Desktop Alpha版本发布

Flutter For Desktop在MacOS中现在处于Alpha状态。Flutter Gallery应用程序现在也支持桌面了。此外,键盘的操作性等还有很多方面都有很大的改进。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zlNG1snG-1637903556959)(https://user-gold-cdn.xitu.io/2019/12/17/16f137dab1194a64?imageView2/0/w/1280/h/960/ignore-error/1)]

macOS alpha版本的flutter gallery也得到了支持:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hpihNU57-1637903556960)(https://user-gold-cdn.xitu.io/2019/12/17/16f137dbb36ba3b0?imageView2/0/w/1280/h/960/ignore-error/1)]

macOS alpha代表Flutter对桌面的支持迈出了一大步,包括新的DataTree和Split示例窗口小部件,以及移植到macOS的多个插件,对在发布和配置模式下构建的支持以及大大简化的工具介绍。如果您是从开发人员或使用的是master分支,则可以通过以下命令启用macOS桌面支持来访问macOS工具:flutter config — enable-macos-desktop

在macOS上创建Flutter桌面项目就像创建任何其他新的Flutter项目一样,使用 flutter create 即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UVOc2NYb-1637903556961)(https://user-gold-cdn.xitu.io/2019/12/17/16f137e2e2252069?imageView2/0/w/1280/h/960/ignore-error/1)]

除了工具支持之外,Flutter团队还一直在致力于适合桌面大小的应用程序的密度。移动应用程序需要相对较大的控件来适应触摸交互,而在桌面大小的设备上,用户更有可能使用鼠标。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FROdjOZl-1637903556962)(https://user-gold-cdn.xitu.io/2019/12/17/16f137ef4a7b0810?imageslim)]

为了改善Flutter桌面应用程序的体验,我们在键盘导航和键盘访问方面做了很多工作,包括:

将修改器键与键盘事件同步。
打开下拉菜单时管理项目选择。
添加一个方便访问的主要焦点。
添加键盘导航,悬停和开关快捷方式。
复选框和单选按钮。
自动滚动以使聚焦的项目保持可见。
基于键盘快捷键的滚动。
一个用于处理焦点和悬停的新小部件。
重写的复制/粘贴和键盘选择。
下拉菜单的键盘导航。
视觉密度支持。
添加macOS功能键支持。

除了Flutter Gallery示例之外,我们还建议使用新的Photos Search示例,地址如下: github.com/flutter/sam…

该示例展示了很多桌面方面的优点,包括键盘处理,新的小部件密度,新的插件和新的小部件。更多有关Flutter For Desktop的信息可以查看官方网站:flutter.dev/desktop


二、编译器和开发工具

Flutter的编译工具和开发工具此次也有重大升级和更新。大概有这些内容:Android Studio工具里面支持把Flutter添加到原生的应用程序中的“Add-to-App"。基于IntelliJ的增强型IDE(具有我们称为“ Hot UI”的新功能的预览)。DartPad新版本支持Flutter。Dart DevTools预览版,具有新的视觉布局视图的增强型,可在同时进行多设备调试的功能。Visual Studio Code改进了Android的构建过程,并更好地支持了在测试运行之间发现渲染小部件中的差异。Dart 2.7正式版的发布。

具体讲解请看下文介绍:

2.1 Dart2.7正式版发布

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yXm2XOnw-1637903556963)(https://user-gold-cdn.xitu.io/2019/12/17/16f137feebfa2222?imageView2/0/w/1280/h/960/ignore-error/1)]

★ 1.Dart 2.7添加了强大语言新功能:扩展方法。这些使你能够向任何类型(甚至是你无法控制的类型)添加新功能,并

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

具有常规方法调用的简洁性和自动化。

★ 2.安全字符串处理(包括emoji):

Dart的标准String类使用UTF-16编码。这是编程语言中的常见选择,尤其是那些支持在设备和Web上本地运行的语言。

在使用字符串时,通常不必担心字符和代码点。如果要做的只是接收,传递整个字符串,则内部编码是透明的。但是,如果需要遍历字符串的字符或操纵字符串的内容,则可能会遇到麻烦。为此,Dart 2.7引入了一个新的库 “characters”,用于处理这种情况。该软件包支持将字符串视为用户感知的字符序列,也称为Unicode 字形簇。使用“characters”库,我们可以通过对缩短文本的代码进行少量更改来修复代码。另外也支持emoji表情。

★ 3.支持空安全功能,不过目前是预览版阶段。

2.2 DartPad升级了

DartPad新版本支持Flutter了,你无需安装任何东西就可以使用Dart,这是一个在线网站,你看体验里面带有的几个Demo程序,并可在右边看到预览效果。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKv03w7I-1637903556964)(https://user-gold-cdn.xitu.io/2019/12/17/16f138027446ea70?imageView2/0/w/1280/h/960/ignore-error/1)]

至此,Dartpad至此纯Dart程序,Web程序,以及Flutter程序了,可以说Dartpad已经很不错了,不过部分简单的页面功能可以它体验一下,复杂的应用程序它是无法完成的,需要我们用开发工具编写才行。

2.3 Dart Dev Tools

Dart Dev Tools现在有预览版了,DevTools是Dart和Flutter的一套性能和调试工具,更好玩的是Dart Dev Tools是使用Flutter编写的,是不是很神奇,是不是感受到了Dart和Flutter的强大之处了?你一直以为这种调试工具基本都是C++或者.net什么的写的,没想到是用Flutter写的吧?厉害了我的哥。

Dart Dev Tools是开源的,github地址:github.com/flutter/dev…

有了Dart Dev Tools,你可以进行以下操作:

◆ 检查UI:检查Flutter应用的UI布局和状态。
◆ 查性能:在Flutter应用中诊断UI垃圾性能问题。
◆ 源码调试:Flutter或Dart命令行应用程序的源代码级调试。
◆ 调试内存:在Flutter或Dart命令行应用程序中调试内存问题。
◆ 查看日志:查看有关正在运行的Flutter或Dart命令行应用程序的常规日志和诊断信息。

这里有个新出来的功能要特别说明一下,它就是:Layout Explorer。可以用它查看组件树,让你更好地了解Flutter布局。目前,“Layout Explorer”功能仅支持浏览Flex布局,但将来可能会扩展到其他类型的布局。

首先你需要使用Flutter 1.12.16或更高版本才可以支持Layout Explorer的功能,选择一个Flex(Row 、Column和Flex等)组件或Flex组件的子组件,然后会在“Details Tree旁边看到一个“Layout Explorer”选项。点击它就会打开布局资源管理器的功能。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f9nH5KiZ-1637903556964)(https://user-gold-cdn.xitu.io/2019/12/17/16f1380fa806c4a9?imageView2/0/w/1280/h/960/ignore-error/1)]

Layout Explorer能够可视化的显示Flex小部件及其子组件的布局方式,能够识别水平轴的对齐方式和交叉轴的对齐方式,还支持flex系数,布局约束等。如果属性有多个候选项,那么你可以通过下拉列表修改值。比如以下就是修改对齐方向的属性的示例图,你会发现每个更改就会显示出可视化的效果图,并且在你的设备上也会同步显示更改的效果。这种方式不会修改你的源代码,他会在热重载时恢复。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U2GqySHN-1637903556965)(https://user-gold-cdn.xitu.io/2019/12/17/16f1383bf21190ab?imageslim)]

Layout Explorer还会显示违反布局约束和渲染溢出错误的情况。违反的布局约束显示为红色,并且在运行中的设备上会以标准的“黄色胶带”的样子显示溢出错误。具体使用效果如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hb3rrLb3-1637903556966)(https://user-gold-cdn.xitu.io/2019/12/17/16f1384b0dcc753f?imageslim)]

2.4 Android Studio支持“Add-to-App”

就是把Flutter添加到原生的应用程序中。比如新建模块时,可以选择“Flutter Module”,添加一个Flutter Module。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yZ0yKRjt-1637903556966)(https://user-gold-cdn.xitu.io/2019/12/17/16f1384e637c4837?imageView2/0/w/1280/h/960/ignore-error/1)]

此功能的完善得益于以下这些功能的实现:

★ 1.稳定了Java,Kotlin,Objective-C和Swift中用于平台集成的API,包括一组适用于Android的新API。

有关更改的详细信息,请参见Android项目迁移文档: github.com/flutter/flu…

★ 2.添加了对在嵌入的Flutter Module中使用插件的支持。

★ 3.通过Android AAR和iOS提供了额外的集成机制,为了更好地与现有构建系统兼容。

★ 4.重新设计了命令行工具的flutter attach”机制,这样一来让VSCode和IntelliJ插件上可以轻松绑定正在运行的Flutter Module上进行调试,DevTools和热重载(Hot Reload)。

2.5 Hot UI(布局可视化工具)

你可以在Flutter的IntelliJ / Android Studio插件中找到这个新功能,目前还是预览版。然后你可以在构建组件时可以直接在IDE中查看它们并与之交互,你可以在“HOT UI"上面更改你的组件的属性,然后它会直接在预览界面及你的设备上面更新。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ke66S19S-1637903556967)(https://user-gold-cdn.xitu.io/2019/12/17/16f138538d558592?imageView2/0/w/1280/h/960/ignore-error/1)]

使用动态图解如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8esxhPGB-1637903556967)(https://user-gold-cdn.xitu.io/2019/12/17/16f13855a804acbb?imageslim)]

2.6 VSCode多设备同时调试

你可以同时在多个设备和平台上运行Flutter代码,你还可以在Dart代码上设置一个断点,并可以在多个设备上进行断掉调试,如果代码修改了,当你启动热重载,你就可以看到哪个设备被激活了并进行断点调试。在大会的现场,Flutter团队使用了7台设备连接了Mac,并进行了现场同时调试这7台设备,获得了雷鸣般的掌声。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Jfq0pR7-1637903556967)(https://user-gold-cdn.xitu.io/2019/12/17/16f138594126bddd?imageView2/0/w/1280/h/960/ignore-error/1)]


三、UI视觉交互方面

Flutter今年的活动主要集中在创意技术人员,原型设计师,交互式设计师和视觉编码人员。构建Flutter的一个核心动机是多平台开发不应该在视觉质量上有所妥协。将Flutter视为进行创意表达和探索的画布,因为Flutter消除了面向视觉的开发人员经常面临的许多限制。Flutter有状态的热重装功能使您可以轻松进行更改并实时查看结果,并且使用Flutter绘制的每个像素,您可以将UI,图形内容,文本和视频与自定义动画和变换混合在一起。

Flutter团队特别受到了数字艺术家Robert Felker的启发,Robert Felker用Flutter进行了一系列生成艺术的探索,将几何,纹理和光线巧妙地结合在一起,它可以说明Flutter的表达能力以及艺术创造力,下面的图像是用少于60行的Dart代码生成的,是不是美爆了?!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VDopo4My-1637903556968)(https://user-gold-cdn.xitu.io/2019/12/17/16f1385b4428920b?imageView2/0/w/1280/h/960/ignore-error/1)]

源码请查看:github.com/Solido/flut…

接下来看看本次活动现场发布的一些UI视觉交互方面的产品和工具有哪些:

3.1 Nevercode(云端iOS调试测试Flutter代码)

Nevercode具有一整套全新功能,包括名为Remote Mac的Visual Studio Code插件。Remote Mac扩展程序可让您直接连接到它们托管在云中的Mac,以测试您的iOS和macOS Flutter代码。

具体的可以查看:

marketplace.visualstudio.com/items?itemN…

3.2 Supernova

Supernova已将Flutter集成到其设计和原型制作工具中,并具有动画支持,Material Design集成以及专为Flutter设计的更新界面。Supernova团队还宣布了一种基于浏览器的新工具Supernova Cloud,该工具完全由Flutter Web构建而成。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LrCH8d8j-1637903556968)(https://user-gold-cdn.xitu.io/2019/12/17/16f138625c406d22?imageView2/0/w/1280/h/960/ignore-error/1)]

生成原型图的同时还会自动生成Flutter代码,并且支持热重载,可以导入到Andoid Studio中运行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TOggFIyB-1637903556969)(https://user-gold-cdn.xitu.io/2019/12/17/16f138633d379ec2?imageView2/0/w/1280/h/960/ignore-error/1)]

基于浏览器的新工具Supernova Cloud,该工具完全由Flutter Web构建而成。

[外链图片转存中…(img-LrCH8d8j-1637903556968)]

生成原型图的同时还会自动生成Flutter代码,并且支持热重载,可以导入到Andoid Studio中运行。

[外链图片转存中…(img-TOggFIyB-1637903556969)]

Flutter现支持Web和桌面,一跃成为前沿大一统框架,【面试必备】相关推荐

  1. Flutter2重磅发布支持Web和桌面应用

    目录 Flutter 2的发布 Flutter 2的背后 Flutter 2对Web的支持 Flutter 2对PC.可折叠以及嵌入式设备的支持 不断发展的Flutter生态系统 空安全 Flutte ...

  2. Google Flutter 一统移动、Web、桌面、嵌入式江湖!

    [CSDN 编者按]尽管大洋彼岸正如火如荼的 Google I/O 向全世界宣告 Google All in 了 AI,但在国内开发者群体中最引爆的却是这样两点: Kotlin First!Googl ...

  3. flutter制作博客展示平台,现已支持 Web、macOS 应用、Android 和 iOS

    Flutter Blog Theme using Flutter | Web, macOS, Android, iOS Flutter 最近发布了 Flutter V2.5.1,其性能得到了很大提升, ...

  4. [实战]用flutter编写炸弹人小游戏同时支持web和移动端

    用flutter编写炸弹人小游戏同时支持web和移动端 flutter_BananaMon是我学习dart/flutter的时候开发的一个练手项目,他不依赖第三方游戏框架,是一个从零开始的项目,现在已 ...

  5. flutter和webapp_Flutter Web Beta版本终于发布了

    在昨天的Flutter Interact大会中,谷歌Flutter团队给我们带来了最新的Flutter 1.12版本,在此次版本更新中,其中一个吸引人的功能就是"Flutter Web Be ...

  6. flutter和webapp_Flutter全平台!迁移现有Flutter项目到WEB端

    写在前面 Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台.高保真.高性能.开发者可以通过 Dart语言开发 App,一套代码同时运行在 iOS .Android.web和桌面 ...

  7. Flutter开始支持Windows了

    点击"开发者技术前线",选择"星标????" 在看|星标|留言,  真爱 本周,Flutter 团队发布了 Flutter Windows 的首个 Alpha ...

  8. 单枪匹马撸个聊天室, 支持Web/Android/iOS三端

    单枪匹马撸个聊天室, 支持Web/Android/iOS三端 原文地址: github.com/yinxin630/b- 前排提醒, 阅读本文需要对JavaScript较为熟悉, 本文将讲解核心功能点 ...

  9. 让Android的emulator支持web camera

    emulator的camera没有支持动态获取图像的功能.所能用到的是像下面那样的,很不爽. 下面介绍如何在程序中支持web camera. 我们要用到的方法是http://www.tomgibara ...

最新文章

  1. [NOI2012]骑行川藏
  2. 什么是充血模型?什么又是贫血模型?
  3. python读取excel表格-python读写Excel表格的实例代码(简单实用)
  4. Spring中HibernateTemplate类的使用
  5. 算法和数据结构最全最易懂总结,再也不怕面试了~
  6. Python多环境扩展管理-Virtualenv
  7. Atitit ever note org log t99 目录 1. data 1 2. Sik dsk zip mode 1 3. Local exted stat 2 4. Recy 3 1
  8. 一个迅速崛起的国产开源OCR项目
  9. 写在《大国崛起》之后,“中国崛起”之前(二)
  10. java poi调用excel文件的自动行高来设置自动行高
  11. 联通发布沃Phone,全球为之震动
  12. 【Zoomit】的安装及使用方法
  13. PAT 1072 开学寄语
  14. Vue 状态管理与与SSR详解
  15. IOS开发之内购-AppStore
  16. LabVIEW+数据库应用系列保姆级教程,第一篇数据库连接
  17. 一、Lua 教程的学习
  18. 2022年R1快开门式压力容器操作考试资料及R1快开门式压力容器操作考试总结
  19. C语言(谭浩强第5版)课后习题知识总结
  20. java+opencv+selenium实现滑块滑动破解

热门文章

  1. 游戏ai人工智能_为什么游戏AI无法帮助AI在现实世界中发挥作用,但可以
  2. 支付宝当面付-扫码支付
  3. 操作系统 - 虚拟内存
  4. OpenCV 获取摄像头并显示摄像头视频
  5. Centos安装Docker
  6. 重庆大学计算机非全学费,重庆大学非全日制研究生学费多少,为什么非全日制研究生学费这么贵?...
  7. 在中端5G手机市场,小米要以性能碾压其他竞争对手
  8. 什么是腾讯云web应用防火墙?有哪些优势以及适用于什么场景?
  9. Jasypt加密之行
  10. 安卓自定义视频播放器,有进度条暂停播放等功能