1 Star 12 Fork 6

MingGyGy / Flutter windows软件开发学习与探索

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
ISC

EWT(即:EssayWritingTool)论文写作助手

Flutter for windows开发论文写作助手,后期考虑移植到mac、linux终端

软件下载地址:

百度网盘链接: https://pan.baidu.com/s/11Lm_B8GkL6kxM-s5beGMjQ 密码: w6db

开发成员:

- Jarming

开始:

请在本项目目录下执行来拉取项目中用到的插件

flutter pug get

运行项目:(在windows端)

`flutter run -d windows`      
项目运行时执行热加载或局部刷新时需要保持windows窗体在屏幕中显示,不然有可能此次操作不生效,页面不生效的情况请再次摁下R。

构建windows执行文件:

`flutter build windows` 
文件将构建到项目目录:/build/windows/runner/Release
将此目录中的文件提取出来,用开源打包工具Inno打包。 
*.iss配置文件后续会添加到项目中方便构建时使用

系统底层通信:

1)、构建flutter for windows插件通过管道与C++相互调用。
`flutter create --template plugin --platforms windows hello_plugin`
2)、通过ffi与底层系统交互 
3)、通过win32 Api

项目功能及说明:

1、应用激活功能            √
2、应用更新迭代模块        √
3、降重页                  √
4、文章查重页              √ 
5、激活页面                √
6、使用前验证软件激活状态   √
7、激活状态存入本地持久化   √
8、对接后端降重接口         √
9、本地日志记录             √
10、降重历史记录            × 待完善
11、启动页                  × 后期实现
12、json系统配置文件        √

插件部分(不一定都用到该项目中只是做一个记录)

1. dio    
    网络请求库,用于基本http网络请求UDP及TCP连接,主要功能网络数据交互、异步数据请求、文件上传等……
2. flutter_swiper 
    轮播图插件,暂时没有功能用到该插件,主要做轮播图这块。
3. url_launcher
    url发射器,用于跳转外部链接、跳转外部应用等。
4. get (即:GetX)
    非常优秀的一款插件,集成状态管理、路由管理、依赖管理,主要用于对状态的控制,服务的初始化操作类似服务容器,页面路由管理带参传递无需携带上下文context即可完成页面跳转操作,就很nice。
5. shared_preferences
    数据持久化到本地,通过键值对的形式对数据进行持久化,目前支持存储值的类型Sting、StringList、Value等……。如需像管理数据库一样做数据持久化操作,推荐使用database或moor插件,如需了解更多自行去< https://pub.flutter-io.cn/ > 上搜索。
6. desktop_window
    这个可以设置windows、linux、MacOS的窗口大小,暂时用不上该插件,下面这个插件可以替代该插件
7. bitsdojo_window
    这个插件用来隐藏默认窗口标题栏及重新实现了窗口最小化、最大化及关闭窗口的事件,同时能设置窗体的默认大小。发现应用启动时会出现透明框闪烁,暂不考虑解决后期再做优化。
8. file_chooser
    文件选择器
9. kumi_popup_window
    windows弹窗插件
10. flutter_menu
    设置windows菜单栏
11. line_awesome_flutter
    提供1542个图标库,非常实用。 官网地址: ->  https://icons8.com/line-awesome   
12. win32
    Win32 api调用的包,以dart 的方式使用win32 api,无需通过写C来调用win32 api
13. graphx
    图像库,可加载gif图及动画效果等……
14. biometric_storage
    加密存储
15. flutter toast
    弹出提示框
16. auto_size_text
    自动适配字体大小
17. animations
    动画效果
18. shimmer
    微光效果,我们在加载列表的时候,数据没请求下来之前,一般会有个加载对话框的交互,也有闪烁骨架屏交互,下面我们在flutter中实现闪烁骨架屏的交互。
19. qr_flutter
    二维码,懂的都懂。至于支不支持windows那就不晓得了,毕竟也不可能带个windows电脑出去扫码付款
20. simple_update
    软件更新插件,支持全平台
21. flutter_update_dialog
    更新提示弹窗
