技术概述与亮点

  • Android Studio Otter / Narwhal 等版本开始,把 Gemini 深度集成到 IDE 中,可自动生成 Compose 预览、补全 UI 代码,并通过自然语言修改界面。​

  • JetBrains 也提供了 AI Assistant 插件,为 Kotlin/Android 项目提供上下文相关的代码生成、解释、重构和提交信息生成等能力。​

  • 相比传统模板化开发,这类 AI 辅助开发 能显著减少样板代码、UI 搭建与重构时间,使开发者更专注于业务与交互设计。​


解决的核心问题

  • UI 原型到 Compose 代码的“翻译”效率低:过去需要手写大量 @Composable 函数与预览代码,现在可由 Gemini 根据说明或设计稿自动生成基础界面和 Preview。​

  • UI 调整迭代繁琐:利用“Transform UI”等自然语言指令,可在 Compose Preview 里快速调整布局、颜色、组件层级,减少来回修改 XML/代码的时间。​

  • 重复性 Kotlin 代码编写:JetBrains AI Assistant 支持根据上下文生成代码、测试、文档和提交信息,降低样板逻辑和文档维护成本。​


使用环境与准备

  • 安装较新的 Android Studio 版本(建议 Otter 2 Feature Drop 及之后版本),以便使用 Gemini 驱动的 Compose 预览生成功能和 UI Transform 能力。​

  • 在 IDE 中登录 Google 账号并启用 Gemini 相关实验特性,或者安装 JetBrains AI Assistant 插件(目前为 Beta),用于 Kotlin/Android 项目开发。​

  • 项目层面建议使用 Jetpack Compose + Material3,能够最大化利用 AI 生成的 UI 代码与预览能力。​


基本使用流程(实践步骤)

1. 创建 Compose 项目并启用 AI 功能

  • 在 Android Studio 中新建“Empty Compose Activity”项目,确认 Gradle 已启用 Compose 与 Material3 依赖。​

  • 在 IDE 设置中开启 Gemini/AI 相关功能(如 “AI code completion”、“Compose preview generation”、“Transform UI” 等),并确保能在编辑器侧看到 AI 入口或聊天面板。​

示例 build.gradle(模块级)核心片段:

kotlin

android {
    compileSdk = 35

    defaultConfig {
        minSdk = 24
    }

    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.15"
    }
}

dependencies {
    implementation(platform("androidx.compose:compose-bom:2024.09.01"))
    implementation("androidx.compose.ui:ui")
    implementation("androidx.compose.material3:material3")
    implementation("androidx.activity:activity-compose:1.9.3")
}

2. 通过 AI 生成基础 Compose UI

  • 在 MainActivity 中先写一个空的 @Composable,例如 DashboardScreen(),然后在文件中使用 IDE 的 AI 菜单 / 快捷键,输入自然语言需求,如“创建一个顶部应用栏+统计卡片+底部导航的首页”。​

  • AI 将返回可执行的 Compose UI 代码,可以手动微调后保存,并立即在 Compose Preview 中查看效果。​

示例 DashboardScreen 代码(可作为 AI 生成与人工优化后的结果):

kotlin

@Composable
fun DashboardScreen(
    modifier: Modifier = Modifier
) {
    Scaffold(
        topBar = {
            CenterAlignedTopAppBar(
                title = { Text("My Finance") }
            )
        },
        bottomBar = {
            NavigationBar {
                NavigationBarItem(
                    selected = true,
                    onClick = { /*TODO*/ },
                    icon = { Icon(Icons.Default.Home, contentDescription = "Home") },
                    label = { Text("Home") }
                )
                NavigationBarItem(
                    selected = false,
                    onClick = { /*TODO*/ },
                    icon = { Icon(Icons.Default.Settings, contentDescription = "Settings") },
                    label = { Text("Settings") }
                )
            }
        }
    ) { innerPadding ->
        Column(
            modifier = modifier
                .padding(innerPadding)
                .padding(16.dp)
        ) {
            Text(
                text = "Overview",
                style = MaterialTheme.typography.headlineMedium
            )
            Spacer(modifier = Modifier.height(16.dp))
            Card(
                modifier = Modifier.fillMaxWidth(),
                shape = RoundedCornerShape(16.dp)
            ) {
                Column(
                    modifier = Modifier.padding(16.dp)
                ) {
                    Text("Balance")
                    Text(
                        text = "$8,240.50",
                        style = MaterialTheme.typography.headlineLarge
                    )
                    Spacer(Modifier.height(8.dp))
                    LinearProgressIndicator(
                        progress = { 0.65f },
                        modifier = Modifier.fillMaxWidth()
                    )
                }
            }
        }
    }
}

