Guía paso a paso para desarrolladores
Durante más de una década, Swift ha sido el lenguaje de referencia para crear aplicaciones para plataformas de Apple como iOS y macOS. En 2025, gracias al nuevo Swift SDK for Android, este potente lenguaje orientado a la seguridad, el rendimiento y la productividad también puede usarse para desarrollar aplicaciones Android. Swift.org
Este tutorial te llevará desde la configuración inicial hasta construir y ejecutar tu primera aplicación Swift en Android. Cubriremos instalación, compilación cruzada, ejecución en dispositivo/emulador, y los siguientes pasos para construir apps completas. Vamos allá.
📌 ¿Qué es el Swift SDK for Android?
El Swift SDK for Android es un conjunto de herramientas que permite compilar código Swift para Android, creando binarios que pueden correr sobre el sistema operativo Android. Antes de este SDK oficial, la única forma de ejecutar Swift en Android requería herramientas de terceros o soluciones poco mantenidas. Ahora existen herramientas oficiales y flujos de trabajo respaldados por la comunidad Swift. Swift.org
El SDK incluye:
- Bibliotecas y cabeceras específicas para Android.
- Herramientas para compilar y enlazar código Swift para varias arquitecturas (por ejemplo, aarch64, x86_64).
- Scripts para integrar correctamente el SDK con el Android NDK.
🧰 Requisitos previos
Antes de empezar con Swift en Android, necesitas preparar tu entorno:
🖥️ 1. Un sistema host para desarrollo
El procedimiento oficial soporta actualmente:
- macOS
- Linux
No hay soporte oficial completo para Windows en este momento. Swift.org
📦 2. Herramientas necesarias
Asegúrate de tener:
- Toolchain de Swift adecuado (usualmente mediante el gestor
swiftly) - Android NDK (Native Development Kit) – necesario para compilación cruzada
- ADB y SDK de Android (parte de Android Studio) para instalar y probar en dispositivos/emuladores
📥 Paso 1 — Instalar el Host Toolchain
Para compilar Swift necesitas un toolchain de Swift específico, que incluya el compilador y herramientas que coincidan con la versión del SDK Android que vas a usar.
Una forma práctica recomendada por la documentación es usar la herramienta swiftly, que facilita la instalación y gestión de toolchains.
Ejemplo de comandos (en terminal):
$ swiftly install main-snapshot-2025-12-17
$ swiftly use main-snapshot-2025-12-17
$ swiftly run swift --versionEsto instala y selecciona una versión concreta de Swift (por ejemplo un snapshot de desarrollo). Swift.org
Importante: El toolchain de Swift debe coincidir con la versión del SDK para evitar errores de compilación.
📦 Paso 2 — Instalar el Swift SDK para Android
Una vez tengas el toolchain de Swift configurado, el siguiente paso es instalar el Swift SDK para Android. Este paquete contiene las librerías específicas de Android y scripts necesarios:
$ swift sdk install https://download.swift.org/development/android-sdk/swift-DEVELOPMENT-SNAPSHOT-2025-12-17-a/swift-DEVELOPMENT-SNAPSHOT-2025-12-17-a_android.artifactbundle.tar.gz --checksum <checksum>Tras ejecutarlo, puedes verificar que se instaló correctamente:
$ swiftly run swift sdk listEsto mostrará el SDK Android entre los instalados. Swift.org
🛠️ Paso 3 — Instalar y configurar el Android NDK
El Android NDK es esencial porque incluye las herramientas de compilación cruzada como clang y enlazadores (ld) que Swift necesita para producir binarios Android nativos.
Una forma sencilla de instalarlo:
$ mkdir ~/android-ndk
$ cd ~/android-ndk
$ curl -fSLO https://dl.google.com/android/repository/android-ndk-r27d-$(uname -s).zip
$ unzip -q android-ndk-r27d-*.zip
$ export ANDROID_NDK_HOME=$PWD/android-ndk-r27dLuego hay que vincular este NDK con el Swift SDK para Android:
$ cd ~/.swiftpm
$ ./swift-sdks/swift-DEVELOPMENT-SNAPSHOT-2025-12-17-a_android.artifactbundle/swift-android/scripts/setup-android-sdk.shEste script enlaza las rutas necesarias para que el Swift SDK encuentre el NDK correctamente. Swift.org
Al finalizar, tendrás un ambiente de compilación cruzada completo para construir Swift para Android.
🧪 Paso 4 — Tu primer programa “Hello World”
Vamos a probar que todo esté configurado construyendo un pequeño programa Swift que imprima “Hello, world!”.
Crear el paquete Swift
$ cd /tmp
$ mkdir hello
$ cd hello
$ swiftly run swift package init --type executableEsto genera una estructura básica de proyecto.
Compilar para host
Antes de compilar para Android, prueba que funcione localmente en tu sistema:
$ swiftly run swift build
$ .build/debug/helloVerás la salida:
Hello, world!🤖 Compilación cruzada
Ahora que todo funciona localmente, compílalo para Android.
Para x86_64
$ swiftly run swift build --swift-sdk x86_64-unknown-linux-android28 --static-swift-stdlibPara ARM (usado en la mayoría de dispositivos Android modernos):
$ swiftly run swift build --swift-sdk aarch64-unknown-linux-android28 --static-swift-stdlibEsto produce ejecutables compatibles con Android, que puedes usar en un emulador o dispositivo real.
📱 Ejecutando tu app en Android
Con tu ejecutable compilado, puedes enviarlo a un dispositivo Android (o emulador) usando adb:
$ adb push .build/aarch64-unknown-linux-android28/debug/hello /data/local/tmp
$ adb push $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/*/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so /data/local/tmp
$ adb shell /data/local/tmp/helloVerás “Hello, world!” en la salida del dispositivo. ¡Felicidades, corriste tu primer programa Swift en Android!
👉 ¿Y ahora qué? Haciendo aplicaciones completas
El ejemplo anterior te permite ejecutar aplicaciones de consola en Android. Sin embargo, las apps Android reales (con interfaz de usuario, ciclo de vida, interacciones, etc.) requieren empaquetarse como un .apk y funcionar dentro del framework Android. Swift.org
Esto comprende varios pasos adicionales:
📦 1. Convertir tu lógica Swift en librerías nativas
En lugar de ensamblar ejecutables, compila tu código Swift como bibliotecas compartidas (.so) para cada arquitectura. Estas bibliotecas pueden enlazarse desde un proyecto Android nativo.
📲 2. Integrar con una app Android Java/Kotlin
Normalmente, el código de la interfaz Android (UI/UX) se escribe en Java o Kotlin. Para usar la lógica Swift desde ahí, puedes utilizar:
- Java Native Interface (JNI): puente estándar entre código nativo y Java.
- swift-java: proyecto que genera enlaces seguros entre Java y Swift. Swift.org
Con estos, puedes invocar funciones Swift desde Android, por ejemplo para lógica de negocio, cálculos, manejo de datos, etc.
🧭 Buenas prácticas y recomendaciones
✔ Comparte tu lógica Swift entre iOS y Android:
Si estás construyendo apps para ambas plataformas, puedes maximizar el código reutilizable colocando toda la lógica de negocio y modelos en Swift, dejando las vistas y la interacción de UI a cada plataforma.
✔ Revisa compatibilidad de API
Actualmente el soporte Android para Swift apunta a API 28 como mínimo, lo que cubre la mayoría de dispositivos modernos. Swift Forums
✔ Únete a la comunidad Swift Android
El grupo de trabajo de Android en Swift.org está activo y abierto. Allí puedes discutir problemas, compartir herramientas y obtener ayuda. Swift.org
❗Limitaciones actuales y futuro
📌 El soporte aún está en modo preview (no está completo como usar SwiftUI o componentes nativos Android desde Swift directamente). Swift.org
📌 La interfaz visual todavía se construye mayormente con Java/Kotlin, y el código Swift sirve para lógica y partes nativas.
📌 La documentación seguirá creciendo con ejemplos de aplicaciones completas y mejores flujos de trabajo para integrar UI Android.
🏁 Conclusión
Usar Swift para construir apps Android ya es una realidad gracias al Swift SDK for Android. Aunque aún está en fase de herramientas de preview, permite:
- Configurar un ambiente de compilación cruzada.
- Crear y compilar código Swift para múltiples arquitecturas Android.
- Ejecutar código en dispositivos reales o emuladores.
- Integrar lógica Swift en apps Android vía interoperabilidad con Java/Kotlin.
Este flujo abre un camino interesante hacia desarrollo multiplataforma manteniendo Swift como lengua común para la lógica de negocio.
Si tienes cualquier duda sobre este artículo, contacta conmigo y estaré encantado de ayudarte 🙂. Puedes contactar conmigo en mi perfil de X o en mi perfil de Instagram










