SkillAgentSearch skills...

BiliCompose

由ComposeMultiplatform构建的跨平台的BiliBili客户端

Install / Use

/learn @suzhelan/BiliCompose
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

基于 ComposeMultiplatform(CMP)+KotlinMultiplatform(KMP) 的BiliBili 哔哩哔哩 跨平台客户端

个人练习使用 持续维护中

当前进度,更多内容可在您自行构建运行后查看,等待将来完成常用功能后会发布release,这或许不会很久

在这之前 你可以通过Action中的自动构建来查阅每夜版本(Android)

在手机(Android) <img width="1166" height="632" alt="IMG_20250920_202709" src="https://github.com/user-attachments/assets/3adb910d-13ea-41ce-b9d5-2e5197312e1a" />

在Desktop(Win) <img width="1589" height="1199" alt="image" src="https://github.com/user-attachments/assets/6c3c0497-2ab8-40d7-b7a1-727473c31e5a" /> <img width="1992" height="1063" alt="image" src="https://github.com/user-attachments/assets/6fed6603-7840-48be-99d8-75dafc1ba926" />

已适配的平台

  • [x] Android
  • [x] Win
  • [x] Linux(测试中)
  • [x] Mac(测试中)
  • [ ] Ios
  • [ ] Web

已实现的功能

  • [x] 登录功能
  • [x] 主页功能
  • [x] 主页推荐视频
  • [x] 主页热门视频
  • [x] 手机号登录
  • [x] 扫码登录
  • [x] 视频播放,点赞投币等
  • [x] 关注操作(关注,取关)分组添加设置删除等

等待实现的功能

  • [x] 我的页(基本指标已实现)
  • [x] 视频播放器(基本操作功能已实现)
  • [x] 评论区(查看已实现,等待实现发表)
  • [x] 竖屏短视频(基本功能已实现)
  • [x] 个人资料主页(实现中)
  • [ ] 搜索功能
  • [ ] 直播功能
  • [ ] 番剧功能
  • [ ] 专栏功能
  • [ ] 视频收藏
  • [ ] 私聊消息
  • [ ] 安卓画中画

正在解决的问题 目前困难问题已经全部解决!

  • [x] 播放器音频流和视频流无法声画同步(Android平台解决)
  • [x] 解决Desktop Player音频流和视频流同步的问题(VLC VideoUrl AudioUrl Sync),哔哩哔哩的视频使用的是音频链接+视频链接的视频流组合,目前VLCJ还没有找到可靠的方法来实现合并同步
  • [x] 解决Desktop Webview无法使用的问题(现有方案KCEF在Desktop上无法正常运行) 受到影响的功能: 登录业务-极验人机验证

项目架构

接口来自个人抓取与bilibili-API-collect公开的接口

技术栈

这些开源项目非常的伟大 他们为ComposeMultiplatform提供了不可代替的作用

模块划分

开发均需要在合适的模块进行开发,保持低耦合度与高性能

1.业务模块 biz 其中的模块包含

  • 登录
  • 用户
  • 首页
  • 视频推荐
  • 视频播放

2.共享模块 shared,其中包含通用常用的可以轻松的移植到到其他项目,

  • 例如navigation,负责各个Screen之间的导航
  • 常用的common,其中包含BaseViewModel,LogUtils,各种扩展以及常用UI,Color,如骨架屏,,Dialog等
  • 存储storage
  • 保存登录凭证auth
  • 网络请求api
  • 播放器player

3.bili模块

  • 核心本体模块,负责收拢所有导航路由和Screen,定义AppTheme等

项目风格

1.项目采用MVVM风格的编程模式,实现一个功能需要实现以下

  • Screen 用于实现本页面的UI
  • ViewModel 用于处理本页面的数据逻辑
  • Api 用于定义本页面需要使用的网络请求
  • Entity 需要使用到的请求或交互数据实体

2.想要构建一个页面(screen/activity/page)需要完成以下三步

View on GitHub
GitHub Stars35
CategoryDevelopment
Updated25d ago
Forks5

Languages

Kotlin

Security Score

90/100

Audited on Mar 12, 2026

No findings