Kotlin 全方向开发技术栈指南

目录

  1. [Android 原生开发](#Android 原生开发)
  2. [Kotlin Multiplatform (KMP) 跨平台](#Kotlin Multiplatform (KMP) 跨平台)
  3. 后端开发与服务端
  4. 桌面应用开发
  5. [Web 前端开发](#Web 前端开发)
  6. [iOS 开发](#iOS 开发)
  7. 数据科学与机器学习
  8. 物联网与嵌入式
  9. 自动化测试
  10. [构建工具与 DevOps](#构建工具与 DevOps)
  11. 企业级应用与集成
  12. 安全与密码学
  13. 快速选型指南
  14. [2024-2025 热门技术组合](#2024-2025 热门技术组合)

一. Android 原生开发

核心框架与架构

技术 用途 关键库
Jetpack Compose 现代声明式 UI 框架 androidx.compose.ui, androidx.compose.material3
ViewModel 生命周期感知的数据管理 androidx.lifecycle:lifecycle-viewmodel-compose
Room 本地数据库 ORM androidx.room:room-ktx, androidx.room:room-compiler
DataStore 类型安全数据存储 androidx.datastore:datastore-preferences
Navigation 页面导航组件 androidx.navigation:navigation-compose
WorkManager 后台任务调度 androidx.work:work-runtime-ktx
Hilt 依赖注入 com.google.dagger:hilt-android, hilt-compiler
Paging 分页加载 androidx.paging:paging-runtime-ktx

网络与数据

kotlin 复制代码
// Retrofit + OkHttp + Kotlin Serialization
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")

// Coil - 图片加载
implementation("io.coil-kt:coil-compose:2.6.0")

// Apollo - GraphQL
implementation("com.apollographql.apollo3:apollo-runtime:3.8.2")

异步与响应式

用途
kotlinx.coroutines Kotlin 官方协程库
kotlinx.coroutines-android Android 主线程调度器
kotlinx.coroutines-play-services Google Play 服务集成
ReactiveX/RxKotlin RxJava 的 Kotlin 封装
Flow Kotlin 原生响应式流(推荐)

二. Kotlin Multiplatform (KMP) 跨平台

核心概念

KMP 允许在 Android、iOS、桌面 (JVM)、Web (JS/Wasm) 之间共享代码,同时保持原生性能 [22][26]。

项目结构

复制代码
project/
├── shared/                    # 共享模块
│   ├── src/
│   │   ├── commonMain/        # 平台无关代码(业务逻辑、数据层)
│   │   ├── androidMain/       # Android 平台实现
│   │   ├── iosMain/           # iOS 平台实现
│   │   ├── jvmMain/           # JVM 桌面实现
│   │   └── jsMain/            # Web 前端实现
│   └── build.gradle.kts
├── composeApp/                # Compose Multiplatform UI
├── androidApp/                # Android 应用入口
├── iosApp/                    # iOS 应用入口(Xcode 项目)
└── desktopApp/                # 桌面应用入口

KMP 核心库生态 [22][30]

库名 功能 支持平台
Ktor Client HTTP 客户端 Android, iOS, JVM, JS, Native
SQLDelight 类型安全 SQL 数据库 Android, iOS, JVM, JS, Native
kotlinx.serialization 序列化/反序列化 全平台
kotlinx.coroutines 协程 全平台
kotlinx.datetime 日期时间 API 全平台
Koin 依赖注入 Android, iOS, JVM
Napier 日志库 全平台
Multiplatform Settings 键值存储 Android, iOS, JVM, JS
KStore 数据流存储 Android, iOS, JVM
Okio 文件 I/O 全平台
Apollo Kotlin GraphQL 客户端 全平台

Compose Multiplatform [23][38]

kotlin 复制代码
// build.gradle.kts (shared module)
plugins {
    kotlin("multiplatform")
    id("org.jetbrains.compose") version "1.8.0"  // iOS 稳定版
}

kotlin {
    androidTarget()
    iosX64()
    iosArm64()
    iosSimulatorArm64()
    jvm("desktop")

    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation(compose.runtime)
                implementation(compose.foundation)
                implementation(compose.material3)
                implementation(compose.ui)
                implementation(compose.components.resources)
            }
        }
    }
}

平台互操作 [37]

目标平台 互操作方式 工具
iOS (Swift/Objective-C) expect/actual + 导出框架 SKIE 工具优化 Swift 互操作
Android 直接调用 Android SDK -
JVM 调用 Java 库 100% Java 互操作
JavaScript TypeScript 声明文件 kotlin-wrappers
WebAssembly Wasm 模块导出 Kotlin/Wasm (Alpha)

三. 后端开发与服务端

Web 框架 [28][31]

框架 特点 核心库
Ktor JetBrains 官方、协程原生、轻量灵活 io.ktor:ktor-server-core, ktor-server-netty, ktor-server-content-negotiation
Spring Boot 企业级标准、生态丰富 spring-boot-starter-web, spring-boot-starter-data-jpa
Quarkus 云原生、GraalVM 原生编译 quarkus-resteasy-reactive, quarkus-kotlin
Micronaut AOT 编译、低内存、微服务 micronaut-runtime, micronaut-http-server-netty
Vert.x 响应式、事件驱动 vertx-core, vertx-lang-kotlin
http4k 纯函数式、轻量级 org.http4k:http4k-core
Javalin 极简 API、WebSocket 支持 io.javalin:javalin

Ktor 生态详解 [31]

kotlin 复制代码
// build.gradle.kts
plugins {
    kotlin("jvm") version "2.1.0"
    id("io.ktor.plugin") version "2.3.12"
    kotlin("plugin.serialization") version "2.1.0"
}

dependencies {
    // 核心服务器
    implementation("io.ktor:ktor-server-core-jvm")
    implementation("io.ktor:ktor-server-netty-jvm")

    // 内容协商与序列化
    implementation("io.ktor:ktor-server-content-negotiation-jvm")
    implementation("io.ktor:ktor-serialization-kotlinx-json-jvm")

    // 路由与模板
    implementation("io.ktor:ktor-server-resources")
    implementation("io.ktor:ktor-server-html-builder")

    // 安全与认证
    implementation("io.ktor:ktor-server-auth-jvm")
    implementation("io.ktor:ktor-server-auth-jwt-jvm")

    // 监控与指标
    implementation("io.ktor:ktor-server-metrics-micrometer")
    implementation("io.micrometer:micrometer-registry-prometheus")

    // 测试
    testImplementation("io.ktor:ktor-server-test-host")
    testImplementation("org.jetbrains.kotlin:kotlin-test")
}

数据库与持久层

类型 说明
ORM Exposed (JetBrains 官方) 类型安全 SQL DSL,支持 R2DBC [31]
ORM KTorm 轻量级 ORM
JPA Hibernate + Spring Data JPA 传统方案
SQL 生成 jOOQ 类型安全 SQL
NoSQL MongoDB Kotlin Driver, Redis Lettuce 异步驱动
Reactive R2DBC, jasync-sql 响应式数据库

Exposed 1.0 示例 [31]

kotlin 复制代码
// 类型安全 SQL DSL
object Users : Table("users") {
    val id = integer("id").autoIncrement()
    val name = varchar("name", 50)
    val email = varchar("email", 255).uniqueIndex()
    override val primaryKey = PrimaryKey(id)
}

// 使用
val user = Users.select { Users.email eq "user@example.com" }
    .singleOrNull()

四. 桌面应用开发

技术方案

方案 框架 特点 适用场景
Compose for Desktop org.jetbrains.compose 跨平台、声明式 UI、共享 Android 代码 现代跨平台桌面应用 [42]
TornadoFX no.tornado:tornadofx JavaFX 的 Kotlin DSL 封装 传统桌面应用
Swing + Kotlin 标准库 成熟稳定、组件丰富 企业级工具

Compose for Desktop 核心库

kotlin 复制代码
// build.gradle.kts
plugins {
    kotlin("jvm")
    id("org.jetbrains.compose") version "1.8.0"
}

dependencies {
    implementation(compose.desktop.currentOs)
    implementation(compose.material3)
    implementation(compose.materialIconsExtended)

    // 窗口管理
    implementation("org.jetbrains.compose.ui:ui-util-desktop")

    // 系统托盘
    implementation("org.jetbrains.compose.ui:ui-awt")

    // 文件拖拽
    implementation("org.jetbrains.compose.ui:ui-desktop")
}

// 打包配置
compose.desktop {
    application {
        mainClass = "MainKt"
        nativeDistributions {
            targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
            packageName = "MyApp"
            packageVersion = "1.0.0"
        }
    }
}

桌面特定功能

功能
系统托盘 compose.ui:ui-awt
通知 java.awt.Desktop 或第三方库
文件选择器 JFileChooser 或 Compose 自定义
全局快捷键 JNativeHook
自动更新 update4j

五. Web 前端开发

Kotlin/JS 与 Kotlin/Wasm

目标 技术 状态
JavaScript 编译 kotlin-js 稳定,生产可用
WebAssembly kotlin-wasm Alpha,高性能 [32]

前端框架集成

kotlin 复制代码
// React 集成
implementation("org.jetbrains.kotlin-wrappers:kotlin-react:18.2.0-pre.346")
implementation("org.jetbrains.kotlin-wrappers:kotlin-react-dom:18.2.0-pre.346")
implementation("org.jetbrains.kotlin-wrappers:kotlin-emotion:11.10.6-pre.346")

// Compose HTML (Kotlin DSL 生成 HTML)
implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:0.9.1")

Ktor 服务端渲染 [28]

kotlin 复制代码
// kotlinx.html DSL
fun HTML.index() {
    head {
        title("Welcome")
    }
    body {
        h1 { +"Hello from Kotlin" }
        div {
            id = "root"
            +"Loading..."
        }
        script(src = "/static/main.js") {}
    }
}

六. iOS 开发

KMP 在 iOS 的应用 [22][37]

KMP 编译为 iOS 原生二进制,通过 Kotlin/Native 实现与 Swift/Objective-C 的互操作。

架构模式

复制代码
iOS App (Xcode)
├── UI Layer (SwiftUI / UIKit)          <- 平台原生
├── ViewModel (Swift)                   <- 可选项
└── Shared Framework (Kotlin)            <- KMP 编译
    ├── Domain Logic (Kotlin)
    ├── Data Layer (Kotlin)
    └── Network (Ktor Client)

Swift 互操作工具

工具 用途
SKIE 优化 Swift API 导出,支持协程、Flow、密封类 [37]
Kotlin/Native 编译为 Framework,自动生成 Objective-C 头文件
CocoaPods/SPM 依赖管理集成

配置示例

kotlin 复制代码
// build.gradle.kts
kotlin {
    iosTarget {
        binaries.framework {
            baseName = "Shared"
            export("dev.icerock.moko:mvvm-core:0.16.1")  // 导出给 Swift
        }
    }
}

// 使用 SKIE 优化导出
plugins {
    id("co.touchlab.skie") version "0.8.0"
}

七. 数据科学与机器学习

数据处理与分析 [42]

用途 特点
Kotlin DataFrame 表格数据处理 类似 pandas,类型安全,JetBrains 官方 [42]
KotlinDL 深度学习 Deeplearning4j 的 Kotlin API,支持 CNN、RNN [42]
Koma 科学计算 类似 NumPy,矩阵运算
Multik 多维数组 Kotlin 原生 NumPy 替代
Krangl 数据操作 受 R dplyr 启发
Smile 机器学习 Java 库,Kotlin 友好 API

Kotlin DataFrame 示例

kotlin 复制代码
import org.jetbrains.kotlinx.dataframe.api.*

// 读取数据
val df = DataFrame.read("data.csv")

// 操作
val summary = df
    .groupBy { city }
    .aggregate {
        mean { age } into "avg_age"
        count() into "count"
    }
    .sortByDesc("count")

深度学习

kotlin 复制代码
// KotlinDL
import org.jetbrains.kotlinx.dl.api.core.*
import org.jetbrains.kotlinx.dl.api.core.layer.*

val model = Sequential.of(
    Input(28, 28, 1),
    Flatten(),
    Dense(128, Activation.ReLU),
    Dense(10, Activation.Softmax)
)

model.compile(
    optimizer = Adam(),
    loss = Losses.SOFT_MAX_CROSS_ENTROPY_WITH_LOGITS,
    metric = Metrics.ACCURACY
)

Jupyter Notebook 支持

kotlin 复制代码
// 使用 Kotlin Jupyter 内核
%use dataframe
%use kotlin-dl

val data = DataFrame.read("sample.csv")
data.head(10)

八. 物联网与嵌入式

Kotlin/Native [42]

编译为机器码,无需 JVM,支持嵌入式设备。

平台支持

平台 说明
Linux (ARM/x86) 完整支持
Raspberry Pi 通过 Pi4J 控制 GPIO
微控制器 实验性支持,通过 LLVM
WebAssembly 浏览器外 Wasm (WASI)

嵌入式库

kotlin 复制代码
// Pi4J - Raspberry Pi GPIO
implementation("com.pi4j:pi4j-core:2.4.0")
implementation("com.pi4j:pi4j-plugin-raspberrypi:2.4.0")
implementation("com.pi4j:pi4j-plugin-pigpio:2.4.0")

// MQTT 物联网协议
implementation("org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5")

// 串口通信
implementation("com.fazecast:jSerialComm:2.10.4")

物联网平台集成

平台 SDK
AWS IoT aws-sdk-kotlin
Azure IoT azure-sdk-for-java (Kotlin 兼容)
ThingsBoard REST API

九. 自动化测试

测试框架

类型 特点
单元测试 kotlin-test 官方标准库
BDD Kotest 功能丰富,DSL 友好
Mocking MockK Kotlin 原生 Mock,支持协程
UI 测试 Compose UI Test Compose 专用
Android UI Espresso Android 原生
iOS UI XCTest (Swift) 平台原生
KMP 测试 kotlinx-coroutines-test 多平台协程测试

Kotest 示例

kotlin 复制代码
// build.gradle.kts
testImplementation("io.kotest:kotest-runner-junit5:5.8.0")
testImplementation("io.kotest:kotest-assertions-core:5.8.0")
testImplementation("io.kotest:kotest-property:5.8.0")  // 属性测试

// 测试代码
class MyTests : StringSpec({
    "length should return size of string" {
        "hello".length shouldBe 5
    }

    "startsWith should test for a prefix" {
        "world".shouldStartWith("wor")
    }
})

MockK 用法

kotlin 复制代码
testImplementation("io.mockk:mockk:1.13.9")

// 使用
val mock = mockk<UserRepository>()
coEvery { mock.getUser(any()) } returns User("test")

十. 构建工具与 DevOps

构建工具

工具 用途 特点
Gradle 官方构建工具 Kotlin DSL,灵活强大
Amper JetBrains 新工具 声明式配置,简化 KMP 项目 [30][41]
Maven 传统构建 Kotlin 支持良好

Gradle Kotlin DSL

kotlin 复制代码
// build.gradle.kts (KMP 项目)
plugins {
    kotlin("multiplatform") version "2.1.0"
    id("com.android.library") version "8.2.0"
    id("org.jetbrains.compose") version "1.8.0"
    kotlin("plugin.serialization") version "2.1.0"
}

kotlin {
    androidTarget()
    iosX64()
    iosArm64()
    iosSimulatorArm64()

    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0")
                implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
            }
        }

        val androidMain by getting {
            dependencies {
                implementation("androidx.core:core-ktx:1.12.0")
            }
        }

        val iosMain by getting {
            dependencies {
                // iOS 特定依赖
            }
        }
    }
}

