Contenu du post
🤖🦢Пример написания библиотеки для Android на языке Swift (RU, 17м) В Swift 6 появилась возможность работать с Android NDK из Swift и всё это потом вызывать из Java при помощи JNI. Java Native Interface (JNI) – это мост который позволяет нативному коду обращаться к Java Virtual Machine (JVM). Когда вы пишете Java код, то вы используете Android SDK. Но когда вы используете языки как Swift или C++, которые не компилируются в Java байткод, вам уже нужен Android NDK для коммуникации с Java через JNI. Пример нативного кода #if os(Android) @_cdecl("Java_com_habr_swiftlib_myfirstandroidproject_SwiftInterface_initialize") public func initialize( envPointer: UnsafeMutablePointer<JNIEnv?>, clazzRef: jobject, callerRef: jobject ) { // Активируем Android logger LoggingSystem.bootstrap(AndroidLogHandler.taggedBySource) // Инициализируем JVM let jvm = envPointer.jvm() JNIKit.shared.initialize(with: jvm) // ДАЛЕЕ: кэшируем class loader // ДАЛЕЕ: пример `toString` // ДАЛЕЕ: пример `Task` } #endif Инструменты сгенерят вам код для работы из Java/Kotlin package com.habr.swiftlib.myfirstandroidproject object SwiftInterface { init { System.loadLibrary("MyFirstAndroidProject") } external fun initialize(caller: Any) } #android#ndk#swift