个人练习使用 持续维护中
当前进度,更多内容可在您自行构建运行后查看,等待将来完成常用功能后会发布release,这或许不会很久
在这之前 你可以通过Action中的自动构建来查阅每夜版本(Android)
- Android
- Win
- Linux(测试中)
- Mac(测试中)
- Ios
- Web
- 登录功能
- 主页功能
- 主页推荐视频
- 主页热门视频
- 手机号登录
- 扫码登录
- 视频播放,点赞投币等
- 关注操作(关注,取关)分组添加设置删除等
- 我的页(基本指标已实现)
- 视频播放器(基本操作功能已实现)
- 评论区(查看已实现,等待实现发表)
- 竖屏短视频(基本功能已实现)
- 个人资料主页(实现中)
- 搜索功能
- 直播功能
- 番剧功能
- 专栏功能
- 视频收藏
- 私聊消息
- 安卓画中画
- 播放器音频流和视频流无法声画同步(Android平台解决)
- 解决Desktop Player音频流和视频流同步的问题(VLC VideoUrl AudioUrl Sync),哔哩哔哩的视频使用的是音频链接+视频链接的视频流组合,目前VLCJ还没有找到可靠的方法来实现合并同步
- 解决Desktop Webview无法使用的问题(现有方案KCEF在Desktop上无法正常运行) 受到影响的功能: 登录业务-极验人机验证
接口来自个人抓取与bilibili-API-collect公开的接口
这些开源项目非常的伟大 他们为ComposeMultiplatform提供了不可代替的作用
- 网络请求:ktor
- 导航:封装+jetbrains navigation
- 视频播放:mediamp
- 图片加载:coil3
- 视频流媒体播放器:mediamp->android使用ExoPlayer,Desktop使用
- 持久化存储:multiplatform-settings
- 登录时的二维码生成:qr-kit
- 加解密编码(后续需要使用更加活跃的工具):krypto
- WebView+极验人机验证:geetest
- 跨平台分页加载:
cashapp-paging,google-paging-compose - IO读写:okio
- 多平台日志读写:napier
- WebView:kevinnzou:compose-webview-multiplatform
- 序列化,包含json,protobuf等,使用:kotlinx.serialization
开发均需要在合适的模块进行开发,保持低耦合度与高性能
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)需要完成以下三步
- 创建XXXScreen方法
- 在Navigation中SharedScreen声明路由
- 在RouteScreenRegistry注册路由和Screen


