NCMusic
Jetpack Compose仿写网易云音乐
Install / Use
/learn @sskEvan/NCMusicREADME
NCMusic
小明平时喜欢听歌,听歌喜欢用网易云,因为觉得网易云用户体验good good good,俺也觉得。
然后今年年初在公司项目尝试接入Compose。为了更加熟悉Compose,俺就寻思着撸个小项目练练手,既然网易云用户体验good good good,那就仿写几个网易云的页面试试水吧。接着就发现有一些页面的交互效果实现起来并没有很简单,例如我的页面列表滑动时和TabLayout的联动以及下拉到顶部后无缝过渡到个人中心页面、歌曲播放页面切歌的效果等。
项目采用单Activity+ComposeNavigation进行路由跳转,接口数据来源于Binaryify
大佬的NeteaseCloudMusicApi;
使用MVVM开发模式,封装了页面状态组件ViewStateComponent;
Compose版本为1.3.0,升级Compose版本为1.3.0后,发现官方支持瀑布流了,把云村的视频列表改成瀑布流样式,发现以前网上抄的上拉分页方式在瀑布流列表中不能很好的工作,决定重新自定义一个RefreshLayout组件来支持Compose的下拉刷新、上拉加载更多。并结合paging3封装ViewStateListPagingComponent(列表样式)、ViewStateStaggeredGridPagingComponent(瀑布流样式),统一处理列表页首次加载页面状态的切换,以及触发下拉刷新/上拉加载更多动作时header/footer各种状态的切换。使用伪代码如下:
支持主题切换
...
主要开源框架
APK下载地址
效果图

Related Skills
node-connect
346.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
