Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge:合并一些修改 #7

Merged
merged 4 commits into from
Dec 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,13 @@ app.*.map.json
/android/app/profile
/android/app/release

# 暂时不关注ios的构建
# 暂时不关注其他的构建
ios
linux
macos
web
windows

**/_demos
**/_tests

Expand All @@ -67,4 +72,5 @@ ios
**/_old_readme/*

**bak*
**_bak*
**_self*
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@

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

## 0.2.1-beta.1

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

## 0.2.0-beta.1

- feat:
Expand Down
109 changes: 77 additions & 32 deletions _dev_logs/dev_records.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,83 @@

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

- 2023-12-30 appbar 的 action 都优先 iconbutton

### 2024-11-12 起 重构小记

- perf: 基本就是清除 print 语句,检查 setState 前是否已经挂载,Card 的阴影大小,Padding 的边距值大小,和少量的 bug 修复。

#### 2024-12-03

- refactor: 重构调用大模型 API 为流式响应。

#### 2024-12-02

- 饮食大模块

#### 2024-11-26

- 我的模块

#### 2024-11-16

- 训练日志的导出模块

#### 2024-11-15

- exercise 动作模块
- workout 训练模块
- plan 计划模块

#### 2024-11-13

- 手记模块
- 锻炼首页、饮食首页

### 2024-11-11

#### 升级 flutter 版本,更新兼容依赖

```sh
$ flutter --version
Flutter 3.24.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 603104015d (2 周前) • 2024-10-24 08:01:25 -0700
Engine • revision db49896cf2
Tools • Dart 3.5.4 • DevTools 2.37.3
```

### 2024-07-12

- fix:修正较新版本 Android 下存储权限未正常获取的问题.
- feat:添加了对饮食模块下“餐食相册”和“饮食日记”页面中指定餐次的食物图片,进行“AI 分析”的功能。

#### 餐食相册的备份还原

问题描述:

- 因为餐次的照片的上传是使用`FormBuilderFilePicker`实现的,底层是`file_picker`,实际是把图片缓存到了该库默认的位置,类似`/data/user/0/com.swm.free_fitness/cache/file_picker/菜品识别1.jpg`;
- 所以在重新安装 app,再恢复饮食日志的时候,餐次图片的地址就是上述缓存的位置;
- 但由于卸载了 app,应用缓存的数据都丢了,也就无法再看到餐次图片了,那这个图片地址的备份实际没有作用了;
- 当然,食物摄入量等其他信息不受影响。

TODO 思路:

- 第一种:
- 上传时,把图片文件存入 db;
- 展示、备份恢复等直接处理图片文件数据
- 第二种:
- 上传时,依旧把图片放到`FormBuilderFilePicker`的默认到缓存中;
- 备份时,把图片文件从缓存中获取(比如存为单独的图片 zip),连同 db 中的其他导出的 json 数据一起备份到压缩包;
- 恢复时,把图片放到缓存路径,然后把 json 数据中的图片地址替换为缓存路径;
- 第三种(预计使用这种**就跟导入基础动作的图片一样**,但同样的问题有 2:1 权限、2 直接在文件管理器中误删):
- 上传时,把图片放到外部路径,卸载 app 不删除图片缓存;
- 展示、备份恢复等使用外部存储的路径;
- 现在上传的餐食图片会保留在`/storage/emulated/0/FREE-FITNESS/MealPhotos`,应用卸载后该位置的图片也不会被删除。

### 2024-07-08

- feat:添加了 dio http client 的自定义封装;添加在“饮食”-“饮食日记”页面中“AI 对话助手”功能。

### 2024-07-06

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

</details>

### 2024-07-08

- feat:添加了 dio http client 的自定义封装;添加在“饮食”-“饮食日记”页面中“AI 对话助手”功能。

### 2024-07-12

- fix:修正较新版本 Android 下存储权限未正常获取的问题.
- feat:添加了对饮食模块下“餐食相册”和“饮食日记”页面中指定餐次的食物图片,进行“AI 分析”的功能。

#### 餐食相册的备份还原

问题描述:

- 因为餐次的照片的上传是使用`FormBuilderFilePicker`实现的,底层是`file_picker`,实际是把图片缓存到了该库默认的位置,类似`/data/user/0/com.swm.free_fitness/cache/file_picker/菜品识别1.jpg`;
- 所以在重新安装 app,再恢复饮食日志的时候,餐次图片的地址就是上述缓存的位置;
- 但由于卸载了 app,应用缓存的数据都丢了,也就无法再看到餐次图片了,那这个图片地址的备份实际没有作用了;
- 当然,食物摄入量等其他信息不受影响。

TODO 思路:

- 第一种:
- 上传时,把图片文件存入 db;
- 展示、备份恢复等直接处理图片文件数据
- 第二种:
- 上传时,依旧把图片放到`FormBuilderFilePicker`的默认到缓存中;
- 备份时,把图片文件从缓存中获取(比如存为单独的图片 zip),连同 db 中的其他导出的 json 数据一起备份到压缩包;
- 恢复时,把图片放到缓存路径,然后把 json 数据中的图片地址替换为缓存路径;
- 第三种(预计使用这种**就跟导入基础动作的图片一样**,但同样的问题有 2:1 权限、2 直接在文件管理器中误删):
- 上传时,把图片放到外部路径,卸载 app 不删除图片缓存;
- 展示、备份恢复等使用外部存储的路径;
- 现在上传的餐食图片会保留在`/storage/emulated/0/FREE-FITNESS/MealPhotos`,应用卸载后该位置的图片也不会被删除。

### TODO

- i18n 的中英文不全,很多地方使用的是` box.read('language') == "en" ? "AI analysis" : 'AI分析',`投机方式,如果系统就是英文那显示的还是中文。
31 changes: 19 additions & 12 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,27 @@ def keystorePropertiesFile = rootProject.file('key.properties')

android {
namespace "com.swm.free_fitness"
compileSdkVersion flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
// compileSdkVersion flutter.compileSdkVersion
// 安卓14(API 34) - java17 - AGP8
compileSdkVersion 34
// ndkVersion flutter.ndkVersion
ndkVersion = "26.1.10909125"

// 2024-11-16 升级到java 17
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
// sourceCompatibility JavaVersion.VERSION_1_8
// targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}

kotlinOptions {
// jvmTarget = '1.8'
jvmTarget = '17'
}

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}

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

kotlinOptions {
jvmTarget = '1.8'
}

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}

defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.swm.free_fitness"
Expand Down
3 changes: 2 additions & 1 deletion android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
# distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
distributionUrl = https\://services.gradle.org/distributions/gradle-8.7-all.zip
14 changes: 9 additions & 5 deletions android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,15 @@ pluginManagement {

plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.3.0" apply false
// id "org.jetbrains.kotlin.android" version "1.7.10" apply false
// 有些库需要更新的kotlin版本
// https://stackoverflow.com/questions/70919127/your-project-requires-a-newer-version-of-the-kotlin-gradle-plugin-android-stud
id "org.jetbrains.kotlin.android" version "2.0.0" apply false
// id "com.android.application" version "7.3.0" apply false
// // id "org.jetbrains.kotlin.android" version "1.7.10" apply false
// // 有些库需要更新的kotlin版本
// // https://stackoverflow.com/questions/70919127/your-project-requires-a-newer-version-of-the-kotlin-gradle-plugin-android-stud
// id "org.jetbrains.kotlin.android" version "2.0.0" apply false

id 'com.android.application' version '8.6.0' apply false
id 'com.android.library' version '8.6.0' apply false
id 'org.jetbrains.kotlin.android' version '2.0.20' apply false
}

include ":app"
Loading