Рабочая группа Swift для Android поделилась результатами работы над проектом и будущими задачами.
• Swift компилируется непосредственно в нативный машинный код на Android. Такой подход обеспечивает производительность, аналогичную коду на C и C++, созданному с использованием NDK, при этом достигая более оптимального баланса между производительностью, безопасностью и удобством использования. Для этого приложения Swift на Android включают в себя нативную среду выполнения, которая реализует многие из его функций, включая стандартную библиотеку и основные библиотеки, такие как Dispatch и Foundation.
• Для работы с API Android есть инструменты
jextract и wrap-java. Эти инструменты автоматически создают биндинги, позволяющие вызывать Swift из Java или наоборот, используя JNI, что позволяет Swift беспрепятственно интегрироваться с платформой Android.• До недавнего времени Swift на Android не поддерживал целевое использование нескольких уровней API Android в одном приложении, но в последних предварительных версиях появились знакомые атрибуты
@available и проверка среды выполнения #available.• Swift на Android уже используется в продакшене (используя собственные разработки Java Interoperability): это, например, Spark — популярный почтовый клиент, flowkey — интерактивное приложение для обучения игре на фортепиано, Naturitas — маркетплейс органических продуктов.
• На доске проекта Android перечислены области, которые рабочая группа считает важными - например, это упрощенная отладка, которая сейчас является приоритетной.
• Создана официальная система непрерывной интеграции (CI) для SDK Swift 6.3, которая выпускает ночные предварительные версии SDK Swift 6.3 для Android.
• Рабочая группа не предлагает единого решения с графическим интерфейсом, однако есть ряд новых проектов сообщества, которые подошли к этой задаче по-разному.
