Skip to content

Commit 09fa2ac

Browse files
authored
Merge pull request #7 from Sanotsu/refactor_and_perf
merge:合并一些修改
2 parents d87f623 + e4ec807 commit 09fa2ac

File tree

144 files changed

+3228
-6132
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+3228
-6132
lines changed

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,13 @@ app.*.map.json
4343
/android/app/profile
4444
/android/app/release
4545

46-
# 暂时不关注ios的构建
46+
# 暂时不关注其他的构建
4747
ios
48+
linux
49+
macos
50+
web
51+
windows
52+
4853
**/_demos
4954
**/_tests
5055

@@ -67,4 +72,5 @@ ios
6772
**/_old_readme/*
6873

6974
**bak*
75+
**_bak*
7076
**_self*

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## 0.2.1-beta.1
6+
7+
- refactor:
8+
- 饮食模块中 AI 大模型响应改为流式,可以更快看到结果输出
9+
- 稍微简化了动作和食物的 json 文件导入
10+
- chore:
11+
- 升级到 flutter3.24.4,同步更新工具依赖库到最新
12+
- 移除 Android 外其他平台环境内容
13+
- fix:
14+
- 修正饮食记录页面,指定餐次图片更新页面重复异动未按预期执行的问题
15+
- 检查大部分地方的 setState 前是否已经挂载
16+
- Card 的阴影样式稍微统一
17+
- 减少了一些无意义的 print 输出
18+
519
## 0.2.0-beta.1
620

721
- feat:

_dev_logs/dev_records.md

Lines changed: 77 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,83 @@
1616

1717
这是无关紧要的东西,记录一些开发过程中的细节,防止以为我忘记了。
1818

19+
- 2023-12-30 appbar 的 action 都优先 iconbutton
20+
21+
### 2024-11-12 起 重构小记
22+
23+
- perf: 基本就是清除 print 语句,检查 setState 前是否已经挂载,Card 的阴影大小,Padding 的边距值大小,和少量的 bug 修复。
24+
25+
#### 2024-12-03
26+
27+
- refactor: 重构调用大模型 API 为流式响应。
28+
29+
#### 2024-12-02
30+
31+
- 饮食大模块
32+
33+
#### 2024-11-26
34+
35+
- 我的模块
36+
37+
#### 2024-11-16
38+
39+
- 训练日志的导出模块
40+
41+
#### 2024-11-15
42+
43+
- exercise 动作模块
44+
- workout 训练模块
45+
- plan 计划模块
46+
47+
#### 2024-11-13
48+
49+
- 手记模块
50+
- 锻炼首页、饮食首页
51+
52+
### 2024-11-11
53+
54+
#### 升级 flutter 版本,更新兼容依赖
55+
56+
```sh
57+
$ flutter --version
58+
Flutter 3.24.4 • channel stable • https://github.com/flutter/flutter.git
59+
Framework • revision 603104015d (2 周前) • 2024-10-24 08:01:25 -0700
60+
Engine • revision db49896cf2
61+
Tools • Dart 3.5.4 • DevTools 2.37.3
62+
```
63+
64+
### 2024-07-12
65+
66+
- fix:修正较新版本 Android 下存储权限未正常获取的问题.
67+
- feat:添加了对饮食模块下“餐食相册”和“饮食日记”页面中指定餐次的食物图片,进行“AI 分析”的功能。
68+
69+
#### 餐食相册的备份还原
70+
71+
问题描述:
72+
73+
- 因为餐次的照片的上传是使用`FormBuilderFilePicker`实现的,底层是`file_picker`,实际是把图片缓存到了该库默认的位置,类似`/data/user/0/com.swm.free_fitness/cache/file_picker/菜品识别1.jpg`
74+
- 所以在重新安装 app,再恢复饮食日志的时候,餐次图片的地址就是上述缓存的位置;
75+
- 但由于卸载了 app,应用缓存的数据都丢了,也就无法再看到餐次图片了,那这个图片地址的备份实际没有作用了;
76+
- 当然,食物摄入量等其他信息不受影响。
77+
78+
TODO 思路:
79+
80+
- 第一种:
81+
- 上传时,把图片文件存入 db;
82+
- 展示、备份恢复等直接处理图片文件数据
83+
- 第二种:
84+
- 上传时,依旧把图片放到`FormBuilderFilePicker`的默认到缓存中;
85+
- 备份时,把图片文件从缓存中获取(比如存为单独的图片 zip),连同 db 中的其他导出的 json 数据一起备份到压缩包;
86+
- 恢复时,把图片放到缓存路径,然后把 json 数据中的图片地址替换为缓存路径;
87+
- 第三种(预计使用这种**就跟导入基础动作的图片一样**,但同样的问题有 2:1 权限、2 直接在文件管理器中误删):
88+
- 上传时,把图片放到外部路径,卸载 app 不删除图片缓存;
89+
- 展示、备份恢复等使用外部存储的路径;
90+
- 现在上传的餐食图片会保留在`/storage/emulated/0/FREE-FITNESS/MealPhotos`,应用卸载后该位置的图片也不会被删除。
91+
92+
### 2024-07-08
93+
94+
- feat:添加了 dio http client 的自定义封装;添加在“饮食”-“饮食日记”页面中“AI 对话助手”功能。
95+
1996
### 2024-07-06
2097

2198
#### 升级 flutter 版本,更新兼容依赖
@@ -544,38 +621,6 @@ dart devtools --appSizeBase=apk-code-size-analysis_09.json
544621

545622
</details>
546623

547-
### 2024-07-08
548-
549-
- feat:添加了 dio http client 的自定义封装;添加在“饮食”-“饮食日记”页面中“AI 对话助手”功能。
550-
551-
### 2024-07-12
552-
553-
- fix:修正较新版本 Android 下存储权限未正常获取的问题.
554-
- feat:添加了对饮食模块下“餐食相册”和“饮食日记”页面中指定餐次的食物图片,进行“AI 分析”的功能。
555-
556-
#### 餐食相册的备份还原
557-
558-
问题描述:
559-
560-
- 因为餐次的照片的上传是使用`FormBuilderFilePicker`实现的,底层是`file_picker`,实际是把图片缓存到了该库默认的位置,类似`/data/user/0/com.swm.free_fitness/cache/file_picker/菜品识别1.jpg`
561-
- 所以在重新安装 app,再恢复饮食日志的时候,餐次图片的地址就是上述缓存的位置;
562-
- 但由于卸载了 app,应用缓存的数据都丢了,也就无法再看到餐次图片了,那这个图片地址的备份实际没有作用了;
563-
- 当然,食物摄入量等其他信息不受影响。
564-
565-
TODO 思路:
566-
567-
- 第一种:
568-
- 上传时,把图片文件存入 db;
569-
- 展示、备份恢复等直接处理图片文件数据
570-
- 第二种:
571-
- 上传时,依旧把图片放到`FormBuilderFilePicker`的默认到缓存中;
572-
- 备份时,把图片文件从缓存中获取(比如存为单独的图片 zip),连同 db 中的其他导出的 json 数据一起备份到压缩包;
573-
- 恢复时,把图片放到缓存路径,然后把 json 数据中的图片地址替换为缓存路径;
574-
- 第三种(预计使用这种**就跟导入基础动作的图片一样**,但同样的问题有 2:1 权限、2 直接在文件管理器中误删):
575-
- 上传时,把图片放到外部路径,卸载 app 不删除图片缓存;
576-
- 展示、备份恢复等使用外部存储的路径;
577-
- 现在上传的餐食图片会保留在`/storage/emulated/0/FREE-FITNESS/MealPhotos`,应用卸载后该位置的图片也不会被删除。
578-
579624
### TODO
580625

581626
- i18n 的中英文不全,很多地方使用的是` box.read('language') == "en" ? "AI analysis" : 'AI分析',`投机方式,如果系统就是英文那显示的还是中文。

android/app/build.gradle

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,27 @@ def keystorePropertiesFile = rootProject.file('key.properties')
3232

3333
android {
3434
namespace "com.swm.free_fitness"
35-
compileSdkVersion flutter.compileSdkVersion
36-
ndkVersion flutter.ndkVersion
35+
// compileSdkVersion flutter.compileSdkVersion
36+
// 安卓14(API 34) - java17 - AGP8
37+
compileSdkVersion 34
38+
// ndkVersion flutter.ndkVersion
39+
ndkVersion = "26.1.10909125"
3740

41+
// 2024-11-16 升级到java 17
3842
compileOptions {
39-
sourceCompatibility JavaVersion.VERSION_1_8
40-
targetCompatibility JavaVersion.VERSION_1_8
43+
// sourceCompatibility JavaVersion.VERSION_1_8
44+
// targetCompatibility JavaVersion.VERSION_1_8
45+
sourceCompatibility JavaVersion.VERSION_17
46+
targetCompatibility JavaVersion.VERSION_17
47+
}
48+
49+
kotlinOptions {
50+
// jvmTarget = '1.8'
51+
jvmTarget = '17'
52+
}
53+
54+
sourceSets {
55+
main.java.srcDirs += 'src/main/kotlin'
4156
}
4257

4358
// 在构建应用时打包压缩的原生库
@@ -48,14 +63,6 @@ android {
4863
}
4964
}
5065

51-
kotlinOptions {
52-
jvmTarget = '1.8'
53-
}
54-
55-
sourceSets {
56-
main.java.srcDirs += 'src/main/kotlin'
57-
}
58-
5966
defaultConfig {
6067
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
6168
applicationId "com.swm.free_fitness"

android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
zipStoreBase=GRADLE_USER_HOME
44
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
5+
# distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
6+
distributionUrl = https\://services.gradle.org/distributions/gradle-8.7-all.zip

android/settings.gradle

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,15 @@ pluginManagement {
1818

1919
plugins {
2020
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
21-
id "com.android.application" version "7.3.0" apply false
22-
// id "org.jetbrains.kotlin.android" version "1.7.10" apply false
23-
// 有些库需要更新的kotlin版本
24-
// https://stackoverflow.com/questions/70919127/your-project-requires-a-newer-version-of-the-kotlin-gradle-plugin-android-stud
25-
id "org.jetbrains.kotlin.android" version "2.0.0" apply false
21+
// id "com.android.application" version "7.3.0" apply false
22+
// // id "org.jetbrains.kotlin.android" version "1.7.10" apply false
23+
// // 有些库需要更新的kotlin版本
24+
// // https://stackoverflow.com/questions/70919127/your-project-requires-a-newer-version-of-the-kotlin-gradle-plugin-android-stud
25+
// id "org.jetbrains.kotlin.android" version "2.0.0" apply false
26+
27+
id 'com.android.application' version '8.6.0' apply false
28+
id 'com.android.library' version '8.6.0' apply false
29+
id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
2630
}
2731

2832
include ":app"

0 commit comments

Comments
 (0)