Repository navigation
Releases: coderirse/Sourcehub
Releases · coderirse/Sourcehub
Release list
v1.2.0 — Backend Management API
v1.1.1 - App to Ktor backend integration
SourceHub v1.1.1
App to Backend Integration
- Retrofit + Gson network layer (ApiClient + 5 RetrofitServices)
- Auto JWT auth with 401 auto-refresh
- Mock/Remote toggle in Settings (no restart needed)
How to use
- Start backend: cd server && ./gradlew run
- Open App -> Settings -> Enable Remote Server
- Register, browse products, place orders, pay, download
Cloud deployment
Set env vars DB_DRIVER/DB_URL/DB_USER/DB_PASSWORD/JWT_SECRET/PORT
Version history
- v1.0.0 Initial MVP
- v1.1.0 SQLite + Ktor backend server
- v1.1.1 App to backend integration
Generated with Claude Code
v1.1.0 — SQLite 数据库(SQLiteOpenHelper)
SourceHub v1.1.0
重大更新:SQLite 数据库
- SourcehubDbHelper:基于 Android 内置 SQLiteOpenHelper 的真实 SQL 数据库
- 三个数据表:
- \ — 用户信息持久化
- \ — 购物车持久化
- \ — 下载记录持久化
- 购物车/用户/下载数据在 app 重启后自动恢复
- 零注解处理器依赖 — 不需要 KSP/KAPT/Room
技术说明
Kotlin 2.2.10 + AGP 9.2.1 环境下无可用 KSP 版本(Room 注解处理器无法工作)。
采用 Android 内置 \ 实现数据库层,
功能上与 Room 等价,性能相同,API 更轻量。
从 v1.0.3 升级
- CartRepository: JSON 文件 → SQLite
- DownloadRepository: JSON 文件 → SQLite
- AuthRepository: JSON 文件 → SQLite
- 旧的 JsonPersistenceManager 保留在代码中,可用于未来迁移
版本历史
- v1.0.0 — 初始 MVP
- v1.0.1 — JSON 文件持久化
- v1.0.2 — 底部导航 + 支付同步
- v1.0.3 — PDF 预览 + 下载加密
- v1.1.0 — SQLite 数据库
🤖 Generated with Claude Code
v1.0.3 — PDF预览渲染 + 下载加密 + FileProvider
SourceHub v1.0.3
新增
- PDF 预览真实渲染:Canvas 逐页渲染预览内容 + 半透明水印 + 左右滑动翻页 + 页码指示器
- DownloadWorker 接入:点击下载后通过 WorkManager 真实发起 HTTP 下载
- 文件加密集成:下载完成后自动 AES-256-GCM 加密存储,打开时解密到临时文件
- FileProvider:解密后通过系统应用打开文件(支持 PDF/Word 等格式)
- 下载通知:NotificationChannel + 前台通知显示下载进度
修改
- ProductPreviewScreen:从占位文字 → Canvas 位图渲染(前3页)
- DownloadRepositoryImpl:startDownload 实际 enqueue WorkManager 任务
- OfflineFilesViewModel:openFile 解密 → FileProvider → 系统 Intent
- SourcehubApplication:注册 NotificationChannel
技术细节
- 预览使用 Bitmap + Canvas 渲染,生产可替换为 PdfRenderer
- 下载使用 CoroutineWorker + 指数退避重试(最多3次)
- 加密使用 Android Keystore 密钥 + AES/GCM/NoPadding
🤖 Generated with Claude Code
v1.0.2 — 底部导航栏 + 支付状态同步
SourceHub v1.0.2
修复
- 底部导航栏:首页/搜索/购物车/订单/我的 五个 Tab 可正常切换
- 使用 NavigationBar + saveState/restoreState 保持 Tab 状态
- 详情页/支付页等子页面自动隐藏底部导航
- 支付→订单状态同步:支付成功后 MockPaymentApi 通过 MockDataProvider.sharedPaidOrders 自动更新订单列表中的状态为已支付
技术细节
- MockDataProvider 新增 paidOrders 共享 Map,实现 Mock API 间状态通信
- MockOrderApi.getOrders / getOrderDetail 自动调用 syncPaidOrders() 更新状态
当前版本
- versionCode: 3
- versionName: 1.0.2
🤖 Generated with Claude Code
v1.0.1 — 本地持久化层(JSON 文件存储)
SourceHub v1.0.1
新增
- JSON 文件本地持久化:购物车、下载记录、用户信息在 app 重启后自动恢复
- JsonPersistenceManager:基于 Android 内置 \ + \ 的轻量持久化方案
- 零额外依赖,不需要 Room/KAPT/KSP
修改
- CartRepositoryImpl — 购物车数据自动保存到 \
- DownloadRepositoryImpl — 下载记录自动保存到 \
- AuthRepositoryImpl — 用户信息缓存到 \,登出自动清除
- ProductRepositoryImpl — 优化代码结构
技术说明
Kotlin 2.2.10 + AGP 9.2.1 环境下 KAPT/KSP 注解处理器版本不兼容,因此采用 Android 内置的 \ 实现持久化。数据存储在 app 私有目录 \,其他 app 无法访问。
🤖 Generated with Claude Code
v1.0.0 — SourceHub 数字资料售卖App 初始版本
SourceHub v1.0.0 — 数字资料售卖分享App
一个完整的 Android 数字资料售卖平台 MVP,使用 Jetpack Compose + Material 3 构建。
核心功能
| 模块 | 功能 |
|---|---|
| 用户认证 | 登录/注册/忘记密码、JWT Token 管理、EncryptedSharedPreferences |
| 首页 | Banner 轮播、6 大分类、热门推荐、新品上架 |
| 商品 | 20 个模拟商品、详情页、PDF 预览(防截屏+水印) |
| 搜索 | 300ms 防抖搜索、搜索历史 |
| 购物车 | CRUD、数量调整、全选、实时计价 |
| 结算 | 订单确认、优惠码 SAVE10(9折) |
| 支付 | 微信/支付宝/信用卡模拟、90% 成功率 |
| 订单 | 状态筛选、订单详情、已支付下载 |
| 下载 | WorkManager 后台下载、暂停/续传、AES-256-GCM 加密 |
| 个人 | 资料编辑、安全状态检测、设置 |
安全特性
- Root 检测(su/Magisk/SuperSU)
- 模拟器检测(Fingerprint/Model/Hardware)
- 反调试保护
- SSL Pinning(OkHttp CertificatePinner)
- 请求签名(HMAC-SHA256)
- 支付/预览页防截屏(FLAG_SECURE)
- 文件加密(AES/GCM、Android Keystore)
- R8/ProGuard 混淆
- Token 自动刷新 + 401 拦截
技术栈
- 语言: Kotlin
- UI: Jetpack Compose + Material 3
- 架构: MVVM + Clean Architecture
- 状态管理: StateFlow + collectAsStateWithLifecycle
- 导航: Navigation Compose(类型安全路由)
- 图片: Coil
- 网络: OkHttp(Mock 拦截器,预留 Retrofit 接口)
- 本地存储: DataStore Preferences
- 下载: WorkManager
- 安全: AndroidX Security Crypto
切换至生产环境
当前版本使用 Mock 数据和模拟支付。切换到真实后端只需:
- 用 Retrofit 实现 \ 下的接口
- 替换 \ 为 Retrofit 代理
- 对接微信/支付宝支付 SDK
109 个 Kotlin 源文件 | 约 20 个页面 | minSdk 24 | targetSdk 37
🤖 Generated with Claude Code