我正在寻求构建一个能良好跨平台运行的应用程序。我如何知道哪些语言、框架和工具适合我?
这是我们在开发者社区听到的一个常见问题 - 有时我们会从Google获取一些提示,可是却很难在众多选项中做出抉择。我们已经听到了您的呼声!
为您的应用做出正确的决定取决于多种因素,包括团队和产品目标。我们一直致力于让您更轻松使用 Google 的产品。在这篇博文中,我们将提供一些指导,帮助您为您的项目选出正确的技术解决方案。
如果您想在您的应用程序中利用 Android 的全新特性的功能,我们为您推荐Kotlin语言。将 Kotlin 与 Jetpack Compose(用 Kotlin 开发的 Android 现代 UI 工具包)结合使用,能使您访问最新且完整的 Android 特定功能和服务,来创建高质量和优质的应用程序。此外,您还可以在运行 Android 的所有设备类型和屏幕上获得最佳应用程序性能,包括:手机、平板电脑、可折叠设备、笔记本电脑、手表、电视、汽车等。对于需要与硬件和 Android 平台深度集成的应用程序来说,Kotlin 编写的 Android 应用程序也是最佳选择。使用 Kotlin 和 Jetpack Compose 可以通过 Live Edit 代码编辑、Android Studio 中的 Compose UI 预览工具支持以及直观的 Kotlin API 简化并加速 Android 上的 UI 开发。有关如何开始使用 Compose的更多详细信息。
我们推荐使用 Kotlin Multiplatform (KMP) 在应用程序间共享业务逻辑。在今年的 Google I/O 大会上,我们宣布 Android 将支持 Kotlin Multiplatform。您可用它来跨移动、桌面、Web 和服务器共享业务逻辑。使用 KMP 允许您将 Kotlin 代码编译为特定于平台的二进制文件(例如 Android、iOS、JVM、WASM),因此您可以以最小的开销调用特定于平台的 API。 KMP 有助于减少代码重复并使共享业务逻辑的维护变得更加容易,并且您可以继续使用特定于平台的 API 构建 UI。更多有关 Kotlin Multiplatform for Android 的最新详细信息。
当您想要跨所有平台共享业务逻辑和 UI 代码,并提供一致、可靠的用户体验时,Google 推荐您使用 Flutter 这个 SDK。借助 Flutter,您可以从单个共享应用程序代码库跨 Android、iOS、Web 和桌面(Windows、macOS、Linux)创建丰富的应用程序体验。 Flutter 应用程序使用 Dart 语言编写,该语言可在大多数平台(例如 iOS、Android)上直接编译为机器代码(例如 ARM、x86、RISC-V)。 Dart 也能用在 Web 上,它可以编译为 JavaScript,并且正如今天在 Google I/O 上宣布的那样,它也可以编译为 WebAssembly。 Dart 还在开发过程中提供有状态的热重载,开发人员可以使用 Flutter 来快速实现视觉效果的更新迭代。有关如何开始使用 Flutter 的更多详细信息。
因为我们希望继续为您提供选择,所以我们正在积极致力于改进 Flutter 和 Kotlin 跨所有平台的互操作性。
无论您是使用 Flutter 跨多个平台共享 UI 和业务逻辑,还是使用 Kotlin Multiplatform 进行开发以实现共享业务逻辑,您都可以选出最适合您业务的方法。我们希望这些技术能够帮助您更快、更高效地构建出色的应用程序。