AI 自动生成 Compose Preview

  • Android Studio 支持让 Gemini 根据文件内的 composable 自动创建 @Preview,包括为 @PreviewParameter 提供 mock 数据,从而快速浏览多种状态。该能力在 Otter 2 Feature Drop 中被重点提及。​

  • 在编辑器中选中 composable 或整个文件,通过 AI 命令“Generate Compose previews for all composables”,IDE 会插入预览函数,提升 UI 多态状态的可视化效率。​

示例 Preview 代码:

kotlin

@Preview(
    name = "Dashboard - Light",
    showBackground = true,
    uiMode = Configuration.UI_MODE_NIGHT_NO
)
@Preview(
    name = "Dashboard - Dark",
    showBackground = true,
    uiMode = Configuration.UI_MODE_NIGHT_YES
)
@Composable
fun DashboardPreview() {
    MyAppTheme {
        DashboardScreen()
    }
}

使用 “Transform UI” 自然语言改界面

  • 在 Compose Preview 面板中,可通过“Transform UI”或类似入口,对当前 UI 使用自然语言指令,例如“增加一个圆角 8dp 的绿色收入卡片,放在余额卡片下方”。​

  • IDE 会给出修改建议(差异补丁形式),开发者可以选择应用或部分应用,形成半自动的 UI 迭代流程,特别适合快速尝试不同设计方案。​

示例:在上面的 DashboardScreen 下方,AI 可能生成类似代码:

kotlin

Spacer(modifier = Modifier.height(12.dp))
Card(
    modifier = Modifier.fillMaxWidth(),
    shape = RoundedCornerShape(12.dp),
    colors = CardDefaults.cardColors(
        containerColor = Color(0xFF4CAF50)
    )
) {
    Column(
        modifier = Modifier.padding(16.dp)
    ) {
        Text("Today Income", color = Color.White)
        Text(
            text = "$420.00",
            style = MaterialTheme.typography.headlineMedium,
            color = Color.White
        )
    }
}

JetBrains AI Assistant 在 Kotlin 开发中的用法

  • 安装 JetBrains AI Assistant 插件后,可在 Kotlin 文件中选中函数或类,调用“Explain code”获取 AI 解释,有利于团队理解历史代码或第三方库逻辑。​

  • 也可以使用“Generate tests”、“Refactor with AI”来生成单元测试骨架或重构建议,避免遗漏边界情况,提升代码质量与一致性。​

例如对某个数据处理函数,使用 AI 命令“Generate unit tests with JUnit for this function”,即可生成包含多种输入场景的测试方法骨架,开发者只需填充断言和少量逻辑。


实践总结与注意事项

  • 在实际项目中,AI 提供的是加速器而非替代者:生成的 Compose UI 和 Kotlin 代码需要人工 review,关注性能、可维护性和设计规范。为避免依赖过重,应保留手写核心逻辑与关键架构设计。**​

  • 对涉及隐私和安全的业务代码,要避免向云端模型提交敏感数据,可通过局部选择、脱敏示例或只对抽象逻辑请求建议等方式降低风险。​

  • 随着 Android Studio 后续版本迭代,Gemini 与 Compose 的集成会持续增强,例如更多自动预览类型、更智能的布局建议和多设备自适应布局快速生成,值得在中长期项目中持续跟进与评估。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