Project Icon

Bangumi

基于React Native的移动应用

这是一款基于React Native开发的Bangumi第三方移动应用,支持iOS和安卓平台。应用提供番剧进度管理、条目详情查看和社区互动等核心功能,涵盖了Bangumi网站的主要特性。界面经过移动端优化设计,提升用户交互体验。除常规功能外,还集成了跨平台数据同步、CDN加速、小圣杯、bilibili和豆瓣数据同步、番剧截图预览等特色功能,为用户提供全面的动漫管理和社区交流平台。

header

release license stars forks issues codacy downloads

Bangumi

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

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

iOS 和安卓版本都做了兼容,并尽最大努力保持一致性

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

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

关于本项目的更多说明,可以前往 语雀 查看

英文版

目录

下载

安卓 APK 下载

从 F-Droid 获取

AltStore 侧载 | iOS 上当前可用的方法 | Expo 主页

  • Google Play 版本因被恶意举报已暂停

  • 苹果 100 美元开发者账号已过期,期间未能通过审核,因功能太多且涉及社区、版权敏感等问题,加上最近还有备案要求,不可能再提交审核了

功能

基本功能

  • 番组进度管理
  • 条目、角色详情
  • 时间线(用户动态)
  • 超展开(帖吧)
  • 时光机(个人中心)、用户空间
  • 不限于搜索、排行榜、索引、目录、每日放送、年鉴、标签

特色功能

  • 其他站点同步到 bgm 功能(bilibili、豆瓣)
  • 封面图片和大部分脱敏静态数据覆盖到自费 CDN 中间层,访问高速化(意味着即使网页版遇到很慢或者挂掉的情况,客户端也能正常获取数据)
  • 番剧、游戏截图预览
  • 当季番剧精准到单集网络播放源、漫画源查询,找番剧、文库、游戏、音乐
  • 小圣杯(角色交易空气游戏,客户端独立设计 UI 和交互)

版本

8.12.0 - 2024/07/20

优化

  • [进度] 在设置里,选项卡允许自定义条目范围(若设置成只有一项,会只显示列表)
  • [每日放送] 更新 2024S3 番剧放送时间
  • [日志] 支持收藏
  • [条目] 标题旁的发布日期,支持显示到月份,需在设置中打开
  • [条目] 游戏条目有其他版本时,吐槽区支持只看当前版本
  • [电波提醒] 优化了好友申请的按钮显示时机
  • [UI] 缩小了 loading 提示,在超时后会显示关闭按钮
  • [找条目] 更新部分类型数据

修复

  • [帖子] 修复了编辑子楼层文本后,没有重新刷新显示的问题
  • [日志] 修复了编辑楼层回复闪退的问题
  • [安卓] 修复了不明原因导致整个客户端不响应点击冻结的问题(待验证)
  • [安卓] 点击行为改善(待验证)
  • 减少了图片相册大图不显示的频率(有部分依然不显示的无解,因为反盗链)
  • 修复了若干问题不详

所有更新日志

在线

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

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

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

gh-pages

Storybook 组件面板预览

gh-pages

预览

以下为 2024 年 5 月份,一些 UI 相对不重复的页面截屏 00 10 20 30 40 50 60 70 80 90 100 110 120

开发心得

这个仓库已经持续开发多年,当初并没有现在这么多简单而优秀的方案和第三方库,比如 react hooks、react-native-fast-image、react-native-reanimated、expo libraries,甚至连 pressable、color scheme 的概念都没有。所以代码中会存在大量老旧的,或者与你现在了解的 react-native 很多类似的实现,这些都很难通过使用新方案来迭代了。

使用 react-native 开发一个应用,要做到流畅需要下很大功夫,但不要说 rn 不行了,被放弃了不如 Flutter,只要写法正确一样可以很流畅。其实跟开发 web 应用没多大区别,但经过几年开发,影响流畅度的关键点无非就几个:

  • 不要渲染过大的图片(图片是所有因素中最影响流畅性的)
  • 尽量减少同时请求数、慢请求(包括图片的请求)
  • 对不可见区域延迟渲染
  • 多写函数式编程,多写异步逻辑,少用 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

详细

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

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] 官方接口

赞助

开发迭代不易,如果觉得客户端好用且有能力的话,可以赞助一下,也可以给个星星

https://yellow-cdn.veclightyear.com/0a4dffa0/bb692447-9cb1-43b6-a891-8b204be85dff.png https://yellow-cdn.veclightyear.com/0a4dffa0/5f7cf12a-7fef-4aa2-9406-d95c9b7311dc.png

Hits

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号