CI/CD 与部署

场景 工具/库
GitHub Actions 官方 Action:gradle/gradle-build-action
GitLab CI Kotlin 原生镜像
Docker 多阶段构建,GraalVM 原生镜像
Fastlane 移动应用自动化部署
Kotlin Script .main.kts 用于脚本化任务

十一. 企业级应用与集成

消息队列与事件驱动

技术
Apache Kafka org.apache.kafka:kafka-clients
RabbitMQ com.rabbitmq:amqp-client
Redis Pub/Sub io.lettuce:lettuce-core
Pulsar org.apache.pulsar:pulsar-client

工作流引擎

引擎 Kotlin 支持
Camunda 通过 Spring Boot 集成
Flowable Java 库,Kotlin DSL 封装
Temporal 现代工作流,官方 SDK

企业集成模式

kotlin 复制代码
// Apache Camel Kotlin DSL
camel {
    route {
        from("kafka:orders")
            .filter { it.body != null }
            .to("jdbc:orderDb")
            .to("websocket://notifications")
    }
}

十二. 安全与密码学

安全框架

技术 用途
Ktor Auth ktor-server-auth 认证与授权
JWT io.jsonwebtoken:jjwt 令牌处理
OAuth2 ktor-server-auth-oauth 第三方登录
密码哈希 org.mindrot:jbcrypt 安全存储

