记Flutter windows桌面端开发实战

前言

从今年1月份开始项目落实后开始使用flutter进行windows桌面应用开发,到现在出了第一个大版本,历时大致2个半月,项目组主要成员2个,后边面临开发压力先后又有2位开发加入完成一小部分溢出功能。

开发前准备

调研了大量flutter windows方面的开发小部件、注意事项、插件依赖库等,以下列出主要用到的插件:

UI框架使用:fluent_ui(符合Microsoft Windows UI 准则且flutter官方推荐的ui框架

UI交互(状态管理)使用:Provider(Flutter 官方推荐的状态管理方式)

网络请求使用:dio(flutter中最受欢迎的网络请求插件)

数据库使用:sqlite3、sqlite3_flutter_libs(flutter packages 网站上使用量靠前的数据库插件)

国家化使用:intl(flutter官方力荐)

完整的pubspec.yaml依赖如下:

fluent_ui:
    git: https://github.com/bdlukaa/fluent_ui.git
  system_theme: ^2.1.0
  flutter_acrylic: ^1.1.0+1
  window_manager: ^0.3.0
  provider: ^6.0.5
  dio: ^5.0.0
  sqlite3: ^1.9.1
  sqlcipher_flutter_libs: ^0.5.4
  worker_manager: ^5.0.0
  # flutter_nsd: ^1.3.3
  flutter_nsd:
    path: ./packages/flutter_nsd
  logging: ^1.1.1
  universal_disk_space: ^0.2.3
  freezed: ^2.3.2
  device_info_plus: ^8.1.0
  synchronized: ^3.0.1
  crypto: ^3.0.2
  sprintf: ^7.0.0
  number_paginator: ^0.2.3
  multi_image_picker_view: ^0.0.15
  expandable: ^5.0.1
  path: ^1.8.3
  shelf: ^1.4.0
  shelf_router: ^1.1.3
  network_info_plus: ^3.0.2
  connectivity_plus: ^3.0.3
  pretty_dio_logger: ^1.3.1
  dio_smart_retry: ^5.0.0
  jwt_decoder: ^2.0.1
  uuid: ^3.0.7
  ansicolor: ^2.0.1
  screen_retriever: ^0.1.6
  file_picker: ^5.2.6
  file_selector: ^0.9.2+4
  flutter_single_instance: ^0.0.1
  calendar_date_picker2: ^0.4.9
  path_provider: ^2.0.14

使用Fluent_ui搭建起整个项目结构,结合UX设计稿然后尽情coding carry。

开发后期:

打包exe安装包,官网或百度都能找到相关资料,其中flutter官网是主推msix进行打包,但存在兼容问题。我们主要还是打exe通用安装包(官网链接打包工具 文章结尾有提到【可使用Inno Setup、WiX等工具】)

你可能感兴趣的:(玩转flutter,flutter,windows,linux,macos)