Skip to content

Clair-001/EatLater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EatLater - 冲动饮食干预应用

项目概述

EatLater 是一款专注于即时干预冲动性饮食行为的安卓应用。通过负面视觉刺激和暂停语义,帮助用户在产生强烈进食欲望但尚未完成下单或进食前的关键时刻,延迟或打断冲动决策。

技术架构

  • 开发语言: Kotlin
  • 架构模式: MVVM (Model-View-ViewModel)
  • UI 框架: Android Views + Data Binding
  • 测试框架: JUnit, Espresso, Kotest (属性测试)
  • 最低 Android 版本: API 24 (Android 7.0)
  • 目标 Android 版本: API 34 (Android 14)

项目结构

EatLater/
├── app/
│   ├── src/
│   │   ├── main/
│   │   │   ├── java/com/eatlater/app/
│   │   │   │   ├── data/
│   │   │   │   │   ├── model/           # 数据模型
│   │   │   │   │   │   ├── FoodInput.kt
│   │   │   │   │   │   └── InterventionContent.kt
│   │   │   │   │   └── repository/      # 数据仓库接口
│   │   │   │   │       ├── ImageLibrary.kt
│   │   │   │   │       ├── TextLibrary.kt
│   │   │   │   │       └── InterventionRepository.kt
│   │   │   │   └── ui/
│   │   │   │       ├── state/           # UI 状态管理
│   │   │   │       │   └── InterventionState.kt
│   │   │   │       ├── view/            # 视图接口
│   │   │   │       │   ├── InterventionView.kt
│   │   │   │       │   └── FoodInputView.kt
│   │   │   │       └── viewmodel/       # ViewModel 层
│   │   │   │           └── InterventionViewModel.kt
│   │   │   ├── res/                     # Android 资源文件
│   │   │   │   ├── values/
│   │   │   │   │   ├── strings.xml
│   │   │   │   │   ├── colors.xml
│   │   │   │   │   └── themes.xml
│   │   │   │   └── xml/
│   │   │   │       ├── data_extraction_rules.xml
│   │   │   │       └── backup_rules.xml
│   │   │   └── AndroidManifest.xml
│   │   └── test/
│   │       └── java/com/eatlater/app/
│   │           ├── TestConfig.kt        # 测试配置
│   │           └── data/model/          # 单元测试
│   │               ├── FoodInputTest.kt
│   │               └── InterventionContentTest.kt
│   ├── build.gradle.kts                 # 应用构建配置
│   └── proguard-rules.pro              # 代码混淆规则
├── gradle/wrapper/                      # Gradle Wrapper
├── build.gradle.kts                     # 项目构建配置
├── settings.gradle.kts                  # 项目设置
├── gradle.properties                    # Gradle 属性
└── gradlew.bat                         # Gradle Wrapper (Windows)

核心组件说明

数据层 (Data Layer)

  • FoodInput: 食物输入数据类,包含验证逻辑
  • InterventionContent: 干预内容数据类,包含图片和文案
  • ImageLibrary: 图片库接口,管理反差视觉图片
  • TextLibrary: 文案库接口,管理暂停引导文案
  • InterventionRepository: 数据仓库接口,协调各数据源

UI 层 (UI Layer)

  • InterventionState: 应用状态管理,使用密封类定义各种状态
  • InterventionView: 主界面视图接口
  • FoodInputView: 食物输入组件接口
  • InterventionViewModel: MVVM 架构的 ViewModel,管理业务逻辑

测试框架

  • JUnit: 单元测试框架
  • Espresso: Android UI 测试框架
  • Kotest: Kotlin 属性测试框架,用于验证正确性属性

构建和运行

前置要求

  • Android Studio Arctic Fox 或更高版本
  • JDK 8 或更高版本
  • Android SDK API 24-34

构建命令

# Windows
gradlew.bat build          # 构建项目
gradlew.bat test           # 运行单元测试
gradlew.bat connectedAndroidTest  # 运行 Android 测试

# Linux/Mac
./gradlew build            # 构建项目
./gradlew test             # 运行单元测试
./gradlew connectedAndroidTest     # 运行 Android 测试

开发状态

任务 1: 设置项目结构和核心接口 - 已完成

  • 创建了完整的 Android 项目目录结构
  • 定义了核心数据类和接口
  • 配置了测试框架 (JUnit, Espresso, Kotest)
  • 建立了 MVVM 架构基础

🔄 后续任务: 参见 .kiro/specs/impulse-eating-intervention/tasks.md

设计文档

详细的需求和设计文档位于:

  • 需求文档: .kiro/specs/impulse-eating-intervention/requirements.md
  • 设计文档: .kiro/specs/impulse-eating-intervention/design.md
  • 任务列表: .kiro/specs/impulse-eating-intervention/tasks.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages