Skip to content

suzhelan/BiliCompose

Repository files navigation

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

个人练习使用 持续维护中

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

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

在手机(Android) IMG_20250920_202709

在Desktop(Win) image image

已适配的平台

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

已实现的功能

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

等待实现的功能

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

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

  • 播放器音频流和视频流无法声画同步(Android平台解决)
  • 解决Desktop Player音频流和视频流同步的问题(VLC VideoUrl AudioUrl Sync),哔哩哔哩的视频使用的是音频链接+视频链接的视频流组合,目前VLCJ还没有找到可靠的方法来实现合并同步
  • 解决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)需要完成以下三步

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages