Swift Package Manager - Añadir código SWIFT de otros developers en nuestra APP

Cómo usar Swift Package Manager para añadir dependencias, frameworks o paquetes de otros developers. Swift Package Manager está integrado en Xcode y de una manera muy rápida, con una simple URL de Github podríamos integrar código Swift a nuestra app y estar listos para usarlo.

SwiftBeta

En el post de hoy explicaré a cómo usar Swift Package Manager para descargar algún repositorio de otros developers que lo tengan alojado en Github.


¿Cómo usar Swift Package Manager para añadir una dependencia?

Lo primero de todo que vamos hacer es crear un proyecto en Xcode de cero, una vez creado, vamos a pensar qué dependencia (framework, paquete, etc como quieras llamarlo) queremos integrar en nuestro proyecto. (En el post de hoy añadiremos Alamofire). Podemos ir a Github y explorar código de otros developers en Swift.

Build software better, together
GitHub is where people build software. More than 65 million people use GitHub to discover, fork, and contribute to over 200 million projects.

Una vez sabemos qué código queremos integrar en nuestra app, vamos a nuestro proyecto de Xcode, y seleccionamos nuestro proyecto (fíjate, el icono azul de listado de ficheros). Al seleccionar nuestro proyecto nos aparecerá marcada la opción Info. Aparecen más opciones y la que debemos seleccionar es la opción de Swift Packages (la opción que sale seleccionada en la siguiente imagen)

Una vez seleccionado Swift Packages, ya podemos añadir código de otros developers.

He escodigo Alamofire ya que es un framework muy conocido y es muy útil para proyectos que quieren realizar peticiones HTTP. Te dejo el enlace por si quieres echar un vistazo más detallado.

GitHub - Alamofire/Alamofire: Elegant HTTP Networking in Swift
Elegant HTTP Networking in Swift. Contribute to Alamofire/Alamofire development by creating an account on GitHub.
Antes de intentar añadir alguna dependencia usando Swift Package Manager, debemos asegurarnos de que soporta Swift Package Manager, sino recibiríamos un error.

Para añadir Alamofire usando Swift Package Manager seleccionamos la opción de "Add Package Dependency"

Al hacerlo nos aparecerá la siguiente pantalla con un buscador. Aquí dentro podemos poner la URL del repositorio de Github que queremos integrar en nuestra app.

Una vez añadida la URL le damos a Next y nos aparecerá la siguiente pantalla.

En esta pantalla podemos escoger una de las opciones que aparecen. Podemos instalar Alamofire:

  • Especificando una version. Y ¿qué es una versión? cada vez que se saca una release de Alamofire con mejoras, bug fixes, etc se crea un TAG, este tag nos sirve para escoger qué versión queremos usar de Alamofire (si una muy reciente o una más antigua). Es lo mismo que vemos en el app store, cuando una app saca una nueva versión, tiene un numerito.
  • Especificando una rama (en este caso sale master, pero podríamos escoger otra, por ejemplo, develop). Imagina que algún developer crea una rama experimental con algún cambio, podrías poner esa rama para probar los cambios alojados únicamente en esa rama.
  • Especificando un commit

En nuestro caso escogemos la versión que aparece en la imagen y le damos a Next. Xcode empezará a trabajar. Intentará acceder a la URL que le hemos especificado en el primer paso y con la version que hemos especificado en el segundo paso.

Y si todo va bien, aparecerá la siguiente imagen

Le damos a Finish y Xcode añadirá correctamente la dependencia de Alamofire en nuestro proyecto. La imagen final quedaría de la siguiente manera:

Si te fijas, en el menú lateral izquierdo ahora aparte de tener tu código, también te aparece una sección nueva llamada Swift Package Dependencies donde se irá alojando todo el código que instalemos con Swift Package Manager.

Conclusión

En el post de hoy hemos aprendido a descargar e integrar código de otros developers en nuestra app. Este código ha sido alojado en Github y solo hemos tenido que usar la URL del repositorio y especificar qué versión queríamos en nuestra app.
Hemos usado Alamofire para poder crear peticiones HTTP sin escribir ni una línea de código relacionada con URLSession.

Si quieres seguir aprendiendo sobre SwiftUI, Swift, Xcode, o cualquier tema relacionado con el ecosistema Apple


SPM