Skip to content

About

基于 Jetpack Compose 的本地 TXT 阅读器,支持智能分章、翻页模式与 AI 协作开发流。

Resources

Stars

1 star

Watchers

0 watching

Forks

 
 

Repository files navigation

Star Ink 阅读 (Star Ink Reading)

Android 平台的小说阅读器应用,支持 TXT 格式文件的阅读、书架管理、分页翻页等功能。

项目简介

本项目是一个基于 Jetpack Compose 和 Room 数据库的 Android TXT 小说阅读器,支持分页阅读、主题切换、进度持久化等核心功能。

技术栈

  • 语言: Kotlin
  • UI 框架: Jetpack Compose + Material3
  • 数据库: Room (SQLite)
  • 导航: Navigation Compose
  • 架构: MVVM + Clean Architecture
  • 构建工具: Gradle (Kotlin DSL)

功能特性

核心功能

  • 📚 书架管理 - 书籍导入、删除、封面展示
  • 📖 阅读功能 - TXT 文件解析与分页显示
  • 🔢 分页模式 - HorizontalPager 实现的滑动翻页
  • 💾 进度持久化 - 阅读进度自动保存到本地数据库
  • 🎨 主题切换 - 米黄、白色、护眼、夜间四种阅读主题
  • 🔤 字体设置 - 字号、行间距、加粗等样式调整

交互功能

  • 👆 触摸手势 - 左/中/右三区点击区分(上一页/菜单/下一页)
  • 🔊 音量键翻页 - 支持使用音量键控制翻页
  • 🌙 沉浸模式 - 隐藏状态栏和导航栏的沉浸式阅读
  • 📑 目录导航 - 目录定位当前章节、章节搜索

项目结构

app/src/main/java/com/example/txtreader/
├── MainActivity.kt              # 主入口 Activity
├── TxtReaderApp.kt              # Application 类,初始化数据库
├── TxtParser.kt                 # TXT 文件解析器(章节分割)
├── CharsetDetect.kt             # 字符编码检测
├── ReaderFocusHolder.kt         # 阅读器焦点管理单例
├── ReaderViewModel.kt           # 阅读器 ViewModel
├── data/
│   ├── AppDatabase.kt           # Room 数据库
│   ├── Book.kt                  # Book Entity
│   └── BookDao.kt               # Book DAO
└── ui/
    ├── AppNav.kt                # 导航配置
    ├── ReaderScreen.kt          # 阅读页面
    ├── Pager.kt                 # 分页核心逻辑
    └── bookshelf/
        ├── BookshelfScreen.kt   # 书架页面
        └── BookshelfViewModel.kt

数据模型

Book Entity

字段 类型 说明
id Long 主键(自增)
title String 书名
filePath String 文件路径
originalUri String? 原始 URI
fileSize Long 文件大小
charset String 字符编码
totalChapters Int 总章节数
currentChapter Int 当前章节
currentPage Int 当前页码
addedAt Long 添加时间
lastReadAt Long? 最后阅读时间

快速开始

环境要求

  • Android Studio Arctic Fox 或更高版本
  • JDK 17+
  • Gradle 8.0+
  • Android SDK 34

构建步骤

# 克隆项目
git clone <repository-url>

# 进入项目目录
cd star-ink_-reading

# 同步 Gradle 依赖
./gradlew assembleDebug

# 运行应用
# 在 Android Studio 中选择 Run 'app'

导入书籍

  1. 打开应用进入书架页面
  2. 点击导入按钮,选择 TXT 文件
  3. 系统自动复制文件到应用私有目录并解析
  4. 书籍显示在书架中,点击即可阅读

开发规范

本项目遵循以下开发规范,详见 .trellis/spec/ 目录:

  • 数据库规范 - Room 使用单例模式,避免在主线程调用 DAO
  • 错误处理 - 三类错误来源:文件 I/O、Room 错误、SAF/ContentResolver 错误
  • 线程约束 - 文件 I/O 必须在 IO 调度器执行,禁止主线程文件操作
  • UI 状态 - ViewModel 错误字段需及时清空,避免永久残留

开发流程

项目使用 Trellis 工作流系统管理开发任务:

# 创建新任务
python .trellis/scripts/task.py create <task-name>

# 启动任务
python .trellis/scripts/task.py start

# 查看任务列表
python .trellis/scripts/task.py list

# 完成当前任务
python .trellis/scripts/task.py finish

版本历史

  • 阶段一: 书架与数据持久化
  • 阶段二: 分页模式(HorizontalPager + 分页)
  • 阶段三: AC-17 修复 + 阅读体验增强
  • 阶段四: 手势控制 + 沉浸模式 + 音量键翻页

许可证

本项目仅供学习交流使用。

About

基于 Jetpack Compose 的本地 TXT 阅读器,支持智能分章、翻页模式与 AI 协作开发流。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages