Skip to content

:electron: An unofficial https://bgm.tv ui first app client for Android and iOS, built with React Native. 一个无广告、以爱好为驱动、不以盈利为目的、专门做 ACG 的类似豆瓣的追番记录,bgm.tv 第三方客户端。为移动端重新设计,内置大量加强的网页端难以实现的功能,且提供了相当的自定义选项。 目前已适配 iOS / Android / WSA、mobile / 简单 pad、light / dark theme、移动端网页。

License

Notifications You must be signed in to change notification settings

czy0729/Bangumi

Folders and files

NameName
Last commit message
Last commit date
Jan 13, 2024
Nov 14, 2024
Mar 20, 2025
Jun 8, 2022
Mar 12, 2025
Jan 4, 2025
Oct 25, 2024
Mar 25, 2025
Mar 10, 2023
Mar 8, 2025
Jan 5, 2022
Apr 14, 2021
Nov 12, 2024
Aug 6, 2023
Jan 1, 2024
Apr 14, 2021
Apr 14, 2021
Mar 8, 2025
Jul 23, 2024
Mar 8, 2025
Oct 19, 2023
Feb 13, 2024
Oct 26, 2024
Oct 26, 2024
May 2, 2022
Jan 7, 2024
Nov 30, 2024
Nov 14, 2024

Repository files navigation

header

release license stars forks issues codacy downloads

Bangumi

一个基于 react-nativeBangumi 第三方客户端

Bangumi 是一个用于管理追番进度(不限于动漫、音乐、日剧、游戏、AVG),发现和讨论番组的网站

iOS 和安卓都做了兼容,并最大限度保持一致

目前已开发不少于 100 个页面,基于移动端重新设计布局,几乎涵盖网站所有页面

本人并没有原生开发经验,用于练手 react-native,希望通过这个平台去学习更多

更多涉及到本项目的说明,可前往 语雀 查看

ENGLISH

下载

安卓 APK 下载 | AltStore 侧载 | iOS 上当前能使用的方法 | Expo 主页

  • Google Play 被举报下架,暂搁置

  • iOS 付费开发者账号已过期,期间没能过审,因涉及到社区、版权敏感、备案等问题,不考虑再送审了

功能

基本功能(网站原有功能)

带链接的支持网页预览(只能看不能操作)

扩展功能

版本

8.19.0 - 2025/03/08

修复

  • [电波提醒] 修复了进入详细页用户最新头像不一致的问题
  • 修复条目缩略框弹出坐标问题
  • [小圣杯] 修复大量问题
  • 修复大量细节问题,不详细说明

8.19.0

当前版本图文说明

所有更新 CHANGELOG

在线

基于 @storybook/react-native 6.5 生成的 iframe.html,尽量少入侵原项目的基础上,补全了一个完整的单页面流程(当然这样是不考虑性能问题的,不可能与正常开发的,例如使用 Next.js 的相提并论)。

关键代码实现:navigate | window popstate

因现在 expo 在网页上面已经很成熟,若以后有空再考虑使用同一套方案补全网页端。

SPA 应用预览(网页收藏管理条目相关功能不定期开发中,已支持基本的信息展示,移动端最佳)

Storybook 组件面板预览

预览

以下为 2024 年 5 月份,一些 UI 相对不重复的页面截屏。图片无法正常加载也可以前往 语雀 查看。

00 10 20 30 40 50 60 70 80 90 100 110 120

开发心得

从 react-native@0.37 就开始持续开发,当年并没有今天如此多简单而且优秀的方案和第三方库,比如 react hooks、react-native-reanimated、expo libraries,甚至连 Pressable、color scheme 这些概念都没有。最近还涌现了很多一站式解决方案,比如 expo-router,ones 都能在客户端和网页端上直出高性能构建。现在代码上会存在大量老旧的又或者与你现在了解到的 react-native 很多雷同的实现,都已经很难通过使用新的方案迭代过来。

使用 react-native 开发客户端,想做到流畅是需要下很大的功夫的,写法没问题的话一样流畅够用。其实跟开发网页应用没多大区别,无非就是多了一些概念而且还需要转变思路。几年开发下来,关键影响到流畅度,无非就几个点:

  • 尽可能不要渲染过大的图片(是所有里面最影响流畅性的)
  • 尽量减少同时请求数、慢请求(包括图片的请求)
  • 尽量缓存计算过的结果
  • 对不可见区域延迟渲染(不像浏览器有现成的)
  • 多写函数式编程、异步逻辑,少用 this、循环
  • 如果可以,减少嵌套层数(网页影响更大)

