本项目由Compose实现
项目地址:MusicDiary: 音乐日记由kotlin和Compose实现 (gitee.com)
软件架构
采用谷歌官方推荐架构,可改为MVI架构
你可以学到
-
hilt在compose中的基本用法
-
navigation在compose中的基本用法
-
Compose基础组件、动画和material组件
-
Compose中进行拍照和选择文件
-
启动页写法
-
Compose状态管理和room数据更新
-
Retrofit配合hilt、flow使用,方便快捷
例:
suspend fun update(mood: String): String? {
return network.getMusicInfo(mood)
.catch {
// TODO: 添加提示
Log.i(TAG, "update: ${it.message}")
emit(null)
}.map {
if (it != null) com.lzx.starrysky.SongInfo(
it.songId,
it.songUrl,
it.songName,
it.artist,
it.songCover
) else null
}.single()?.also {
Log.i(TAG, "update: ${it.songId}")
musicDao.insert(MusicModel(it, it.songId))
}?.songId
}
开发环境
Android Studio Chipmunk | 2021.2.1 Patch 1
compose_version = '1.2.1'
compiler_compose_version = '1.3.0'
kotlin_version = '1.7.10'
表情资源来自阿里图标的小文文呀
待实现功能
1. 通过请求返回符合心情的推荐歌曲信息通过ktor实现,在gitee中可以找到
2. 更好的推测心情方法