Anuncian Swift SDK para Android
(swift.org)- A medida que el lenguaje Swift ha madurado y se ha expandido a la nube, Windows, navegadores y microcontroladores, ahora se ha publicado el Swift SDK para Android
- Este SDK es el resultado de varios meses de trabajo del grupo de trabajo de Swift para Android, y permite a los desarrolladores crear apps nativas de Android con Swift
- El SDK viene incluido en el instalador de Windows o puede descargarse por separado para Linux y macOS, y también se ofrecen código de ejemplo y guías
- A través del proyecto swift-java, se admite la interoperabilidad bidireccional entre Swift y Java, con generación automática de bindings para garantizar rendimiento y seguridad
- Esta publicación acelera la expansión del ecosistema multiplataforma de Swift y es vista como un punto de inflexión que abre nuevas posibilidades para el desarrollo móvil
Resumen de Swift SDK for Android
- En el contexto de que Swift se ha expandido durante la última década desde servicios en la nube hasta Windows, navegadores y microcontroladores, ahora se oficializa su llegada a la plataforma Android
- Gracias a la interoperabilidad de Swift, es fácil compartir código entre distintas plataformas
- El grupo de trabajo de Android es un grupo abierto en el que cualquiera puede participar, y tiene como objetivo extender Swift a Android
- Este anuncio implica la publicación de una compilación nightly (preview) de Swift SDK for Android, fruto de una larga colaboración de la comunidad
Funciones principales del SDK y forma de distribución
- Ahora los desarrolladores pueden usar Swift para crear directamente aplicaciones nativas de Android
- Esto abre nuevas posibilidades para el desarrollo multiplataforma
- El SDK se ofrece integrado en el instalador de Windows y también puede descargarse por separado para Linux y macOS
- Swift.org explica cómo configurar código Swift en dispositivos Android mediante la guía “Getting Started”
- En el repositorio de GitHub Swift for Android Examples se muestra un flujo de trabajo de aplicación end-to-end
Compatibilidad de paquetes y expansión de la comunidad
- Con el Swift SDK, es posible portar paquetes existentes de Swift a Android
- Más del 25% de los paquetes en Swift Package Index ya admiten compilaciones para Android
- La página Community Showcase indica si son compatibles con Android
- Esta expansión refuerza el soporte multiplataforma del ecosistema Swift
Proyecto swift-java e interoperabilidad
- El proyecto swift-java es una biblioteca y generador de código que ofrece interoperabilidad entre Swift y Java
- Gestiona automáticamente la integración bidireccional entre Swift y Java, y genera bindings seguros y de alto rendimiento
- Los desarrolladores pueden usarlo para llevar lógica de negocio a Android, y se puede conocer más en el video de la charla de Swift Server Side Meetup
Participación de la comunidad y hoja de ruta futura
- Esta versión preview ha abierto nuevas oportunidades para la mejora de herramientas y expansión del ecosistema
- Se recomienda compartir experiencias, ideas, herramientas y apps en la categoría Android de los foros de Swift
- Este anuncio también se está debatiendo en el hilo oficial del foro
- El grupo de trabajo de Android está redactando actualmente un documento de visión, que presentará las áreas prioritarias y la dirección futura de Swift en Android
- A través del tablero del proyecto se puede seguir el progreso principal, y la calidad del SDK se gestiona con el sistema oficial de CI
- El equipo de Swift impulsa la participación de la comunidad y busca fortalecer la presencia de Swift dentro del ecosistema Android
1 comentarios
Opiniones en Hacker News
La pregunta clave de cualquier framework multiplataforma es cómo maneja la UI
Si usas sistemas de diseño que se sienten ajenos en cada plataforma, como Adobe Flex Builder, al final tienes que implementar a mano esa sensación nativa
Flutter intenta reproducir a la perfección el tema Cupertino de iOS, y React Native aprovecha los widgets base de cada plataforma para que elementos como el scroll se sientan naturales
Da pena que la entrada del blog no mencione esta parte tan importante
Incluso si Apple lanza Swift para Android, por la filosofía de diseño tan propia de Apple, podría sentirse raro en Android
Parece que la dirección futura dependerá de si este proyecto lo impulsa directamente Apple o si es un intento open source más centrado en la comunidad
Por eso me gusta KMP. En iOS puedes hacer la UI con SwiftUI y en Android con Kotlin, compartiendo solo la lógica de negocio
Cuando intentas compartir la UI, terminas en la pesadilla de “escríbelo una vez y depúralo en todas partes”
Swift for Android también parece que permitirá este tipo de compartición de lógica a nivel de lenguaje
Incluso en los ejemplos se sigue usando Jetpack Compose tal cual mientras se llama a lógica escrita en Swift
Mantiene la misma estructura que el modelo de memoria por conteo de referencias de Swift, así que hay bastante consistencia
Desde la perspectiva de Apple como responsable de herramientas para desarrolladores, espero que esta tecnología sirva de base para una nueva ola de innovación
SwiftUI en realidad no es una “UI nativa” en sí, sino un lenguaje declarativo que el sistema interpreta para generar UIView o NSView
A menos que se repliquen directamente como hace Flutter, no es posible usar la UI de Apple tal cual en Android
En cambio, proyectos como Skip.tools hacen el puente de SwiftUI hacia Jetpack Compose
Puedes ver un ejemplo en la app Skip Showcase
Trabajo en los productos de Skip y soy miembro del Swift Android Workgroup; participé como release manager de este SDK
Me da mucho gusto que se haya presentado como proyecto oficial
He usado RN y Flutter, pero siempre el problema fue la falta de sensación nativa
KMP existe, pero la mayoría de los desarrolladores empieza por iOS y luego se expande a Android
Si el código se comparte como Swift Package, ese flujo se vuelve mucho más natural
En cambio, hay bastante menos desarrolladores de Swift/Objective-C
Fuera de Estados Unidos, la cuota de iPhone es baja, así que las empresas suelen pensar más en Windows o el navegador
KMP ya se usa en apps grandes como Google Workspace y, con Kotlin y la inversión de JetBrains, su madurez es alta
Flutter tenía un ciclo de lanzamientos demasiado rápido y era difícil seguirle el ritmo
Con JavaScriptCore o QuickJS puede correr en iOS, Android y la web, y además permite hot reload
Eso sí, por las políticas de las app stores no sirve para cambios funcionales grandes, sino más bien para corregir bugs
En la realidad de ciclos de despliegue móviles lentos, me parece una gran oportunidad
La combinación de biblioteca core compartida + proyectos de UI nativa por plataforma ya funcionaba bien
Me preguntaba si esto estaba relacionado con el proyecto del transpilador SKIP que vi en el blog de Skip.tools
Quería llevar una app de SwiftUI a Android, pero quería evitar RN
Skip tiene dos modos: el modo Lite, que convierte código Swift a Kotlin, y el modo Fuse, que compila Swift directamente para Android
Ambos modos pueden usarse juntos para integrarse con el ecosistema de Kotlin, como Lottie o Firebase
Puedes ver una comparación más detallada en Skip Docs
Me alegra que ya exista un SDK oficial, porque ahora podremos usar la versión oficial en lugar de builds propias
Ojalá no se quede en un simple proof of concept, como Swift Embedded
Swift es un lenguaje hermoso, pero hay cierta inquietud respecto al liderazgo de su comunidad
Ya no quiero ver más RN ni Flutter
Estoy cansado de las interfaces acartonadas y la respuesta táctil lenta
Si la respuesta se siente lenta, probablemente sea un problema de implementación de la app
Apple podría perder el interés muy rápido
“You got Kotlin in my iOS.”
“You got Swift in my Android.” — una forma ingeniosa de decirlo
Ver Kotlin Native overview
Este anuncio parece demostrar el éxito del nuevo sistema de SDK de Swift
Antes, dar soporte a otras plataformas era complicado por el enredo con CMake, pero ahora, si sigues las reglas del SDK, se puede portar a cualquier plataforma
Además de Android, planea expandirse a Linux, wasm, embedded y pronto Windows
La interoperabilidad con la JVM todavía no está completa, pero está claro que la independencia de plataforma ha crecido
Me gusta Kotlin Multiplatform, pero Swift for Android también me parece interesante
Compartir bibliotecas nativas de Swift para trabajos sensibles a memoria podría ser útil
Aun así, para mover toda la lógica de negocio a Swift, KMP sigue siendo más maduro por ahora
Compartir la lógica de negocio ya era un problema resuelto
El verdadero dolor estaba en tener que escribir la UI dos veces
Hace falta un framework de UI común que no sea tan incómodo como React Native
Usándolo junto con Expo, la experiencia de desarrollo ha mejorado mucho
Llevo mucho tiempo compartiendo código entre Android e iOS, pero compartir la UI era una pesadilla
La lógica compleja la compartíamos con C/C++/Rust, pero al final eso te deja con tres lenguajes distintos
KMP y Swift for Android permiten compartir todo solo con Kotlin o Swift, así que queda mucho más limpio
Este enfoque es mucho más realista y eficiente que los frameworks que fuerzan compartir la UI