桌面上的Flutter:Electron又多了个对手
从本质上看,Flutter是一个独立的二进制可执行文件。它不仅改变了移动设备的玩法,在桌面设备上也同样不可小觑。一次编写,可在Android、iOS、Windows、Mac和Linux上进行原生部署,并通过AngularDart将所有的业务逻辑共享到Web上,这也是它的一大特点。
原生桌面客户端加速移动开发
在进入真实的原生桌面应用程序之前,先让我们看看在桌面上运行的Flutter可以为开发移动设备的人们带来哪些好处。
启动时间

首先是启动Android模拟器和运行Gradle。
下面的动图记录了模拟器冷启动并运行默认的Flutter应用程序。我只截取了其中的2分40秒,可以看出来在那段时间内可以发生很多事情。

但如果我告诉你,你可以在不到10秒的时间内启动并运行应用程序,你会怎么想?
运行原生应用程序可以省去启动Android模拟器和运行Gradle的全部开销。
看看这个:

请注意,你不必离开IntelliJ。我们开发了将Flutter作为原生应用程序所需的工具,它适用于所有的Flutter IDE。
在运行时调整大小
与其他应用程序一样,你需要测试不同大小的布局,那么你需要做些什么?
你要求你的朋友使用不同的手机或者创建一组模拟器,以确保你的布局在每台设备上都是正常的。
这对我来说是个麻烦事。我们能更简单一点吗?
可以!

使用PC上的资源
在开发和测试需要与手机上的资源发生交互的应用程序时,首先需要将所有测试文件移动到模拟器或设备上,这样可能会非常烦人。
如果只需要使用原生文件选择器来选择你想要的文件会不会更好?

热重载和调试
热重载和调试功能是每个高效率工程师所必须的。

内存占用
对于使用笔记本电脑或配置不太好的电脑的人来说,内存是非常重要的。
Android模拟器占用大约1GB的内存。现在想象一下,为了测试一个聊天应用程序或类似的程序,需要启动IntelliJ和狂吃内存的Chrome。

因为嵌入器是以原生的方式运行,所以不需要Android模拟器。这使它的内存占用变得更小。

原生桌面应用
只是在桌面上运行一个Flutter应用程序对于可立即发布的成熟桌面应用程序来说是远远不够的。这样做感觉上就像在桌面上运行移动应用程序。
少了什么东西?很多!
悬停、光标变化、滚轮交互,等等。
我们设法在不改变任何平台代码的情况下实现这些功能——它是一个独立的软件包,可以被包含在任何普通的Flutter应用程序中。但是,当与桌面嵌入器一起使用时,奇迹就发生了!

这是在Android模拟器运行完全相同的代码的结果。

同时开发Android和桌面应用程序。

桌面小部件展示
悬停:

光标:

开发一个真正的跨平台应用——包括桌面
小部件
你创建的大多数小部件都是普遍可用的,如按钮、加载指标器等。
那些需要根据平台呈现不同外观的小部件可以通过TargetPlatform属性进行封装,非常容易。
像CursorWidget这样的小部件也可以被包含在Android版本中。
页面
根据平台和屏幕尺寸的不同,页面也会有很大差异。不过它们大多只是布局不同,而不是功能差异。
使用PageLayoutWidget可以轻松地为每个平台创建准确的布局。

默认情况下对平板电脑也提供了很好的支持。
插件
使用同时支持桌面嵌入器的插件时,不需要修改Flutter代码。
代码什么时候发布?
很快。不过这个项目仍然处于测试阶段,在不久的将来很可能会发生一些变化。
我们的目标是在不久的将来发布易于安装、设置和使用的产品。
更多内容,可关注前端之巅(ID:frontshow)