密码学库

kotlin 复制代码
// BouncyCastle
implementation("org.bouncycastle:bcprov-jdk18on:1.77")

// Tink (Google)
implementation("com.google.crypto.tink:tink:1.12.0")

// Kotlin 原生
implementation("org.jetbrains.kotlinx:kotlinx-crypto:0.1.0")

Ktor 安全示例

kotlin 复制代码
fun Application.configureSecurity() {
    authentication {
        jwt("auth-jwt") {
            realm = "Access to the app"
            verifier(JWT.require(Algorithm.HMAC256("secret")).build())
            validate { credential ->
                if (credential.payload.getClaim("username").asString() != "") {
                    JWTPrincipal(credential.payload)
                } else null
            }
        }
    }
}

📋 快速选型指南

我想做... 首选技术栈
Android 原生应用 Jetpack Compose + Hilt + Room + Retrofit + Coroutines
iOS + Android 跨平台 KMP + Compose Multiplatform + Ktor + SQLDelight
全平台应用 (含桌面/Web) KMP + Compose Multiplatform 1.8+ + KStore
后端 API 服务 Ktor + Exposed + PostgreSQL + Prometheus
企业级微服务 Spring Boot + Kotlin + JPA + Kafka
云原生 Serverless Quarkus + GraalVM 原生编译 + AWS Lambda
桌面工具软件 Compose for Desktop + Koin + SQLite
数据科学分析 Kotlin DataFrame + KotlinDL + Jupyter
物联网网关 Kotlin/Native + Pi4J + MQTT + InfluxDB
实时聊天应用 Ktor + WebSocket + Redis + Coroutines
电商/支付系统 Spring Boot + Kotlin + Exposed + Stripe
AI 推理服务 Ktor + KotlinDL + ONNX Runtime

