flutter 初识(开发体验,优缺点)

news2025/2/23 17:39:57

前言

最近有个跨平台桌面应用的需求,需要支持 windows/linux/mac 系统,要做个更新应用的小界面,主要功能就是下载更新文件并在本地进行替换,很简单的小功能。

花了几分钟构建没做 UI 优化的示例界面:
请添加图片描述

由于我们的客户端程序员最近很忙,没时间做这个功能,正好我有空而且感兴趣。调研了一下跨平台应用的几个开发框架,由于我的主语言是 go,一开始看了下 gowails,开发使用很方便,但是其是依赖 webview 的,在目标机器上一定要安装 webview 才能够使用,不在乎这点的可以用,编译出来的应用体积特别小,很好用。

这时突然想到 flutter 目前也支持了桌面端的应用开发,使用它主要是看中了:

  • GitHub 的星标多
  • Google 大厂背书
  • 社区活跃
  • dart 简单,易于上手
  • 移动端入手的,移动端开发较为完善
  • 性能高

上手用用试试吧!好用的话后续可以在团队里推广下。

flutter 的优缺点

优点

  • 快速的开发周期: 虽然热重载现在大部分框架都支持了,但是也提一下,热重载功能使开发周期变得更快。你可以在应用运行时实时看到代码更改的效果,这有助于快速调试和迭代开发。
  • 漂亮的用户界面: flutter 提供丰富的内置小部件和自定义绘制选项,使开发者能够轻松创建精美且高度定制化的用户界面。
  • 高性能: flutter 使用 Skia 图形引擎进行渲染,可以在不同平台上实现高性能的用户界面体验。它还可以通过自带的硬件加速特性提供流畅的动画和过渡效果。
  • 单一代码库: 开发者只需维护一个代码库,即可为多个平台生成应用程序,这简化了代码维护和团队协作。
  • 丰富的社区支持: flutter 拥有一个庞大且积极的社区,提供了大量的资源、插件和解决方案,帮助开发者解决问题并加速开发进程。

缺点

  • 应用大小: 由于 flutter 应用程序需要包含其自身的运行时引擎和框架,因此应用的初始大小可能会比较大。虽然 Google 在不断努力减小应用的大小,但对于某些应用来说,这仍然可能是一个问题。
  • 平台特定性: 虽然 flutter 可以构建跨平台应用,但在某些情况下,特定平台的特性和行为可能无法完全抽象化,需要进行特定平台的定制开发。这应该是所有跨平台应用都需要面对的问题。
  • 第三方库支持: 虽然 flutter 社区提供了许多插件和库,但与其他一些平台相比,某些特定领域的第三方库可能相对较少。特别是桌面端的开发,目前支持还是比较少的。
  • 更新频率: flutter 框架在不断发展,新版本会带来新特性和改进,但这也可能导致需要频繁更新应用以保持与最新版本的兼容性。毕竟是新东西,多修修 bug 是好事。

我的跨平台开发经验

专做移动端的 phonegap(cordova) => 专做桌面端的 electron => 兼容小程序的 uniapp => 移动桌面端 flutter

总结

flutter 的上手难度还行,整体开发体验还不错,中文社区也挺强大的,基本上问题一搜都能有解答。

不过我做上述的小应用,还是花了一天的时间(搭建开发环境、熟悉其框架结构以及基础语法,数据请求等),主要还是遇到了一个编码的坑,长时间没找到解决方案。

这里要吐槽一下,我做的应用有个解压缩的功能,遇到了 gbk 编码问题,flutter 对中国用户真是不怎么友好,这个问题花了好半天,最后还是翻源码才解决(可能是我太菜了 =-=!)。

跨平台提供了便利性,同样也提高了复杂性,对开发者的知识广度还是有需求的。在使用这些跨平台的开发框架时,若是比较底层的,免不了要和原生打交道,一般问题多找找还是能够找到解决方案的。

在选择使用 flutter 还是其他技术时,应该根据项目需求和团队经验来进行权衡和决策。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/863570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据分析两件套ClickHouse+Metabase(二)

Metabase篇 Metabase安装部署 任何问题请查看 -> 官方文档 jar包从GitHub下载 -> 地址 同样有个问题, 默认数据源里没有ClickHouse, 不过ClickHouse官方提供了插件包 -> 插件包 在安装metabase目录下新建一个plugins文件夹, 把下载的clickhouse.metabase-driver.ja…

JavaSpring加载properties文件

手动加载 #properties文件 jdbc.driver1 <?xml version"1.0" encoding"UTF-8"?> <!-- 开启context命名空间--> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XM…

glove安装中的问题

万恶之源&#xff1a; >>> from glove import Glove Traceback (most recent call last):File "<stdin>", line 1, in <module>File "D:\code_related_software\Anaconda\lib\site-packages\glove\__init__.py", line 1, in <mod…

详解C语言函数:深入了解函数的使用和特性

目录 引言 一、函数的概念 1.1 函数关键特点 1.2 函数的组成部分 1.3 函数声明和定义格式 二、函数分类 2.1 库函数 使用库函数的步骤 2.2 自定义函数 创建自定义函数的步骤 三、函数的参数类型 3.1 形式参数&#xff08;形参&#xff09;&#xff1a; 格式&#x…

【碎碎念随笔】1、回顾我的电脑和编程经历

✏️ 闲着无事&#xff0c;讲述一下我的计算机和代码故事 一、初识计算机 &#x1f5a5;️ 余家贫&#xff0c;耕植无钱买电脑。大约六年级暑假&#xff0c;我在姐姐哪儿第一次接触到了计算机&#xff08;姐姐也是买的二手&#xff09;。 &#x1f5a5;️ 计算机真有趣&#x…

如何投诉删除360搜索下拉词?