英文原文:
https://medium.com/flutter-community/flutter-on-desktop-a-real-competitor-to-electron-4f049ea6b061
桌面上的Flutter:Electron又多了个对手的更多相关文章
- C盘里的桌面文件移到E盘里了,然后E盘里的文件都显示到桌面上了,怎么将桌面文件还原回C盘
1 . 直接按Windows键+R,打开"运行"对话框,在输入框中输入"regedit"命令,会打开注册表编辑窗口: 2.打开注册表文件将HKEY_CURREN ...
- 如何在ubuntun中安装pycharm并将图标显示在桌面上
安装pycharm首先要安装jdk. 可以通过java -V来查看是否安装了jdk.安装jdk的方法如下: 1 首先在oracle网站下载jdk,现在jdk是1.8的. 2 新建一个/usr/lib/ ...
- WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性)
原文:WPF 使用 AppBar 将窗口停靠在桌面上,让其他程序不占用此窗口的空间(附我封装的附加属性) 本文介绍如何使用 Windows 的 AppBar 相关 API 实现固定停靠在桌面上的特殊窗 ...
- asp.net 查询好的数据后 排序显示在桌面上
select top 10 * ,row()_number over ( order by 字段 desc) as rownum from 表 row()_number;简单的说row_numbe ...
- Delphi里如何让程序锁定在桌面上,win+d都无法最小化
procedure TForm29.FormCreate(Sender: TObject); begin Windows.SetParent(Self.Handle, FindWindowEx(Fin ...
- C# WPF 让你的窗口始终钉在桌面上
IntPtr hWnd = new WindowInteropHelper(Application.Current.MainWindow).Handle; IntPtr hWndProgMan = F ...
- win10 设置 计算机/此电脑/我的电脑 图标到桌面上
桌面上右键--个性化 选择右边的 主题选项 然后点击 桌面图标设置 勾选计算机 图标 需要什么图标就勾选哪个就行了 然后点击 确定 这样就可以了
- 激活Debian 7 的桌面(把图标放在桌面上)
转:http://www.acyoo.com/archives/3017.html Debian 7的默认桌面是Gnome 3, 刚装好时无法在桌面进行任何操作,不过只需要设置一下就可以了: 左上角 ...
- win7桌面上的ie图标删不掉怎么办
一种准确的方法,不要只看着注册表的名字去删,万一删错一切就无法挽回了. 原文链接:http://zhidao.baidu.com/link?url=9H3xX7ScNSUd5NGxfir9napxOH ...
随机推荐
- PTA数据结构与算法题目集(中文) 7-18
PTA数据结构与算法题目集(中文) 7-18 7-18 银行业务队列简单模拟 (25 分) 设某银行有A.B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗 ...
- APScheduler轻量级定时任务框架
目录 一.APScheduler简介 支持的后端存储作业 集成的Python框架 二.APScheduler下载安装 三.APScheduler组件 各组件简介 调度器 作业存储器 执行器 触发器 四 ...
- 什么是ansible
什么是ansible l Ansible是2013年推出的一款IT自劢化和De ...
- 【php】日期时间
一. 日期时间: a) 这是一块非常重要的内容,我们在windows当中,或者是将来要接触的定时器也好,都是需要使用到这一块内容的!二. PHP当中的日期时间: a) 时间戳:time()可以获取时间 ...
- wireshark抓包实战(五),首选项设置和基本的抓包设置
一.首选项 首选项一般是修改软件底层的一些默认参数 选中编辑,点击首选项按钮 二.抓包选项设置 点击捕获,选中选项 1.捕获网卡设置 2.保存文件方式设置 很多情况下wireshark会保存很大的数据 ...
- python3(二)
# 布尔值和Java一样不做验证了 # 空值None是一个特殊的空值 # 变量 变量名必须是大小写英文.数字和_的组合,且不能用数字开头,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以 ...
- [算法]素数筛法(埃氏筛法&线性筛法)
目录 一.素数筛的定义 二.埃氏筛法(Eratosthenes筛法) 三.线性筛法 四.一个性质 一.素数筛的定义 给定一个整数n,求出[1,n]之间的所有质数(素数),这样的问题为素数筛(素数的筛选 ...
- stand up meeting 12/01/2015
part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 赶工sprint3,各部分要合在一起时出现各种问题,各种修改测试:UI本身的功能继续实现完善 6 UWP对控件的 ...
- E2. Send Boxes to Alice (Hard Version)
秒的有点难以理解:https://blog.csdn.net/weixin_42868863/article/details/103200132 #include<bits/stdc++.h&g ...
- 基于netty实现rpc框架-spring boot服务端
demo地址 https://gitee.com/syher/grave-netty RPC介绍 首先了解一下RPC:远程过程调用.简单点说就是本地应用可以调用远程服务器的接口.那么通过什么方式调用远 ...