2024年Clojure状态调查!分享您的想法。

欢迎!请查阅关于页面了解有关如何使用本站的一些更多信息。

+10
其他
编辑

开发Android的最佳方法是什么?

我知道clojurescript/react native是一种方法。我曾认为纯Clojure在Android上启动速度非常慢,但我看到有人提到使用GraalVM与Android一起使用。还有其他方法吗?各种方法的优缺点是什么?每条路径的成熟度如何?Android开发的可行性如何?

谢谢

1个回答

+4

我从未尝试过在Clojure中开发Android,但从我所知,最可能的方法是使用React Native和ClojureScript。这里有一个有用的资源:https://cljsrn.org/

据了解,GraalVM目前不支持从Android或iOS编译。它可以编译到ARM64 Linux,但尚未支持Android或iOS。您可能仍需要一个用户界面层,因此您可能需要实现它并将其调用到由Graal编译的库。因此,这并不是一个完整的解决方案。

理论上使用Clojure也应生效。但Java不完全支持Java 8字节码,而Clojure 1.9+编译成Java 8字节码。因此,使用Clojure 1.9+时可能会出现无法正常工作的情况。尽管如此,Android一直在尝试添加更多对Java 8特性的支持,现在可能已经足够好了。不过,Android上针对Clojure的工具不会很多。预期可能需要您自己进行配置。您很可能会需要使用AOT编译,并将生成的.class文件集成到Android工具链中,以便进行字节码的转换和编译成dex字节码。

需要注意的是,Clojure在导入命名空间、初始化变量等操作上相对较慢,所以它可能不是Android上最佳的响应式语言选择。

有一个潜在的可能性但具体可行性未知,那就是使用Clojure进行移动应用开发:[Gluon](https://gluonhq.com/products/mobile/)

综上所述,鉴于在Android工具链中对Clojure的支持有限,以及存在工具不足的问题,还有Gluon和Graal当前不支持Android ARM作为目标平台,并且它本身也不构成完整的解决方案,我认为,在撰写本文档时,使用React Native结合ClojureScript是最佳方案。

...