CmComposeUI——基于 Kotlin Multiplatform Compose 的 UI 组件库

CmComposeUI 是一个基于 Kotlin Multiplatform Compose 的 UI 组件库,提供丰富的通用组件,支持 Android 和 iOS 双平台。

引入使用

在项目根目录 settings.gradle.kts 添加 JitPack 仓库:

kotlin 复制代码
dependencyResolutionManagement {
    repositories {
        maven { url = uri("https://jitpack.io") }
    }
}

在共享代码模块 composeApp/src/commonMain/kotlinbuild.gradle.kts 中添加依赖:

重要说明 :这是一个多模块项目,JitPack 需要指定 composeApp 子模块。

kotlin 复制代码
kotlin {
    sourceSets {
        commonMain {
            dependencies {
                implementation("com.github.Peakmain.CmComposeUI:composeApp:latest-version")
            }
        }
    }
}

或者简写方式:

kotlin 复制代码
dependencies {
    commonMainImplementation("com.github.Peakmain.CmComposeUI:composeApp:latest-version")
}

项目结构

Bash 复制代码
    composeApp/
    ├── src/
    │   ├── commonMain/
    │   │   └── kotlin/com/peakmain/cmp_compose/
    │   │       ├── basic/               # 基础常量
    │   │       │   ├── BasicColor.kt    # 颜色常量
    │   │       │   ├── BasicFont.kt     # 字体大小常量
    │   │       │   └── BasicSize.kt     # 尺寸常量
    │   │       ├── space/               # 间距
    │   │       │   └── PkSpacer.kt      # 间距组件
    │   │       ├── theme/               # 主题
    │   │       ├── ui/                  # UI 组件
    │   │       │   ├── banner/          # 轮播
    │   │       │   │   └── PkBanner.kt  # 轮播组件
    │   │       │   ├── button/          # 按钮
    │   │       │   │   ├── PkButton.kt  # 按钮组件
    │   │       │   │   └── PkButtonDefault.kt  # 默认配置
    │   │       │   ├── cell/           # 单元格
    │   │       │   │   └── PkCell.kt    # 单元格组件
    │   │       │   ├── divier/         # 分割线
    │   │       │   │   ├── PkDivider.kt # 分割线组件
    │   │       │   │   ├── PkDashDivider.kt
    │   │       │   │   └── PkFullDivider.kt
    │   │       │   ├── flow/           # 流式布局
    │   │       │   │   └── PkFlowRow.kt
    │   │       │   ├── grid/           # 瀑布流
    │   │       │   │   └── PkStaggeredVerticalGrid.kt
    │   │       │   ├── image/          # 图片
    │   │       │   │   └── PkImageView.kt
    │   │       │   ├── progress/       # 进度条
    │   │       │   │   └── RoundedLinearProgressIndicator.kt
    │   │       │   ├── text/           # 文本
    │   │       │   │   └── PkHighlightText.kt
    │   │       │   └── title/          # 标题/导航栏
    │   │       │       ├── PkNavBar.kt # 顶部导航栏
    │   │       │       └── PkTitle.kt  # 标题文本
    │   │       └── utils/               # 工具类
    │   ├── androidMain/                # Android 平台代码
    │   └── iosMain/                    # iOS 平台代码
    └── ...
相关推荐
三少爷的鞋1 小时前
Android 协程并发控制:别动线程池,控制好并发语义就够了
android
weiggle17 小时前
第七篇:状态提升与单向数据流——架构设计的核心
android
xingpanvip17 小时前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
goldenrolan17 小时前
A公司物料替代测试系统 v1.7:从需求到 exe/apk 的 AI 辅助全链路实践
android·自动化测试·软件测试·python·ai
AC赳赳老秦18 小时前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
骇客之技术20 小时前
AutoLua:在安卓上写 Lua 脚本
android·junit·lua
kiros_wang20 小时前
Android 常见面试题
android
货拉拉技术21 小时前
Hook植入日志协助定位问题方案
android
FlightYe21 小时前
Android投屏MirrorCast全链路
android
Ehtan_Zheng21 小时前
Kotlin const val vs val:字节码、性能与隐藏陷阱详解
android·kotlin