我不是 Android 开发人员,也不是 Java 专家,但最近我一直在寻找如何使用 Scala 开发 Android 应用程序。我发现了一些类似Android 上的 Scala 的东西,也在这里找到了很多问题和答案,但其中大多数都已经过时了(它们大多是在 2013 年到 2017 年之间)。另外,Android 上的 Scala的最后一个版本是在 2017 年。所以,我想那里并没有真正大的改进。
我在某处读到主要问题是 java 中的 lambda 表达式,但这没有意义。阻碍开发者在 Android 中使用 Scala 的真正原因是什么?
我知道 Kotlin 是开发 android 的首选方式,但是有没有办法在 Scala 中开发整个应用程序?有可能吗?如果是的话,这是一个好主意吗?
Scala 3 怎么样?新版Scala对于android开发还有希望吗?
广泛的原因是官方 Scala 编译器的维护者决定只发布针对 Java 虚拟机版本的字节码,而 Google(当时)不支持编译到 Dalvik 中。(甲骨文诉谷歌的法律诉讼可能影响了谷歌的决定)。
在此期间,Google 添加了对某些 Java 8 功能的支持。但是,支持并不完整,Scala 使用了 Google 工具不支持的一些功能。
这个 scala-lang.org 讨论涵盖了在 2.13 中构建 Android 应用程序必须跨越的一些主要障碍;它包括修补 Scala 标准库以使集合正常工作。看起来 Scala 2.13.7 确实有可能通过修补来解决至少一些问题。
与此同时,历史悠久的 Scala on Android 项目已基本被放弃;显然,我们已经开始努力开始一个基于 Scala 2.13 和 Scala 3 的新项目。