LIVE
Новость

Запуск Swift на Android через SwiftJava и SDK: архитектура и интеграция с Compose

По данным публикации на Хабре, Apple на WWDC в июне 2025 года анонсировала инструмент SwiftJava для связки Java и Swift, а затем выпустила официальный Swift SDK для Android.

Аврора Шинкарева·обновлено 20 октября 2026 г.

Запуск Swift на Android через SwiftJava и SDK: архитектура и интеграция с Compose

Swift на Android: путь к сингулярности. От анонса SwiftJava до полноценного приложения

На базе этого набора уже можно собирать приложения, где бизнес-логика написана на Swift, а пользовательский интерфейс — на Compose. Для рынка мобильной разработки это означает появление ещё одного варианта кроссплатформенной архитектуры рядом с Kotlin Multiplatform, и ставит перед командами практический вопрос: где инструмент полезен уже сегодня.

Архитектура решения

SwiftJava состоит из двух встречных частей. JavaKit — набор Swift-макросов и инструментов, которые генерируют исходники Swift для вызова Java-кода: берём Java-библиотеку и подключаем её к Swift-коду. SwiftKit — обратная библиотека, работающая под Java и открывающая Swift-типы для вызова из Java-стороны. По заявлению Apple, вся связка под капотом уходит в JNI, тот же слой, что используется в Android NDK для интеграции низкоуровневой логики на C и C++.

В демонстрации инженеры Apple взяли минимальный Java-класс com.example.Greeting и показали его использование из Swift как обычного типа: инициализация инстанса, вызов методов, всё уходит в JNI. В качестве production-кейса компания назвала миграцию утилиты Password Monitoring с Java на Swift.

Сравнение с Kotlin Multiplatform

В существующих кроссплатформенных решениях языки связываются иначе. В Kotlin Multiplatform общий модуль не монолитный, он делится на общую часть и платформенные варианты. Для Java и Android применяется Kotlin/JVM, для iOS и десктопов — Kotlin/Native. Связка идёт через механизм expect/actual, переопределяющий реализацию под разные таргеты. Интероп Kotlin↔Java практически полный, так как Kotlin вышел из Java как JVM-язык. Kotlin/Native общается со Swift через bridge-файлы Objective-C, а с C работает через JNI.

Apple идёт другим путём: вместо общей платформы предлагает прямую интероперабельность двух конкретных языков. Это упрощает интеграцию готовых Java-библиотек в Swift-код, но переносит все вопросы производительности и совместимости на JNI-слой. Выбор одного примера миграции для демонстрации зрелости инструмента выглядит скромно.

Что проверить перед внедрением

SwiftJava остаётся молодым инструментом. Apple показала портирование небольшой утилиты и пары Java-библиотек, убедительный production-кейс ограничен Password Monitoring. Перед закладкой SwiftJava в коммерческий проект стоит дождаться стабильной версии SDK, проверить производительность JNI-моста на реальной нагрузке и оценить долгосрочную поддержку со стороны Apple. До этого момента Kotlin Multiplatform остаётся более зрелым вариантом для проектов, где важна общая бизнес-логика между iOS и Android.