一个 Material You 风格的 V2ex Android 客户端!完全使用 Compose 构建 UI!
该项目是一个练手项目,欢迎大家使用!如有发现体验的问题或者对 Android、Compose 使用不正确的地方,欢迎大家的批评和指正!
该项目已具备V站的大多的日常功能,如果对功能有想法,欢迎提交 pull request 或者 issues。
- UI 部分完全使用 Compose 实现;
- 简单实现了一个 HtmlText 组件,用于渲染主题和回复中的 Html,相对嵌入一个 WebView 来说效率更高;
- 主页:展示一些推荐节点的最新的主题;
- 节点导航页面:展示一些常用的节点;
- 搜索页面:支持搜索话题;
- 主题详情页面:展示主题的详细信息、评论列表;
- 节点详情页面:展示节点的详细信息、该节点下最近回复的主题;
- 用户信息页面:展示用户详细信息、用户创建的主题列表、用户的回复列表;
- 我的页面;
- 设置页面:支持一些简单的设置项;
- 登录;
- 消息通知;
- 创建主题;
- 创建回复;
- 收藏主题,忽略主题,感谢主题,感谢回复,忽略回复;
- 我的节点收藏,我的主题收藏,我的特别关注;
- 自动签到;
- 动态主题;
- 代理服务器;
- 高亮OP的回帖;
- 可点击回复中的楼层;
- 主页底部Tab,单击:回到顶部,双击:回到顶部并刷新;
V2compose 集成了 Firebase 的 Crashlytics 和 Analytics
功能,仅用于崩溃诊断、稳定性改进与基础使用统计,不用于广告跟踪。
登录、发帖、回帖、签到、搜索等功能会按用户操作与 V2EX 或搜索服务通信;相关隐私说明请参考 docs/privacy-policy.md。
V2compose 集成了 Firebase,开放的源码中不包含 Firebase 的密钥。
如果你需要构建自己的 V2compose 版本:
- Android:
- 创建自己的 Firebase 应用;
- 添加
androidApp/src/google/google-services.json。
- iOS:
- 在 Firebase Console 中分别为 bundle id
io.github.v2compose.iosApp和io.github.v2compose.iosApp.debug注册 iOS App; - 添加
iosApp/iosApp/GoogleService-Info.plist(Release); - 添加
iosApp/iosApp/GoogleService-Info-Debug.plist(Debug); - 先执行
xcodegen generate --spec iosApp/project.yml生成工程,再用 Xcode 构建; - iOS 侧 Firebase 官方 SDK 通过 Swift Package Manager 接入,最低系统版本为 iOS 15。
- 在 Firebase Console 中分别为 bundle id
- V2er-app/Android : 一个 Android 端的 V2ex 客户端,V2Compose 使用该项目的部分网络相关代码!
- sov2ex : 一个便捷的 V2EX 站内搜索引擎,V2Compose 使用该项目的 API 实现搜索 V2ex 的功能!
Thanks to JetBrains for supporting open source projects.
https://jb.gg/OpenSourceSupport.
V2compose
Copyright (C) 2023 cooaer
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.