🎯 2024-2025 热门技术组合

现代跨平台应用 (KMP + Compose)

kotlin 复制代码
// build.gradle.kts (shared module)
plugins {
    kotlin("multiplatform") version "2.1.0"
    id("org.jetbrains.compose") version "1.8.0"  // iOS 稳定
    id("app.cash.sqldelight") version "2.0.2"
}

kotlin {
    androidTarget()
    iosX64()
    iosArm64()
    iosSimulatorArm64()
    jvm("desktop")

    sourceSets {
        commonMain.dependencies {
            // 协程与序列化
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0")
            implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")

            // 网络
            implementation("io.ktor:ktor-client-core:2.3.12")
            implementation("io.ktor:ktor-client-content-negotiation:2.3.12")
            implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.12")

            // 依赖注入
            implementation("io.insert-koin:koin-core:3.5.3")

            // 日志
            implementation("io.github.aakira:napier:2.7.1")

            // Compose
            implementation(compose.runtime)
            implementation(compose.foundation)
            implementation(compose.material3)
            implementation(compose.ui)
        }
    }
}

sqldelight {
    databases {
        create("AppDatabase") {
            packageName.set("com.example.db")
        }
    }
}

云原生后端 (Ktor + 可观测性)

kotlin 复制代码
// build.gradle.kts
plugins {
    kotlin("jvm") version "2.1.0"
    id("io.ktor.plugin") version "2.3.12"
}

