AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

桌面上的 Flutter:Electron 又多了个对手

  • 2018-12-21
  • 本文字数:1401 字

    阅读完需:约 5 分钟

桌面上的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


2018-12-21 11:356420
用户头像

发布了 731 篇内容, 共 462.7 次阅读, 收获喜欢 2005 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

特定领域知识图谱融合方案:文本匹配算法之预训练Simbert、ERNIE-Gram单塔模型等诸多模型【三】

汀丶人工智能

人工智能 自然语言处理 知识图谱 2月月更 2月日更

大数据培训零基础的方法有哪些

小谷哥

再获权威认证!秒云顺利通过ISO20000、27001双系统认证

MIAOYUN

ISO9001 ISO20000 ISO27001

秒云加入金兰组织,携手共建信创新生态

MIAOYUN

信创 信创云 信创产业 金兰组织

探讨丨传统行业必须数字化转型吗?

优秀

数字化转型

由浅入深,聊聊OkHttp的那些事(很长,很细节)

Petterp

android okhttp

IoTLink 版本更新 v1.5.2

山东云则信息科技

物联网

SpringBoot 如何保证接口安全?老鸟们都是这么玩的!

做梦都在改BUG

Java Spring Boot 接口

软件测试/测试开发 | 网页 frame 与多窗口处理

测试人

软件测试 自动化测试 测试开发 Web自动化测试

TDengine 3.0.2.5 查询再优化!揭秘索引文件的工作原理

TDengine

数据库 tdengine 时序数据库

前端培训学习方法有哪些

小谷哥

模块6如何设计微服务架构

程序员小张

Sentinel 是如何实现分布式限流的?

做梦都在改BUG

sentinel 分布式限流

面试官:谈谈你对JVM内存结构的理解

做梦都在改BUG

Java JVM

啊啊啊!小程序小游戏也可以在自己的App上架❗️❗️

没有用户名丶

微信小程序 小程序游戏

宋红康2023版Java视频发布

小谷哥

嵌入式ARM设计编程(一) 简单数据搬移

timerring

arm

Java培训有哪些不同的学习方法

小谷哥

只用了半个Redisson的Semaphore实现并发控制

做梦都在改BUG

Java 并发控制 Semaphore redisson

Svelte框架结合SpreadJS实现表格协同文档

葡萄城技术团队

热点面试题: Array中有哪些非破坏性方法?

沉浸式趣谈

JavaScript array 前端面试题 Javascript框架 超全前端面试题

实战分享,电路板设计后这样干,一个人也能轻松搞定项目!

华秋PCB

PCB PCB打样 PCB设计

fabric.js开发图片编辑器的细节实现

秦少卫

架构 编辑器 Fabric.js 前端编辑器

安擎董事长俞跃渊:打造智能算力,创新产业价值

科技热闻

大数据培训学习选择哪个机构好

小谷哥

软件测试/测试开发 | web 控件的交互进阶

测试人

软件测试 自动化测试 测试开发 Web自动化测试

新年伊始,谈谈开源软件供应链安全的新趋势

安势信息

开源软件 清源CleanSource SCA 安势信息 ChatGPT 开源软件供应链安全

软件测试/测试开发 | Web 控件定位与常见操作

测试人

软件测试 自动化测试 测试开发 Web自动化测试

安势信息入选 SegmentFault思否「2022 中国新锐技术先锋企业」

安势信息

软件成分分析 清源CleanSource SCA 安势信息 技术先锋 SegmentFault

关于使用消息队列今天被面试官问倒了

做梦都在改BUG

桌面上的Flutter:Electron又多了个对手_移动_Norbert_InfoQ精选文章