本地开发

关于环境

详细

本人一直在 mac 环境下开发,iOS 使用 expo 客户端调试,安卓跑真机 usb 调试。

由于 4 年的迭代,不管是对于本项目,还是最初使用的 expo 来说,都已经大相径庭。iOS 目前只能跑在 expo 上,而安卓只能跑在 metro 上。

在 iOS 上想充分使用 expo 客户端简化调试流程,所以不会引入 expo 不支持的第三方库。而安卓上面想要最高的性能,所以后期已经从 expo 上面 eject 出来了,用上了很多第三方的性能优化库替代了原来的组件。

若你想在本地调试,不要在根目录安装包,而请先到 ./packages/[目标环境]/ 下使用 yarn 安装包,然后使用命令 yarn env [xxx] 来切换到目标开发环境,最后请参考这个时候根目录的 package.json 中的命令开发。通常预置的本地调试命令是 yarn dev。

遇到跑不起来,不要太过折腾,推荐在运行本项目之前,就应该使用官方提供的工作流预先把所有环境需要的库都安装好了。window 和 mac 的环境差异还是比较大的,可以查阅 Expo 官方文档。

关于 NPM

详细

不要使用 taobao 源头,可能会在跑环境时提示不允许代理。

npm config set registry https://registry.npmjs.org

国内环境,首次下载包有可能会异常地慢。因用了很多旧的依赖包,里面的包版本依赖混乱,为了不出错请使用 yarn 安装。

git clone https://github.com/czy0729/Bangumi
cd ./Bangumi
yarn

安卓真机 usb 调试遇到的问题

详细

不能安装请尝试在命令前添加 sudo。

安卓系统请打开开发者调试模式,需要至少进行一次打开 Android Studio 的同时连接 usb 允许添加调试。

调试请保证给应用安装权限,允许悬浮窗权限。

遇到 spawnSync adb ENOENT,参考 stackoverflow

第一次就遇到打包失败,看看是不是遇到 read timeout 等问题,表示需要科学上网。明明前一天还能打包成功,后一天就失败,也可能是依赖包无法获取的问题,因为 gradlew 依赖包只有 24 小时的缓存时间,尝试使用 --offline 命令。

常见错误,包括 mac M1

详细

已在 mac M1 上调试成功,最近购入了 M1,尝试实用新环境,iOS expo 运行一路顺风,但是打包 apk 遇到很多问题,总结如下:

  • 一定要使用正确的 JAVA jdk,不是 jre!

  • 打包前一定要安装 watchman,不然会遇到监听文件过多错误

  • 打包遇到失败,请进入 android 目录下执行 ./gradlew clean 后再重新打包

  • 打包失败,看见错误提示上面有 node_modules 包的名字,请尝试把这个包下载补全

  • 若出现各种无法预料的问题,请一定要尝试重启机器

免责

  • 本项目所有数据信息均来自各种网站,不提供任何形式的媒体下载、直接播放和修改功能

  • 本项目承诺不保存任何第三方用户信息

  • 本项目代码仅供学习交流,不得用于商业用途,若侵权请联系

致谢

[Bangumi-OnAir] ekibun 的单集播放数据源

[bangumi-mosaic-tile] weizhenye 的用户统计瓷砖库

[bangumi-data] 番组数据索引

[bangumi-api] 官方接口

投食

开发迭代不易,觉得客户端好用的,有能力的可以投喂一下,也可以给个星星

Star History Chart

Hits

About

:electron: An unofficial https://bgm.tv ui first app client for Android and iOS, built with React Native. 一个无广告、以爱好为驱动、不以盈利为目的、专门做 ACG 的类似豆瓣的追番记录,bgm.tv 第三方客户端。为移动端重新设计,内置大量加强的网页端难以实现的功能,且提供了相当的自定义选项。 目前已适配 iOS / Android / WSA、mobile / 简单 pad、light / dark theme、移动端网页。

Topics

Resources

License

Stars

Watchers

Forks