Android和Web App共享Kotlin代码

时间:2018-02-21 23:18:37

标签: javascript android android-studio gradle kotlin

Kotlin的一个主要“卖点”似乎是能够将其编译为JVM或Android以及用于Web的JavaScript。要使用此功能,应该可以拥有一个代码库,其中某些文件在Android App和浏览器Web App之间共享。

然而,到目前为止,我发现如何设置这样的东西的细节很少,特别是在使用Android Studio及其基础Gradle设置时,从Android Studio新版本开始项目向导。我不介意我是否只能在命令行上构建Web应用程序,但我想维护Android Studio提供的Android调试连接。到目前为止,我对Gradle及其使用的典型习语知之甚少。

我确信我不是第一个有这个想法的人,所以我想知道一些关于如何设置它的最佳实践。我想到的问题包括:

  • 我是否将kotlin2jskotlin-android插件混合在一个构建文件中,或者我是否需要拥有多个构建文件(或许我应该说“模块”或“项目”,除非我不知道不知道哪个??
  • 如果我有多个构建文件,那么应该是两个(一个Android一个Web)还是三个(一个用于共享内容)?
    • 如果是两个构建文件,我该如何引用共享源?
    • 如果是三个构建文件,我使用哪个插件用于共享文件?
  • 我是否需要在三个不同的源树上分割我的来源?是否有任何约定应该如何调用?
  • 我是否需要将我的课程分成三组包,或者可以在同一个包中共存不同目标的代码?
  • 我需要调整哪些配置设置才能让IDE了解项目的布局?

我已阅读以下相关文档,其中包括:

1 个答案:

答案 0 :(得分:1)

我建议使用IDEA wizard为您创建一个简单的多平台项目(文件 - >新 - >项目 - > Kotlin - > Kotlin(多平台 - 实验))。社区版应该足够了。

回答你的问题:

  1. 你不要混合插件。您可以为公共代码创建一个单独的模块,并使用'kotlin-platform-common'插件。

  2. 三个模块,特殊插件&#k; kotlin-platform-common'

  3. 使用常识进行源分割。在公共代码中放置您想要/能够重用的任何内容。将特定于平台的代码放在平台模块中。

  4. 没有包裹限制。如果您愿意,可以将所有内容放在同一个包中=)

  5. 很确定它应该可行。如果没有,请尝试重新导入。