Android Compose 音乐日记 练手小项目 配合Ktor使用

474 阅读1分钟

本项目由Compose实现

效果图.gif

项目地址MusicDiary: 音乐日记由kotlin和Compose实现 (gitee.com)

软件架构

采用谷歌官方推荐架构,可改为MVI架构

你可以学到

  1. hilt在compose中的基本用法

  2. navigation在compose中的基本用法

  3. Compose基础组件、动画和material组件

  4. Compose中进行拍照和选择文件

  5. 启动页写法

  6. Compose状态管理和room数据更新

  7. 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中可以找到

  1. 更好的推测心情方法