22. package_info_plus
    应用信息
23. syncfusion_flutter_charts 
    数据可视化库

项目目录结构说明

/config/system_config.dat -> 系统配置文件,*.dat后缀名结尾的json文件,用json格式配置
/android -> 这个目录主要是开发安卓用的,现在暂时用不上,可以说是可有可无,强行将项目运行在安卓上会出现意想不到的异常。
/ios -> 同上所述,Ios依赖
/assets -> 静态资源文件存放目录,其中用到的文件需在pubspec.yaml注册使用
/build -> flutter build生成目录,为flutter程序运行时构建的临时目录
/integration_test -> 测试生成目录
/lib -> 主要核心代码目录
/lib/main.dart -> 项目执行入口文件
/lib/binding -> GetX捆绑类目录
/lib/config -> 配置文件目录
/lib/controller -> 控制器目录(即:状态管理),用于页面上数据控制管理。
/lib/pages -> 页面编写目录,以下的子目录即为页面中抽离的组件
/lib/routes -> 路由管理及页面管理,每新建一个页面请到该目录下的pages_register.dart文件中注册该页面
/lib/service -> 服务存放位置
/lib/test -> 测试文件及临时文件目录自己随便命名的
/test -> flutter 单元测试目录
/windows -> flutter windows 底层依赖目录,其中包含c++窗口程序及flutter相关注入。
/windows/runner -> windows 运行环境依赖
/windows/runner/main.cpp -> C++ windows 窗口入口文件
/windows/runner/win32_windows.cpp -> win32 api接口文件
/windows/runner/Runner.rc -> 项目配置文件,包括配置图标、版本号、应用信息等
/pubspec.yaml -> 配置文件
/README.md -> 项目说明文档
/log/~ -> 日志目录
/packaged/innosetup-6.1.2.exe -> inno软件打包安装工具
/packaged/ChinesSimplified.isl -> 打包软件中文简体字库

系统配置文件system_config.dat说明:

该文件用与程序初始化配置选项,若没有此文件则使用默认配置选项,以json格式字符串存储数据格式。
[配置文件样例/config/system_config.dat](http://gitlab.taowenkeji.com/liujiaming/flutter_jiangchong_windows_project/blob/master/config/system_config.dat)

注意:

C++代码中最好不要出现中文注释,不然可能会出现Unicode编码错误。
Dart与C++交互通过MethodChannel对象进行互相调用。
项目中有许多测试用的代码,虽然没有都用上,但希望以后能用得上。
显示桌面时会报左侧底部溢出的异常,但不影响程序正常运行。
某些特殊的操作需要页面被构建完成之后执行,可以用Future.delayed做一个延迟操作。
暂时不支持版本号超过3位 -> 正例:1.0.1  √  <-----> 反例:1.0.0.1  × 。
程序运行时会出现usound null safety(即:空安全)的问题,看了下文档dart,暂时没发现影响程序正常运行的情况。
windows 项目名更新为 -> essay_writing_tool (简称:EWT) android 及ios未修改,任然为zaojiangchong_project

特别提示:

对windows7兼容适配需要找到/windows/flutter/ephemeral/.plugin_symlinks/windows/bitsdojo_windows.cpp 文件getResizeMargin方法改为return 0; 注释getSizeOnScreen方法中的内容
若出现“无法启动此程序,因为计算机中丢失VCRUNTIME140_1.dll。尝试重新安装该程序以解i决此问题。”需要前往下载系统补丁:https://aka.ms/vs/16/release/vc_redist.x64.exe
ISC License Copyright (c) 2022, MingGyGy Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

简介

flutter windows端开源,此项目用于学习与探索。 展开 收起
ISC
取消

发行版 (1)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Dart
1
https://gitee.com/MingGyGy/flutter_jiangchong_windows_project.git
git@gitee.com:MingGyGy/flutter_jiangchong_windows_project.git
MingGyGy
flutter_jiangchong_windows_project
Flutter windows软件开发学习与探索
master

搜索帮助

14c37bed 8189591 565d56ea 8189591