Rag*_*han 3 android kotlin kotlin-extension kotlin-android-extensions gradle-experimental
我正在使用@ParcelizeKotlin语言在Android开发中使用该功能.
要使用它们,我在build.gradle文件中进行了以下修改.
apply plugin: 'kotlin-android-extensions'
Run Code Online (Sandbox Code Playgroud)
然后
androidExtensions {
experimental = true
}
Run Code Online (Sandbox Code Playgroud)
我成功使用了上述功能.但是,是否建议将它们用于生产发布或仅用于开发目的?
这不仅仅是一个Android的东西,它通常是Kotlin.Kotlin有很多实验性功能,例如协同程序和android扩展.
如果你阅读了文档,你会发现:
实验性功能,例如Kotlin 1.1中的协同程序,可以免除上面列出的兼容性模式.此类功能需要在没有编译器警告的情况下使用选择.实验性功能至少向后兼容补丁版本更新,但我们不保证对次要版本更新有任何兼容性(将尽可能提供迁移辅助工具).
实验功能仅仅意味着不同的兼容系统.它们仍然有效(beta版本属于EAP,EAP不保证兼容性或稳定性).实验性功能在技术上是释放,这意味着它们与任何其他语言功能一样稳定(因为可能存在缺陷,总是可以存在,但它的目的是稳定).
因此,如果您想在生产中使用它,请执行此操作.实验性功能具有不同的兼容模式,但它们应该与任何其他语言功能一样稳定.它们在生产中"安全"使用没有太大问题.如果存在不兼容的更新,您可能必须重新编写代码,但这是一个开发问题,而不是发布问题.
但是,android扩展文档还提到了实验部分:
Android Extensions插件包括几个实验性功能,如LayoutContainer支持和Parcelable实现生成器.这些功能尚未被视为生产就绪,因此您需要打开实验模式[...]
考虑到我之前提到的事情,这可能意味着功能本身没有完成,等同于协同程序.您可以在生产版本中使用它,但它不被视为Kotlin语言的生产就绪组件.由于它是实验性的,它已经发布了.版本通常比EAP版本更好.
另见Kotlin论坛上的这篇论坛帖子(它提到了协同程序,但其中一些也适用于其他实验性功能).
而且,显然,如果它在开发中不起作用,它很可能也不会在生产中起作用.如果扩展中的某些内容完全中断,请不要使用该特定功能.但这并不一定意味着整个扩展都被打破了.通常,即使使用EAP,如果它可以工作,您也可以在生产中使用它.