有的企业发现自己品牌在360搜索下拉框里会展现出来一些负面词&#xff0c;如骗子、跑路、倒闭等&#xff0c;有企业咨询能不能删除360搜索下拉里的负面词&#xff1f;小马识途营销顾问分析要看具体情况&#xff0c;按经验如果是涉及诋毁诽谤的词&#xff0c;投诉到平台能够删除…

检测新突破 | AlignDet:支持各类检测器自监督新框架(ICCV2023)

引言 论文链接&#xff1a;https://arxiv.org/abs/2307.11077 项目地址&#xff1a;https://github.com/liming-ai/AlignDet 这篇论文主要研究目标检测领域的自监督预训练方法。作者首先指出&#xff0c;当前主流的预训练-微调框架在预训练和微调阶段存在数据、模型和任务上的…

Kafka的下载和安装

一、Kafka下载和安装 下载地址&#xff1a;https://kafka.apache.org/downloads 下载完毕解压即可 linux解压命令tar -zxvf kafka_2.13-3.5.1.tgz&#xff0c;linux环境下指令是在\kafka_2.13-3.5.1\bin目录。 windows直接解压即可&#xff0c;windows环境下指令是在kafka_2.…

centos7 安装 docker 不能看菜鸟教程的 docker 安装,有坑

特别注意 不能看菜鸟教程的 docker 安装&#xff0c;有坑 如果机器不能直接上网&#xff0c;先配置 yum 代理 proxyhttp://172.16.0.11:8443 配置文件修改后即刻生效&#xff0c;再执行 yum install 等命令&#xff0c;就可以正常安装软件了。 参考 https://blog.csdn.net/c…

倒计时 1 天!浙江大学、乘云数字、阿里云等多位技术专家教授解读最新运维技术

莫听监控繁杂声&#xff0c;何妨观测且徐行&#xff1b; 智能诊断快胜马&#xff0c;一键运维定乾坤。 各位朋友们&#xff0c;距离系统运维 MeetUp 开始只剩 2 天&#xff01;此次 MeetUp 将围绕 Linux 的应用和系统可观测&#xff0c;eBPF 跟踪以及诊断技术等系统运维热门话…

ApiPost的使用

1. 设计接口 请求参数的介绍 Query:相当于get请求&#xff0c;写的参数在地址栏中可以看到 Body: 相当于 post请求&#xff0c;请求参数不在地址栏中显示。 请求表单类型&#xff0c;用form-data json文件类型&#xff0c;用row 2. 预期响应期望 设置完每一项点一下生成响应…

C#质检工具(StyleCop、SonarLint)

1、StyleCop StyleCop工具主要类似java中的checkStyle,是检查代码样式规范的工具。 1.1、StyleCop安装流程: 图1.1 图1.2 图1.3 安装StyleCop插件时可能会遇到下载特慢或卡住不动的情况,需注意: 1)网上说的关闭IPV6功能不管用 2)网上说的自动指定dns不管用 3)网上…

ip地址怎么改 手机ip地址怎么修改

IP地址是指互联网协议地址&#xff0c;是给互联网上的每台设备分配的一个唯一的标识符。改变IP地址是在一定的条件下&#xff0c;为了实现一些特定的目的而对设备的网络配置进行调整。下面将介绍一些常见的改变IP地址的方法。我们可以通过重启路由器或者计算机来更改IP地址。在…

域名配置HTTPS

一、注册域名 这个可以在各大平台注册&#xff0c;具体看一下就会注册了&#xff0c;自己挑选一个自己喜欢的域名。 步骤一般也就是先实名&#xff0c;实名成功了才能注册域名。 二、办理SSL证书 这里使用的是阿里云的SSL免费证书 1、申请证书 二、填写申请 三、域名绑定生…

vue elementui v-for 循环el-table-column 第一列数据变到最后一个

这个动态渲染table表格时发现el-table-column 第一列数据变到最后一个 序号被排到后面 代码 修改后 <el-table:data"tableData"tooltip-effect"dark"style"width: 100%"height"500"><template v-for"(item, index) i…

【计算机网络】应用层协议Https

文章目录 前言Http加密方法对称加密非对称加密数据摘要&#xff08;数据指纹&#xff09;数字签名 加密方案只使用对称加密只使用非对称加密双方都使用非对称加密对称非对称 证书 前言 上一篇文章中&#xff0c;我们提到http是不安全的&#xff0c;尽管采用了cookie和session的…

数字电路 || 逻辑代数基础

逻辑函数和最小项 最大项和最小项 Tips&#xff1a;最小项的反是最大项&#xff0c;最大项的反是最小项。即&#xff0c; 计算题&#xff0c;分清与或式/或与式 转换关系 卡诺图 A是高位&#xff0c;BC是低位 在卡诺图上合并最小项&#xff1a;圈要少、圈最大&#xff0…

【word密码】Word编辑权限,如何设置?

Word文档可以设置加密来保护文件禁止修改&#xff0c;但是在word文档中设置限制编辑功能时对它的作用是否有详细的了解呢&#xff1f;今天为大家介绍word限制编辑功能的作用以及忘记了限制编辑密码该如何解决。 设置限制大家应该都清楚&#xff0c;就是点击工具栏中的审阅 – …

手机录音转文字让你工作更轻松

你是否经常需要把一段重要的录音转换成文字&#xff0c;但又不想手动去打字&#xff1f;现在&#xff0c;有许多手机软件可以帮助你实现这个目标&#xff0c;但面对如此多的选择&#xff0c;你可能会感到不知所措。不要担心&#xff0c;如果你还不知道录音转文字手机软件哪个好…

日常BUG ——乱码

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 A系统使用Feign调用B系统时&#xff0c;传递的String字符串&#xff0c;到了B系统中变为了乱…