Programación en Swift y SwiftUI para iOS Developers

Cómo crear aplicaciones para Android usando Swift

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, aarch64x86_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 --version

Esto 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 list

Esto 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-r27d

Luego 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.sh

Este 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 executable

Esto 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/hello

Verá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-stdlib

Para ARM (usado en la mayoría de dispositivos Android modernos):

$ swiftly run swift build --swift-sdk aarch64-unknown-linux-android28 --static-swift-stdlib

Esto 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/hello

Verá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

Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Article

Cómo cambiar el color de fondo de un TabView en SwiftUI

Next Article

Cómo aprender a programar en SwiftUI

Related Posts