我是一名有一年经验的Java Android开发人员,最近开始用Kotlin和Compose编写应用程序.我大部分都很喜欢它,我正在考虑向我的团队其他成员推荐Kotlin MultiPlatform作为我们正在编写的一个小工具.

Vanilla Kotlin与多平台在项目设置上有什么不同?假设我们想让这款应用在Android和Desktop上运行(按照这个优先顺序),那么是编写一个Android Kotlin/Compose应用并稍后迁移更好,还是从头开始以多平台的方式启动项目?

推荐答案

如果您有一个Android应用程序,并且您决定添加桌面支持,则您的大部分时间将花在迁移到KMP依赖项上.

所以你需要知道桌面支持哪些库--我认为主要是导航,因为Jetpack导航不支持KMP,所以你需要 Select 一个支持KMP的导航库.我会 Select Decompose个,但您也可以在这list个KMM库中寻找其他解决方案.

我建议你从KMP项目开始,添加桌面目标,但不要测试/运行它.在通用模块中编写所有内容,这将防止你在那里使用Android专用代码-你仍然可以在androidMain中使用它.在这种情况下,稍后添加桌面支持将是一项容易得多的任务.

Android相关问答推荐

Jetpack DataStore原生lib已添加到Bundle 包:libdatastore_share_counter.so-那是什么?

如何使用Jetpack Compose使水平pager 显示离屏页面?

即使安装了Chrome和YouTube,Android对action_view a YouTube URL的意图也是空的

Jetpack Compose:如何将浮动操作按钮上方的子按钮居中对齐?

Android事件:APP_SCOUT_HANG警告SQLite

在Jetpack Compose中将导航绘图显示在顶部栏下方、底部栏上方

Camera2 将图像从 ImageReader 传递到 MediaRecorder

通知使用默认语言,屏幕显示多种语言,同时通过 AppCompatDelegate 设置应用程序语言

如何从包装在泛型中的 retrofit 调用中检索密钥?

如何在 React Native 下载文件之前打开文件管理器并 Select 一个目录

如何使用 Jetpack Compose 制作两个圆圈

验证硬编码密码

Android Jetpack Compose - 每次文本字段值更改时,可组合函数都会重新组合

JetPack Compose - 卡片行中的权重()不起作用

如何在 Android Studio 中创建新的可组合函数?

更改 Android SDK 版本 33 后建议在 xml 布局文件中不起作用

Android活动系统导航栏 colored颜色 ?

Kotlin:如何在另一个变量的名称中插入一个变量的值

Android - 水平(从右到左)圆形背景 colored颜色 过渡

ObjectBox,如何在冲突中放弃一切迁移?