Flutter PC开发体验

前言

Flutter 3 完成了从以移动端为中心到多平台框架的路线图,提供了对 windows、macOS 和 Linux 桌面应用的支持,改进了很多支持,增加了新的生产力功能和性能改进特性等等。

好奇心驱使,抱着学习的心态,体验了下flutter版的桌面应用程序开发,在此分享下体验过程,以及一些遇到的坑。

本文涉及的开发内容主要在windows 10平台进行。

安装Flutter环境

注意在国内网络环境下需要进行一些额外的环境配置:>>在中国网络环境下使用 Flutter | Flutter 中文文档 | Flutter 中文开发者网站

  • 其次,阅读Flutter 桌面支持文档。
    Flutter 桌面支持 | Flutter 中文文档 | Flutter 中文开发者网站
    可以看到flutter 2.1开始,已经较为稳定的支持windows平台了,3.0稳定版更是覆盖了当下主流的PC操作系统。
    如果要构建特定平台的桌面程序,可以参看特定平台的额外要求。
    这里举例Windows。

  • 根据Windows的额外要求文档,可以看到,我们需要给电脑安装Visual Studio 2022,并在安装选项中选择「使用 C++ 的桌面开发」。

这点的配置和Electron应用开发环境配置不太一样,Electron只有在需要调用一些原生链接库时,才需要电脑支持VisulaStudio环境。

不过VS安装过程也已经简化到下一步下一步程度了。过程没遇到什么问题。

Windows for Flutter 配置

  • 准备好windows开发环境后,还需要让flutter支持创建windows模板项目
# 使用下面命令打开平台支持 
> flutter config --enable-windows-desktop
# 使用下面命令关闭某个平台支持
 > flutter config --no-enable-windows

上面命令即可打开flutter windows开发之路,对应的将windows改成macos、linux也可以打开对应开发配置,不过同一操作系统只能支持同系统应用开发。

  • 检查是否已经支持windows环境
> flutter devices

可以看到,已经显示windows设备了。

C:\Users\zhujm>flutter devices
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
3 connected devices:

Windows (desktop) • windows • windows-x64    • Microsoft Windows [版本 10.0.19044.1706]
Chrome (web)      • chrome  • web-javascript • Google Chrome 101.0.4951.67
Edge (web)        • edge    • web-javascript • Microsoft Edge 101.0.1210.39

新建Flutter项目

  • 创建一个flutter项目
> flutter create myapp
> cd myapp
  • 分析下项目目录结构
    image.png

    相对于移动端项目,在根目录下多了PC平台的文件夹,windows目录下,有windows运行所需的一些环境配置文件和依赖库。且windows目录大小为200MB。
    打开lib/main.dart,还是经典的计数器示例代码,没有额外的PC端适配代码。

运行Flutter for Windows

  • 在windows平台运行工程

第一次在自己电脑上运行flutter pc项目,记得打开windows的开发者模式,否则会报错Please enable Developer Mode in your system settings.,打开方式见这里:flutter windows开发报错Please enable Developer Mode in your system settings.

> flutter run -d windows

运行效果:


image.png

在编译约30s后,程序界面便运行出来了,支持热重载,默认横屏效果,如果是移动端迁移项目估计要做横屏适配了。

在第一次运行flutter pub add时,命令行有报错Bad UTF-8 encoding (U+FFFD; REPLACEMENT CHARACTER) found while decoding string,如果有小伙伴遇到这个问题,可以参看flutter 运行windows项目时报错 Bad UTF-8 encoding (U+FFFD; REPLACEMENT CHARACTER)

  • 根据应用开发三步走战略,接下来还需要研究下打包过程,根据以往的pc开发经验,pc打包还是比较复杂的。
    一番打包折腾,最终打出了一个misx安装包,并且完美在windows电脑上运行起来。
    具体打包过程:flutter windows项目打包初探 - 简书 (jianshu.com)

  • 安装目录分析


    根目录

    data目录

可以看到,flutter的业务逻辑相关代码,被封装成了app.so和一些dll文件

总结

  • 优势
    整体flutter 面向windows应用开发的流程比较友好,简洁,学习成本低,目前的生态强大,社区也很活跃,基础的应用开发应该只需要熟悉dart语言即可,类似于Electron只需要熟悉Js语言。

  • 劣势
    不足之处是原生方面的第三方插件目前较少,原生功能方面生态还有待完善。

  • 对比于Electron
    优于Electron的地方,就个人初步体验来看,首先可能是安装包的体积问题,这个Electron的硬伤在Flutter上基本不存在,Flutter的示例demo打出的安装包仅仅十几兆,相比于Electron示例demo打出的七八十兆安装包...,其次,可能是安全性方面,flutter的业务代码在打包后都被封装成链接库的形式,反编译需要有一定的技术基础,相比于electron生成的asar文件,可靠许多。
    另外,Flutter的一套代码几乎cover全平台也是Electron无法比拟的。

以上是个人的体验总结,欢迎大家评论区交流指正🤠。

PS:之前有使用Electron开发了一款Apk安装软件,已成为自己日常办公利器,欢迎移步阅读:使用Electron开发一款Apk安装器应用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,743评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,296评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,285评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,485评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,581评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,821评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,960评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,719评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,186评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,516评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,650评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,936评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,757评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,991评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,370评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,527评论 2 349

推荐阅读更多精彩内容