迁移到Jetpack Compose 第一趴

好久没有更新了,接下来一段时间的博客,是以View一步步迁移到Compose的教程。

一、简介

Compose和View系统可以结合使用。

下面将使用项目Sunflow的部分界面迁移到Compose。

1.1、学习内容

通过这一系列,您将学习:

  • 您可以遵循的不同迁移路径
  • 如何逐步将应用迁移到Compose
  • 如何将Compose添加到使用Android View构建的现有界面
  • 如何在Compose中使用Android View
  • 如何在Compose中使用View系统中的主题
  • 如何使用View系统代码和Compose代码测试界面

1.2、前提条件

  • 有使用Kotlin语法(包括lambda)的经验
  • 了解Compose的基础知识

1.3、所需条件

二、迁移计划

如何迁移到Compose取决于您和您的团队。要将Jetpack Compose集成到现有Android应用中,有多种不同的方法。常用的两种迁移策略为:

  • 完全使用Compose开发一个新界面
  • 选取一个现有界面,然后逐步迁移其中的各个组件。

2.1、新界面中的Compose

在重构应用代码以适应新技术时,一种常用的方法是在为应用构建新功能中采用该技术。在这种情况下,适合使用新的界面。如果您需要为应用构建新界面,请考虑使用Compose,而应用的额其余部分可以保留在View系统中。

在这种情况下,您需要在这些已迁移功能的边缘实现Compose互操作性。

2.2、搭配使用Compose和View

对于特定界面,您可以将部分界面迁移到Compose,让其他部分保留在View系统中。例如,您可以迁移RecyclerView,同时将界面的其余部分保留在View系统中。

或者,使用Compose作为外部布局,并使用Compose中可能没有的一些现有View,比如MapView或AdView。

2.3、完成迁移

将全部的fragment或界面迁移到Compose,一次迁移一个。这种方式最为简单,但比较粗放。

三、准备工作

3.1、获取代码

从 GitHub 获取 Codelab 代码:

shell 复制代码
$ git clone https://github.com/googlecodelabs/android-compose-codelabs

或者,您可以下载代码库 Zip 文件:

下载 ZIP 文件

四、Sunflow中的Compose

Compose已添加到您从main分支下载的代码中。不过,我们先来了解一下运行这些代码所需要具备哪些条件。

打开app/build.gradle(或build.gradle(Module: compose-migration.app))文件后,请查看该文件如何导入Compose依赖项,以及如何使用buildFeatures { compose true}标记,从而让Android Studio能够运行Compose。

app/build.gradle

kotlin 复制代码
android {
    ...
    kotlinOptions {
        jvmTarget = '1.8'
        useId = true
    }
    buildFeatures {
        ...
        compose true
    }
    composeOptions {
        kotlinCompilerExtensionVersion rootProject.composeVersion
    }
}

dependencies {
    ...
    // Compose
    implementation "androidx.compose.runtime:runtime: $rootProject.composeVersion"
    implementation "androidx.commpose.ui:ui:$rootProject.composeVersion"
    implementation "androidx.compose.foundation:foundation:$rootProject.composeVersion"
    implementation "androidx.compose.foundation:foundation-layout:$rootProject.composeVersion"
    implementation "androidx.compose.material:material:$rootProject.composeVersion"
    implementation "androidx.compose.runtime:runtime-livedata:$rootProject.composeVersion"
    implementation "androidx.compose.ui:ui-tooling:$rootProject.composeVersion"
    implementation "com.google.android.material:compose-theme-adapter:$rootProject.composeVersion"
}

这些依赖项的版本在根目录下的build.gradle文件中定义。

相关推荐
ljt27249606619 小时前
Compose笔记(二十三)--多点触控
笔记·android jetpack
uwvwko10 小时前
BUUCTF——web刷题第一页题解
android·前端·数据库·php·web·ctf
fzxwl10 小时前
隆重推荐(Android 和 iOS)UI 自动化工具—Maestro
android·ui·ios
LittleLoveBoy12 小时前
踩坑:uiautomatorviewer.bat 打不开
android
居然是阿宋13 小时前
Android核心系统服务:AMS、WMS、PMS 与 system_server 进程解析
android
CGG9216 小时前
【单例模式】
android·java·单例模式
kp0000016 小时前
PHP弱类型安全漏洞解析与防范指南
android·开发语言·安全·web安全·php·漏洞
编程乐学(Arfan开发工程师)21 小时前
06、基础入门-SpringBoot-依赖管理特性
android·spring boot·后端
androidwork21 小时前
使用 Kotlin 和 Jetpack Compose 开发 Wear OS 应用的完整指南
android·kotlin
繁依Fanyi1 天前
Animaster:一次由 CodeBuddy 主导的 CSS 动画编辑器诞生记
android·前端·css·编辑器·codebuddy首席试玩官