使用Kotlin多平台实现相机库

问题描述 投票:0回答:1

我试图了解应该具有多平台库的结构。在Internet上查看,我已经看到了很多示例,这些示例解释了如何制作日志或“世界”,但是即使在official documentation中也缺少复杂的示例(重要的是,我只对移动平台(iOS和Android)。

因此,我想创建一个示例,简单地打开相机(以lib的形式,而不是以多平台应用程序的形式),只是想知道如何使用真实的功能(也是本地的)。现在,我已经在official example之后创建了一个项目,因此它具有一个通用模块(使用Expect),一个用于Android的模块,一个用于iOS(使用实际的模块)的模块,现在,我对此表示怀疑:

  • 据我所知,iOS模块也在Kotlin / Kotlin / Native中。我的项目应该在Swift中也包含包装器,还是该库中没有Swift代码?如果应该,它应该在项目结构中的什么位置?

  • 同样在Android模块中,我注意到我无法导入类“ Activity”或“ Intent”,这将需要打开相机,为什么?这段代码是否仅限于没有Android库的Java?它也应该有Android的包装器吗?如果是这样,如何配置此包装器?

  • 我知道我可以在创建类时使用“期望”键,但据我所知,通用模块和本机模块将始终是分离的类。我的意思是,如果我在通用模块中创建一个类,是否可以使用“期望”定义此类的方法,并稍后在本机中定义它们?

  • 我的图书馆可以有清单吗?

  • 最后,有人知道一个真实的例子,可以真正解释一个更复杂的情况吗?

谢谢

android ios kotlin multiplatform kotlin-multiplatform
1个回答
2
投票

好的,让我们一一解答您的问题。

  1. 我建议您看看this示例
  2. 结果,iOS模块生成了一个Objective-C框架。 Xcode项目可以像使用其他非Kotlin框架一样使用它。
  3. 似乎无法使用Android SDK是改用jvm("android")目标的结果android()之一。要使用android目标,除了必须使用kotlin-multiplatform之外,还必须应用android Gradle插件。
  4. I认为你想做这样的事情:普通班common和扩展功能中的声明,并带有expect修饰符。然后在特定于平台的平台上实现它代码。
  5. 我认为是。
  6. 我也建议您看看thisthis,也许这些示例对您来说足够复杂。😁
© www.soinside.com 2019 - 2024. All rights reserved.