dependencies {
    // Ktor 核心
    implementation("io.ktor:ktor-server-core-jvm")
    implementation("io.ktor:ktor-server-netty-jvm")

    // 内容协商
    implementation("io.ktor:ktor-server-content-negotiation-jvm")
    implementation("io.ktor:ktor-serialization-kotlinx-json-jvm")

    // 数据库 (R2DBC 非阻塞)
    implementation("org.jetbrains.exposed:exposed-core:0.50.1")
    implementation("org.jetbrains.exposed:exposed-dao:0.50.1")
    implementation("org.jetbrains.exposed:exposed-jdbc:0.50.1")
    implementation("org.jetbrains.exposed:exposed-r2dbc:0.50.1")

    // 监控
    implementation("io.ktor:ktor-server-metrics-micrometer-jvm")
    implementation("io.micrometer:micrometer-registry-prometheus:1.12.0")
    implementation("io.ktor:ktor-server-call-logging-jvm")

    // 文档
    implementation("io.ktor:ktor-server-openapi")
    implementation("io.ktor:ktor-server-swagger-jvm")
}

AI 原生应用 (Kotlin + LLM)

kotlin 复制代码
// LangChain4j + Kotlin
dependencies {
    implementation("dev.langchain4j:langchain4j:0.35.0")
    implementation("dev.langchain4j:langchain4j-open-ai:0.35.0")
    implementation("dev.langchain4j:langchain4j-embeddings:0.35.0")

    // Ktor 集成
    implementation("io.ktor:ktor-server-core")
    implementation("io.ktor:ktor-client-core")
}

