簡體   English   中英

使用 Kotlin 多平台實現相機庫

[英]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 的方法並稍后在本機中定義它們嗎?

  • 我的庫可以有清單嗎?

  • 最后,有沒有人知道一個真正解釋更復雜情況的真實例子?

謝謝

好的,我們來一一解答您的問題。

  1. 我建議你看看這個例子
  2. 結果,iOS 模塊生成 Objective-C 框架。 Xcode 項目可以像使用任何其他非 Kotlin 起源的框架一樣使用它。
  3. 看起來無法使用 Android SDK 是使用jvm("android")目標而不是android()的結果。 要使用 android 目標,除了 kotlin-multiplatform 之一之外,還必須應用 android Gradle 插件。
  4. 我想你想做這樣的事情:只是普通的 class 聲明中的common和擴展 function 使用expect修飾符。 然后在特定於平台的代碼中實現它。
  5. 我認同。
  6. 我還建議您看一下thisthis ,也許這些示例對您來說已經足夠復雜了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM