Code Monkey home page Code Monkey logo

composemany's Introduction

ComposeMany

使用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()

部分界面效果图

功能

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

music_main play_list song_play lyric comments floor_comment

待实现功能

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

使用到的架构组件

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

使用到的其他第三方库

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

基金

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

fund_main

composemany's People

Contributors

mr-lin930819 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.