附录:Kotlin 2.1 新特性速查 [32]

特性 说明 应用场景
K2 编译器 统一前端架构,编译速度提升 2 倍 所有项目
守卫条件 when 表达式中嵌入布尔判断 复杂条件分支
上下文接收器 函数在特定上下文中调用 DSL 设计
Wasm 支持 Kotlin/Wasm Alpha 高性能 Web
Swift 导出 直接导出 Swift API (2025 年底) iOS 开发
Amper 构建工具 声明式配置,简化 KMP 新项目

相关推荐
飞Link2 小时前
LangGraph 核心架构解析:节点 (Nodes) 与边 (Edges) 的工作机制及实战指南
java·开发语言·python·算法·架构
武藤一雄3 小时前
WPF中ViewModel之间的5种通讯方式
开发语言·前端·microsoft·c#·wpf
XiYang-DING3 小时前
【Java】堆
java·开发语言
Lyyaoo.3 小时前
【Java基础面经】Java 反射机制
java·开发语言·python
m0_694845573 小时前
UVdesk部署教程:企业级帮助台系统实践
服务器·开发语言·后端·golang·github
泉飒3 小时前
C2001: 常量中有换行符-QT解决办法-逆向思路
开发语言·qt
ghie90903 小时前
基于学习的模型预测控制(LBMPC)MATLAB实现指南
开发语言·学习·matlab
咚为3 小时前
Rust 经典面试题255道
开发语言·面试·rust
十六年开源服务商3 小时前
家庭装修公司网站方案策划2026
java·开发语言