Skip to content

sypw233/Journal

Repository files navigation

Journal - 智能日记应用

🌟 项目概述

Journal 是一款基于现代 Android 技术栈开发的智能日记应用,采用 Jetpack Compose 构建流畅的用户界面,集成 AI 写作助手情感分析 功能,为用户提供智能化的日记记录体验。

✨ 核心特性

🤖 AI 智能功能

  • AI 写作助手: 集成百度千帆 API,支持基于历史日记和图片的智能内容生成
  • 情感分析: 本地 TensorFlow Lite 模型 + 云端 API 双重情感识别
  • 智能标签: 自动提取日记关键词和情感标签
  • 个性化建议: 基于用户写作习惯的智能推荐

📝 日记管理

  • 富文本编辑: 支持 Markdown 格式,提供丰富的文本编辑体验
  • 多媒体支持: 图片附件管理,支持多张图片上传和预览
  • 位置标记: 集成高德地图 SDK,自动或手动添加位置信息
  • 日期自定义: 灵活的日期选择,支持补记历史日记
  • 收藏系统: 标记重要日记,快速访问珍贵回忆

🎨 用户体验

  • 现代化 UI: 完全基于 Jetpack Compose 构建的流畅界面
  • 手势交互: 直观的滑动操作,支持标记和删除
  • 动画效果: 精心设计的过渡动画和交互反馈
  • 响应式设计: 适配不同屏幕尺寸和方向
  • 暗色主题: 支持系统主题切换

🏗️ 技术架构

核心技术栈

技术领域 采用技术 版本
开发语言 Kotlin 2.0.21
UI 框架 Jetpack Compose 2025.03.01
架构模式 MVVM + Clean Architecture -
依赖注入 Hilt (Dagger) 2.51.1
数据库 Room 2.6.1
网络请求 Retrofit + OkHttp 2.11.0 / 4.12.0
异步处理 Kotlin Coroutines -
图片加载 Coil 3.1.0
AI 模型 TensorFlow Lite 2.15.0

架构设计

┌─────────────────────────────────────────────────────────────┐
│                    Presentation Layer                       │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │   Compose   │  │  ViewModels │  │    UI Components    │ │
│  │   Screens   │  │             │  │                     │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                              │
┌─────────────────────────────────────────────────────────────┐
│                     Domain Layer                            │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │ Use Cases   │  │ Repositories│  │     Models          │ │
│  │             │  │ (Interfaces)│  │                     │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                              │
┌─────────────────────────────────────────────────────────────┐
│                      Data Layer                             │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │    Room     │  │   Remote    │  │      Utils          │ │
│  │  Database   │  │     API     │  │                     │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

关键模块

🧠 AI 模块

  • AIWritingViewModel: 管理 AI 写作功能的状态和逻辑
  • SentimentAnalysis: 本地情感分析模型集成
  • SentimentApiService: 云端情感分析 API 调用
  • 智能推荐引擎: 基于用户行为的个性化内容推荐

💾 数据管理

  • Room Database: 本地数据持久化,支持数据库版本迁移
  • Repository Pattern: 数据访问抽象层,统一本地和远程数据源
  • 数据同步: 自动备份和云端同步机制

🎯 核心功能

  • 权限管理: 动态权限请求和处理
  • 图片处理: Base64 编码、压缩和缓存管理
  • 位置服务: 高德地图集成,位置获取和地址解析
  • 主题系统: 动态主题切换和自定义配色

🚀 技术亮点

性能优化

  • 懒加载: 使用 Paging 3 实现高效的列表分页加载
  • 内存管理: 图片缓存策略和内存泄漏防护
  • 构建优化: R8 代码混淆和资源压缩
  • APK 拆分: 基于 ABI 的多 APK 构建策略

安全特性

  • 数据加密: 敏感数据本地加密存储
  • 网络安全: HTTPS 强制和证书固定
  • 权限最小化: 按需申请和使用权限

开发体验

  • 模块化设计: 清晰的代码组织和模块分离
  • 依赖注入: Hilt 提供的编译时依赖检查
  • 类型安全: Kotlin 的空安全和类型推断
  • 协程支持: 结构化并发和异常处理

📊 项目统计

  • 最低 Android 版本: API 28 (Android 9.0)
  • 目标 Android 版本: API 35 (Android 15)
  • 编译工具版本: AGP 8.9.0
  • Kotlin 版本: 2.0.21

🛠️ 开发环境

系统要求

  • Android Studio Ladybug | 2024.2.1+
  • JDK 21+
  • Android SDK 35+
  • Gradle 8.9+

快速开始

  1. 克隆项目

    git clone https://github.com/yourusername/Journal.git
    cd Journal
  2. 配置 API 密钥

    • app/src/main/kotlin/ovo/sypw/journal/common/APIKey.kt 中配置相关 API 密钥
    • 申请高德地图 API Key
    • 配置百度千帆 API 访问权限
  3. 构建运行

    ./gradlew assembleDebug

📄 许可证

本项目采用 MIT License 开源协议。

About

An Android APP to learn how to developed by jetpack compose

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages