Flutter 是 Google 的开源 UI 工具包。利用它,只需一套代码库,就能开发出适合移动设备、桌面设备、嵌入式设备以及 web 等多个平台的精美应用。过去几年,对于想要打造多平台应用的开发者来说,Flutter 已成为他们的首选。但设计师们需要的是一个视觉工具来建立原型和构建 Flutter UI,而不是精雕细琢 Dart 源代码,于是 XD to Flutter 应运而生!

此插件的首个预览版推出已近一年。这期间,我们一直在通过一些小更新对它进行优化和改进;如今,继去年夏天 1.0 版的重大发布之后,我们推出了此插件的 2.0 版以配合 Flutter 2 的发布。

等等,什么是 XD to Flutter?

顾名思义,XD to Flutter 插件是一个功能强大、易于使用的工具,可将您的 Adobe XD 设计导出为简洁、有效的 Flutter 代码。您可以从自己的设计中复制特定视觉元素的代码,导出各种可再利用的 Widgets,甚至可以将一些视图整个导出。

这意味着,利用 XD to Flutter 插件,您只需点击一个按钮,即可让您的设计在任意设备上运行。此插件虽不能为您完成整个应用的编码,但可让您有个极好的开端。

XD to Flutter 由 gskinner 与 Adobe 联合开发,作为 Adobe XD 本身的插件发布,因此,您可将它用于您正在打造的任何现有的 Adobe XD 设计。

太棒了!有哪些新功能?

最初发布的 XD to Flutter 版本非常有助于输出设计中所有不同的视觉元素,比如矢量图形、图片、富文本、背景模糊效果、混合模式、阴影及其他类似元素,只可惜输出结果是静态的,且不够灵活。

尽管抓取图标或文本样式不费什么功夫,但我们仍希望它能发挥更大功效。XD 不仅可让设计师创建动态 UI,还提供有自适应布局、可滚动区域、堆栈及网格之类的工具;我们希望此插件能支持上述每一种功能,而在 2.0 版中,我们取得了许多进展。

响应式调整尺寸

XD to Flutter 支持 XD 的响应式布局功能,您可将元素 "固定" 在其所属父元素内,并精确控制其调整尺寸的方式。

Adobe XD 中的响应式设计

Flutter 中的响应式设计

Flutter 使用 adobe_xd 开源软件包中的自定义 Pinned 布局 Widget 实现了这一功能,开发者可直接在其项目中使用。

Pinned Widget 代码示例

堆栈和滚动组

"堆栈" 和 "滚动组" 让开发者可以运用一些新的方式来在 Adobe XD 中动态布局屏幕内容。通过 XD 中的 "堆栈",您可以将一堆形形色色的元素以横向或纵向列表排列,元素之间可以有不同的间距;相较于与其同名的 Stack Widget,"堆栈" 更类似于 Flutter 中的 Flex Widget。

如您所料,利用 "滚动组",可直接在您的设计内定义一个区域来横向或纵向滚动一大组内容。

XD to Flutter 2.0 版对这些功能都支持,可将它们转换成常见的 Flutter Widget (ColumnRow 以及 SingleChildScrollView)。您甚至可以将某个堆栈放入一个滚动组内,从而轻松创建一个滚动项列表。

XD (左) 和 Flutter (右) 中的堆栈和滚动组

内边距和背景元素

另一项新功能是背景元素,也就是说,您可以指定一个视觉元素作为另一组元素的背景。背景元素可以和内边距配对使用,以界定背景的边缘与其内容之间的距离。

Flutter 导出工具使用 Stack Widget 将背景元素分层放置在内容之后,而后者则放置在一个 Padding Widget 内。

XD (左) 和 Flutter 中的内边距和背景

Flutter 2 和空安全机制

正是有了上述布局功能,才能成就响应式更强的 UI,也增强了 Flutter 2 对桌面设备和 web 等平台的支持。

Flutter 2 还引入了健全的空安全机制 ,这一语言特性可帮助开发者先行捕捉不可为空的变量却为空的问题,避免其在应用中引发问题。XD to Flutter 2.0 版包含一个新设置 "Export Null Safe Code" (导出空安全代码);导出时选中该设置,可确保生成的代码未来可用。

"Export Null Safe Code" 设置和输出

听起来不错啊!怎样开始使用?

无论您是要使用它来复制某个构思精妙的渐变效果的代码,还是要导出完全响应式、参数化、交互式的 Widget,都非常简单,不过是加入到成千上万已经在使用 XD to Flutter 插件的创意专业人才大军而已。

您只需从 Adobe XD 的 "Plugin" (插件) 菜单选择 "Browse Plugins…" (浏览插件),然后搜索 "Flutter" (奇怪的是,搜索 "XD to Flutter" 不起作用),或前往 adobe.com/go/xd_to_flutter,即可安装此插件。

安装好后,从插件面板中打开 XD to Flutter 面板,点按 "Need help" (需要帮助?) 链接,可查阅 plugin documentation (插件帮助文档)。

我们一直专注于打造可在任何平台上实际运行的精美应用,Flutter 2 就是我们在这一框架上迈出的可喜一步。gskinner 的各团队非常开心能够与 Adobe 和 Google 合作,共同确保 XD to Flutter 进一步简化将设计转换成可运行产品的过程。

