Files
GithubStatsManager-Android/README.md
2026-04-27 23:58:12 +08:00

111 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GithubStarsManager
一个使用 React Native (Expo) 构建的移动端应用,用于管理和浏览你在 GitHub 上星标的仓库。
## 功能
- **同步星标仓库** — 通过 GitHub API 一键同步你所有星标的仓库
- **智能分类** — 自动根据仓库的语言、描述等特征对仓库进行分类
- **分类管理** — 手动调整仓库分类,支持拖拽排序
- **搜索筛选** — 按分类快速筛选仓库
- **数据本地存储** — 所有数据保存在本地 SQLite 数据库中,无需担心隐私问题
## 技术栈
| 技术 | 用途 |
|------|------|
| [React Native](https://reactnative.dev/) 0.81 | 跨平台移动框架 |
| [Expo](https://expo.dev/) SDK 54 | 开发工具链与原生模块管理 |
| [expo-sqlite](https://docs.expo.dev/versions/latest/sdk/sqlite/) | 本地数据持久化 |
| [react-native-markdown-display](https://github.com/iamacup/react-native-markdown-display) | Markdown 渲染 |
| [react-native-syntax-highlighter](https://github.com/conorhastings/react-native-syntax-highlighter) | 代码语法高亮 |
| [@expo/vector-icons](https://docs.expo.dev/guides/icons/) | UI 图标系统 |
## 快速开始
### 前置条件
- Node.js >= 18
- npm 或 yarn
- GitHub 个人访问令牌Personal Access Token
### 获取 GitHub Token
1. 访问 [GitHub Settings > Developer settings > Personal access tokens](https://github.com/settings/tokens)
2. 点击 **Generate new token (classic)**
3. 勾选 `repo` `user` 权限范围
4. 生成并复制 Token
### 安装与运行
```bash
# 克隆仓库
git clone https://github.com/EchoZenith/GithubStarsManager-Android.git
cd GithubStarsManager-Android
# 安装依赖
npm install
# 启动开发服务器
npx expo start
# 或在 Android 设备/模拟器上直接运行
npx expo run:android
```
首次启动时会提示输入 GitHub Token粘贴后即可开始同步仓库。
## 项目结构
```
GithubStarsManager/
├── assets/ # 应用图标与静态资源
│ ├── icon.png # 主图标
│ ├── adaptive-icon.png # Android 自适应图标
│ ├── splash-icon.png # 启动页图标
│ └── favicon.png # Web 图标
├── components/ # 可复用组件
│ ├── RepoItem.js # 仓库列表项
│ └── TokenInput.js # Token 输入组件
├── screens/ # 页面
│ ├── HomeScreen.js # 首页:仓库列表与分类浏览
│ ├── RepoDetailScreen.js # 仓库详情与 README 展示
│ ├── CategoryManageScreen.js # 分类管理
│ └── SettingsScreen.js # 设置页
├── services/ # 业务逻辑
│ ├── github.js # GitHub API 封装
│ ├── database.js # SQLite 数据库操作
│ └── categorizer.js # 自动分类引擎
├── App.js # 应用入口与路由
├── app.json # Expo 配置
└── package.json # 依赖管理
```
## 自动分类
应用内置了基于语言和关键词的自动分类引擎,支持 13 个分类:
| 分类 | 匹配逻辑 |
|------|---------|
| Web 应用 | HTML/CSS/JS/TS + 相关关键词 |
| 移动应用 | Java/Kotlin/Dart/Swift + 相关关键词 |
| 桌面应用 | C++/C#/Go/Rust/Zig + 相关关键词 |
| AI/机器学习 | Python + 机器学习相关关键词 |
| 数据库 | SQL + 数据库相关关键词 |
| 开发工具 | Shell/Dockerfile + 工具类关键词 |
| 安全工具 | 安全相关关键词 |
| 游戏 | 游戏开发相关关键词 |
| 设计工具 | UI/UX 相关关键词 |
| 效率工具 | 效率工具类关键词 |
| 教育学习 | Awesome/教程/文档类关键词 |
| 社交网络 | 社交/通讯类关键词 |
| 数据分析 | R/Julia + 数据分析类关键词 |
## 致谢
感谢 [AmintaCCCP/GithubStarsManager](https://github.com/AmintaCCCP/GithubStarsManager) 仓库提供的灵感与参考。
## 许可证
[MIT](LICENSE)