使用 jetpack compose 构建的 app

Posted Wei_Leng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 jetpack compose 构建的 app相关的知识,希望对你有一定的参考价值。

ComposeMany

项目地址:Mr-lin930819/ComposeMany 

简介: 使用 jetpack compose 构建的 app

更多:作者   提 Bug   

标签:

使用 jetpack compose 构建的 app

项目仅供学习,不做商业用途。

[TOC]

主页面实现的界面有两项:

音乐

功能实现分析

在掘金写了篇简单的文章概述了音乐功能的实现思路:

用 Compose 实现轻量版网易云音乐 - 掘金 (juejin.cn)

关于服务端

音乐 API 使用: Binaryify/NeteaseCloudMusicApi: 网易云音乐 Node.js API service (github.com),使用 Vercel 构建。

可以按照链接仓库中方法搭建自己的 Vercel 服务器,获得域名。项目中域名统一在 AppModule.kt 文件中提供:

//com.mrlin.composemany.di.AppModule.kt
@Singleton
@NetEaseMusicRetrofit
@Provides
fun provideNetEaseMusicRetrofit(
  cookieDataStore: DataStore<CookieStore>
): Retrofit = Retrofit.Builder()
        .baseUrl("https://你的专属 Vercel 站点域名.vercel.app/")
        ... ...
        .build()

部分界面效果图

功能

  • 用户登录(手机号+密码方式)
  • 推荐歌单、个人歌单列表获取
  • 歌单内歌曲的播放
  • 歌曲评论、楼层回复评论显示

     

待实现功能

  • [x] 评论点赞
  • [x] 歌曲喜欢
  • [x] 歌曲评论、评论回复
    • [ ] 楼层内回复
  • [x] 歌曲歌词显示
    • [ ] 精确当前句位置显示、滚动
  • [ ] 本地音乐
  • [ ] 歌曲缓存
  • [ ] 通知栏
  • [ ] 桌面小组件
  • [ ] 歌曲详细操作(信息、收藏等)
  • [ ] 首页轮播、“每日推荐”、“歌单“、”排行榜“、”电台“、”直播“等入口功能

使用到的架构组件

架构组件用途
Hilt全应用的实例依赖管理
ViewModel视图数据以及状态的管理
Navigation页面跳转管理
Room数据库访问
Paging 3分页数据载入
datastore(protobuf 实现)参数保存
splashscreen启动屏适配

使用到的其他第三方库

名称用途
Accompanist提供 Compose 下的 ViewPager、骨架屏、状态栏操作等
RetrofitRESTful API 接口通讯实现
Coilkotlin 图片加载框架
toolbar-compose实现折叠工具栏,源地址:onebone/compose-collapsing-toolbar

基金

基金页面仿支付宝基金功能,仅作练习,无任何实际功能

 

 

以上是关于使用 jetpack compose 构建的 app的主要内容,如果未能解决你的问题,请参考以下文章

使用 jetpack compose 构建的 app

Jetpack Compose 可以用来构建 App Widgets 吗?

深入详解 Jetpack Compose | 优化 UI 构建

AgoraIO 是不是支持使用 Android Jetpack Compose 构建 Live Stream 应用程序

jetpack compose 接收返回参数

用Jetpack Compose构建更快的安卓应用