XD to Flutter 2.0 现已发布!的更多相关文章

  1. Flutter 2.2 现已发布!

    在本次 Google I/O 2021 大会 上,我们正式发布了 Flutter 2.2.Flutter 2.2 是我们最新版的开源工具包,可让开发者立足单个平台构建适合任何设备的精美应用.Flutt ...

  2. 【老孟Flutter】Flutter 2.0 重磅更新

    老孟导读:昨天期待已久的 Flutter 2.0 终于发布了,Web 端终于提正了,春季期间我发布的一篇文章,其中的一个预测就是 Web 正式发布,已经实现了,还有一个预测是:2021年将是 Flut ...

  3. Flutter 1.0 正式版: Google 的便携 UI 工具包

    Flutter 1.0 正式版: Google 的便携 UI 工具包 文 / Tim Sneath,Google Dart & Flutter 产品组产品经理 Flutter 是 Google ...

  4. Flutter 1.0 正式版: Google 的跨平台 UI 工具包

    今天我们非常高兴的宣布,Flutter 的 1.0 版本正式发布!Flutter 是 Google 为您打造的 UI 工具包,帮助您通过一套代码同时在 iOS 和 Android 上构建媲美原生体验的 ...

  5. Tapdata 的 2.0 版 ,开源的 Live Data Platform 现已发布

    https://www.bilibili.com/video/BV1tT411g7PA/?aid=470724972&cid=766317673&page=1 点击上方链接,一分钟快速 ...

  6. LightningChart JS v.3.3.0全新版本现已发布!

    LightningChart JS v.3.3.0已经发布啦!!! 欢迎了解更多关于最新的性能改进.新的用户界面功能和新的图表类型的信息! WebGL兼容性和新的UI功能 WebGL是Lightnin ...

  7. Dart 2.13 版现已发布

    作者 / Kevin Moore & Michael Thomsen Dart 2.13 版现已发布,其中新增了类型别名功能,这是目前用户呼声第二高的语言功能.Dart 2.13 还改进了 D ...

  8. BlueMind 3.0.17 发布,消息和协作平台

    BlueMind 3.0.17 发布,此版本对即时消息 Web 应用连接处理做了较大改进(更可靠),还修复了通讯录浏览器. BlueMind 3.0.17 现已提供下载. 详细改进记录如下: Addr ...

  9. Flutter 1.0 正式版: Google 的便携 UI 工具包

    简评:所以 React-Native 和 Flutter 该怎么选? 在 10 个月前的 MWC 上,谷歌发布了 Flutter 的 Beta 版本,给跨平台应用开发带来了一种全新的选择,昨天谷歌正式 ...

随机推荐

  1. java异常的 理解

    1.体系结构 java.lang.Object |----java.lang.Throwable |-------java.lang.Error:错误,java程序对此无能为力,不显式的处理 |--- ...

  2. Mardown语法

    1.什么是Markdown Mardown是一种文本标记语言,使用它,能让我们更加专注于内容的输出,而不是排版样式. 我们平常使用的.txt文档书写的文字是没有样式的,使用Markdown语法就可以给 ...

  3. 2019第十届蓝桥杯省赛及国赛个人总结(java-B组)

    省赛: 今年省赛的题目比18年简单的多,基本都是暴力枚举.BFS之类.还记得去年在山师考蓝桥杯,我这种辣鸡连题目都没看懂.本以为蓝桥会变得越来越难,没想到今年就被打脸了.今年省赛后面三个编程大题一个没 ...

  4. 在M1芯片的Mac系统上做.net core开发靠谱吗?

    作为一个7年老.NET程序员,最近几年苹果慢慢接替微软,成为我心中最酷的科技公司. 为什么我会选择Mac os作为我的开发环境? 很多做.net的同学都使用Windows系统作为自己的开发环境,我其实 ...

  5. Web 前端 - 又不仅限于 Web 前端 - 协程锁问题

    前言 最近两天的 web 前端开发中,早前的锁实现 (自旋锁) 出现了一些不合理的现象,所以有了这片随笔 什么是协程锁?能点进这个博客的的你肯定是明白的,不明白的人根本搜不到我这随笔,不多做赘述. 一 ...

  6. KubeEdge边缘自治设计原理

    这一篇内容主要是KubeEdge中边缘节点组件EdgeCore的原理介绍. KubeEdge架构-EdgeCore 上图中深蓝色的都是kubeedg自己实现的组件,亮蓝色是k8s社区原生组件.这篇主要 ...

  7. vue-router 监控全局路由,在路由中改变vuex中的状态值

  8. 多线程安全的单例模式(使用判断nullptr和call_once两种方法)

    转载请注明: https://blog.csdn.net/Stephen___Qin/article/details/115583694 使用判断nullptr #include <thread ...

  9. 浏览ASP.NET网页(6)

    当我们搭建好了IIS后,就不需要开发工具进行编译打开网站啦,我们可以在IIS下进行预览,如图所示: 需要注意的是,网页的后缀名是.aspx,不是.cs

  10. (五)Struts2处理结果管理

    当Action处理完用户请求时,处理结果应该通过视图资源实现,但将哪个视图呈现给浏览者呢.由<result.../>来决定 Action处理完用户请求后,返回一个普通字符串.整个普通字符串 ...