Flutter 对桌面端支持的怎么样了?

哈喽,我是老刘
我带着团队切换到 Flutter 开发已经5年多了。
目前手机端App主要使用Flutter开发。
桌面端使用的技术栈会比较杂,其中有一小部分会用Flutter,主要看项目的具体情况。
我先说一下在PC端哪些情况下我会使用Flutter开发。

适合使用Flutter开发桌面端的场景

场景一:既有手机端也有PC端

如果手机端和桌面端有大量的UI和业务逻辑是相同的,这种情况是最适合Flutter开发的。
这里说的UI相同并不是说整个页面长得一样,只要页面内容的一部分是可以复用的即可。
这种相同的部分抽象出独立组件,效果会很好。
具体来说,当我们开发一个应用时,通常会有一些核心模块,比如用户登录、信息展示、数据统计等。
如果这些模块在手机端和桌面端都有相似的功能,那么可以通过Flutter将这些模块封装成独立组件,然后在两个平台上共享使用。
这不仅可以减少重复开发的工作量,还能保证不同平台上的一致性和用户体验。

场景二:只有PC端

这种情况下其实在PC端可以选择的技术栈比较多。
比如我最常用的是基于Python的一些方案。
这种程序一般UI都很简单,主要是一些配置项、输入框和几个按钮,主要功能是利用Python庞大的三方库完成一些后台任务。
例如,开发一个内部使用的配置管理工具,使用Python可以快速实现其核心功能,而其简单的UI需求可以通过Tkinter等库实现。

还有一种情况是我们需要为业务、测试同事编写一些小工具。
这类工具通常功能相对简单,但需要有一个较为友好的用户界面,便于非技术人员使用。
这时,Flutter就是一个不错的选择。
它不仅可以提供一个漂亮的UI,还能利用Dart语言的优势,实现流畅的交互体验。
而且,由于我们团队已经在移动端广泛使用Flutter,因此使用同一套技术栈可以大大提高开发效率,减少切换不同技术栈带来的不便。
我自己就非常不适应在不同技术栈频繁切换,经常会快捷键什么的肌肉动作搞错了。

Flutter在PC端的一些坑

没有官方的多窗口支持

很多人提到这一点,但我觉得这不是坑,因为有解决方案。
方案1:使用第三方库。
目前市面上有一些第三方库可以实现多窗口管理,但问题是这些库的更新频率不一定很高,有时可能无法及时适配最新的Flutter版本。
这就需要我们在选择第三方库时,慎重评估其维护情况和社区支持。
方案2:自定义多窗口。
因为我们在手机端使用的是Flutter + 原生的混合栈管理方案。
所以很自然的,在桌面端也会考虑类似方案。
通过嵌入原生代码,我们可以实现多窗口管理。
尽管这种方法需要更多的开发工作和技术积累,但它提供了最大的灵活性和可控性。

引擎方面的bug

在开发过程中,我们感觉macOS端在引擎方面的bug稍微多一点,比如内存泄漏、引擎crash等。
Windows端也有类似问题,但相对少一些。
这些问题有时会影响到开发进度和产品质量。
举个例子,我们曾经在一个项目中遇到macOS版本的Flutter应用在特定场景下会出现内存泄漏,导致应用运行一段时间后出问题。
虽然最终通过一些临时方案解决了问题,但这也提醒我们在使用Flutter开发桌面应用时,需要做好充分的测试和预案。

官方支持力度较弱

个人认为桌面端最主要的问题是官方团队在PC端的问题处理上可能比手机端慢。
这一点在日常开发中会带来一些困扰,因为有些问题必须依赖官方的修复和支持。
等待官方修复的bug时间较长,有时不得不寻找临时解决方案或替代方案。

其他考虑因素

除了上面提到的主要问题,使用Flutter开发桌面应用时还需要考虑其他一些因素。比如:

UI设计

桌面端的UI设计和移动端有很大的不同。
桌面应用通常有更多的屏幕空间,需要考虑窗口的布局、缩放、拖拽等功能。

插件生态

虽然Flutter的插件生态非常丰富,但并不是所有插件都支持桌面端。
这就需要我们在选择插件时,仔细查看其支持的平台,有可能需要编写自己的插件或对现有插件进行扩展。

总结

总体来说,Flutter在PC端的支持正在逐步完善。
虽然目前还存在一些问题和限制,但它的跨平台优势以及快速开发的特性依然使它在许多场景下成为一个不错的选择。
希望未来Flutter官方能够加大对PC端的支持力度,解决现有问题,让Flutter在桌面端的表现更加出色。
相信随着时间的推移,Flutter在桌面端的应用会越来越广泛,成为更多开发者的首选工具。

如果看到这里的同学有学习Flutter的兴趣,欢迎联系老刘,我们互相学习。
点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》icon-default.png?t=N7T8https://mp.weixin.qq.com/s?__biz=MzkxMDMzNTM0Mw==&mid=2247483665&idx=1&sn=56aec9504da3ffad5797e703c12c51f6&chksm=c12c4d11f65bc40767956e534bd4b6fa71cbc2b8f8980294b6db7582672809c966e13cbbed25#rd

  • 25
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Electron和Flutter都是广泛用于开发桌面应用程序的工具,它们各自有着自己的优缺点。下面是它们的比较: ## Electron ### 优点: 1. 跨平台:Electron可以在不同的操作系统(Windows,macOS和Linux)上运行相同的代码,开发人员可以使用相同的技术栈来构建应用程序,这样可以节省时间和成本。 2. Web技术栈:Electron使用HTML,CSS和JavaScript作为其技术栈,这对于Web开发人员来说非常熟悉。这使得构建应用程序变得更加容易。 3. 社区支持:Electron是一个开源项目,拥有庞大的社区支持,这意味着开发人员可以获得丰富的文档,示例代码和第三方库。 ### 缺点: 1. 性能:由于Electron使用Web技术栈,它的性能可能会受到一定的影响。在某些情况下,这可能会导致应用程序运行速度变慢或消耗更多的系统资源。 2. 文件大小:Electron应用程序文件通常会比本机应用程序文件更大,这可能会导致一些用户对其不满意。 3. 学习曲线:虽然Electron使用Web技术栈,但它仍然需要一些桌面应用程序开发的特定知识。这意味着开发人员需要花费一些时间来学习这些知识。 ## Flutter ### 优点: 1. 性能:Flutter是一个本机应用程序开发框架,因此它可以提供更好的性能和更少的系统资源消耗。 2. 快速开发:Flutter使用了热重载技术,这使得开发人员可以快速地进行迭代和测试。 3. 界面美观:Flutter提供了美观的UI组件库和内置的动画效果,这使得开发人员可以轻松地创建漂亮的用户界面。 ### 缺点: 1. 学习曲线:虽然Flutter提供了许多美观的UI组件,但开发人员需要学习如何使用它们以及如何构建本机应用程序。这可能需要一些时间来掌握。 2. 可移植性:虽然Flutter可以用于多种平台(包括iOS,Android,Web和桌面),但某些功能可能仍不可用或存在平台限制。 3. 社区支持:虽然Flutter的社区正在迅速增长,但它仍然比Electron的社区小得多。这可能会导致在使用Flutter时缺少文档和示例代码等资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值