[英]Implement camera lib with Kotlin multiplatform
我试图了解什么结构应该有一个多平台库。 在网上查了很多例子,解释如何制作日志或“hello world”,但缺乏复杂的例子,即使在官方文档中(重要的是要注意我只对移动设备感兴趣)平台,iOS 和 Android)。
所以我想创建一个简单地打开相机的示例(作为一个库,而不是作为一个多平台应用程序),只是为了了解如何使用一个真实的功能,这也是本机的。 现在我按照官方示例创建了一个项目,所以它有一个通用模块(使用期望)和一个用于 Android 和一个用于 iOS(使用实际),现在这些是我的疑问:
据我所知,我已经看到 iOS 模块也在 Kotlin,Kotlin/Native 中。 我的项目是否应该在 Swift 中也有一个包装器,还是该库没有 Swift 代码? 如果应该,它应该在项目结构中的什么位置?
同样在 Android 模块中,我注意到我无法导入 class “活动”或“意图”,我需要打开相机,为什么? 此代码是否仅限于 Java 没有 Android 库? 它还应该有 Android 的包装器吗? 如果是这样,我该如何配置这个包装器?
我知道在创建类时可以使用“expect”键,但据我了解,通用模块和本机模块将始终是分开的类。 我的意思是,如果我在 common 模块中创建一个 class ,我可以使用“expect”定义这个 class 的方法并稍后在本机中定义它们吗?
我的库可以有清单吗?
最后,有没有人知道一个真正解释更复杂情况的真实例子?
谢谢
好的,我们来一一解答您的问题。
jvm("android")
目标而不是android()
的结果。 要使用 android 目标,除了 kotlin-multiplatform 之一之外,还必须应用 android Gradle 插件。common
和扩展 function 使用expect
修饰符。 然后在特定于平台的代码中实现它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.