Code Monkey home page Code Monkey logo

kyunkakata / bangumi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from czy0729/bangumi

0.0 0.0 0.0 83.79 MB

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

Home Page: https://bangumi-app.5t5.top/iframe.html?viewMode=story&id=screens-discovery--discovery

License: MIT License

JavaScript 1.56% Ruby 0.02% Objective-C 0.01% Java 0.32% TypeScript 97.28% CSS 0.23% Objective-C++ 0.08% Swift 0.01% HTML 0.40% SCSS 0.09%

bangumi's Introduction

header

release license codacy downloads issues

Bangumi

一个基于 React-NativeBangumi 第三方客户端

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

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

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

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

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

ENGLISH

目录

下载

安卓 APK 下载

Get it on F-Droid

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

  • Google Play 被恶意举报已搁置

  • 苹果 100 刀开发者账号已过期,期间没能过审,因为功能太多而且会涉及到社区、版权敏感等问题,而且最近还有备案条件,不可能再送审了

功能

基本功能

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

特色功能

  • 其他站点同步到 bgm 功能(bilibili、豆瓣)
  • 封面图片和大部分脱敏静态数据覆盖到自费 CDN 中间层,访问高速化(大概是网页版挂掉了也能看)
  • 番剧、游戏截图预览
  • 当季番剧精准到单集网络播放源、漫画源查询,找番剧、文库、游戏、音乐
  • 小圣杯(角色交易空气游戏,App 独立设计 UI 和交互)

版本

v8.5.0 - 2024/02/13

新增

  • [条目、超展开] 「绝交」功能替代原来的「屏蔽用户」(现在黑名单是与主站完全同步的,初始数据需要至少进入过超展开设置一次才会得到)
  • [发现] 实装 2023 年鉴,并优化了相关逻辑(安卓在打包后才发现顶部菜单遮住了,过几天在修复)

优化

  • [电波提醒] 现可以直接在页面里面处理好友请求
  • [帖子] 当自己的楼层被回复过是不允许修改的,添加了提示
  • [个人资料] 布局优化
  • [设置] 设置和超展开设置更换同步源头,超展开设置会自动同步
  • [进度] 鉴于最近主站访问量大增,现在当主站通信错误,底部添加轻提示
  • [进度] 若设置开启了一直显示放送时间,现在若有时间数据一定显示

修复

  • [时间胶囊] 修复了网页结构变动而导致的显示多余条目,修复了自己的时间线没显示删除的问题
  • [进度] 修复了长篇老番点击章节看到后,看过的结果不符合预期
  • [进度] 修复部分多季度番剧进度百分比错误的问题
  • [时光机] 修复了游戏/音乐等全部变成了动漫的“在看/想看/看过”,而不是以前的“在玩”“在听”等的问题
  • [条目] 修复了番剧简介翻译后,顺序会倒过来的问题
  • 修复了部分跳转到外部浏览器致命错误问题
  • 修复了小圣杯交易页面报错问题

在线

基于 @storybook/react-native 生成的 iframe.html,尽量少入侵原项目,自己开发了一个完整的单页面流程

Storybook 组件面板预览

国内部署 | gh-pages

SPA 应用预览 (仍在开发中,已支持基本预览,移动端最佳)

国内部署 | gh-pages

预览

以下为 2023 年 10 月份截屏,通常 2-3 周更新一次版本,因还在高速迭代阶段,版本之间 UI 可能存在较大差别

101 102 103 104 105 106 107 108 109 110

开发心得

使用 React-Native 开发一个 App,想做到流畅是需要下很大的功夫的,但不要说什么 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

详细

不要使用 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] 官方接口

投食

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

https://cdn.jsdelivr.net/gh/czy0729/Bangumi-Static@20210314/data/qr/alipay.png https://cdn.jsdelivr.net/gh/czy0729/Bangumi-Static@20210314/data/qr/wechat.png

Hits

bangumi's People

Contributors

czy0729 avatar livinfly avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.