Cómo utilizar el administrador de paquetes Swift para crear un entorno de desarrollo simple
Crear producto
Supongamos que queremos crear un árbol binario mínimo balanceado, podemos ejecutar el siguiente comando:
mkdir BST
cd BST
init del paquete Swift --type=library
Me gusta esto. SPM creará la siguiente estructura de directorios para nosotros:
En esta estructura de directorios, podemos aprender lo siguiente:
Swift administra el código a través de módulos. De forma predeterminada, todos los archivos están en el. mismo módulo (veremos varios módulos más adelante);
Todo el código en el directorio Fuentes y el archivo Package.swift en el directorio raíz forman el directorio SWIFT.
En un paquete, podemos definir uno o más Targets;
Target puede ser una biblioteca que definimos al principio, que también puede ser utilizada por otros módulos Swift; un ejecutable, lo veremos más adelante;
Creando el primer módulo
En el directorio raíz de Fuentes, todo el código fuente está en el mismo módulo de forma predeterminada. Comencemos escribiendo un código de muestra en BST.swift
:
Abrir clase BST {
public init() {
imprimir ("Nuevo BST inicializado.")
}
}
}
BST extendido: CustomStringConvertible {
descripción de var pública: String {
return "BST"
}
}
Por supuesto, no son la implementación oficial de BST todavía. Aquí solo estamos demostrando el uso de este módulo. Luego, agregamos un caso de prueba de demostración en Tests/BSTTests/BSTTests.swift:
class BSTTests:XCTestCase {
func testExample() {
XCTAssertEqual ( BST().description, "BST")
}
}
Debido a que nuestra implementación de CustomStringConvertible simplemente devuelve la cadena "BST", la comparación anterior debería ser iguales.
Después de completar, ejecutamos: swift build en el directorio raíz del proyecto, para que tengamos un módulo Swift:
Ejecute la prueba rápida, SPM nos ayudará a completarla. Casos de prueba previamente definidos:
Como se puede ver en los resultados anteriores, todas las pruebas pasaron. Sin embargo, en última instancia, tenemos que crear bibliotecas para que estén disponibles para las aplicaciones. Entonces, a continuación comprendamos cómo agregar un programa ejecutable en el paquete, que definiremos en un nuevo módulo.
Crear múltiples módulos
De forma predeterminada, todo el código en el directorio Fuentes está en el mismo módulo.
Por lo tanto, para crear múltiples módulos, necesitamos crear múltiples subdirectorios en el directorio Fuentes de la siguiente manera:
BST: representa el módulo BST y mover aquí el BST.swift creado anteriormente;
p>Aplicación: representa la nueva aplicación que queremos agregar; en ella agregamos un main.swift; este es un archivo que se debe definir para cada aplicación;
Finalmente, nuestro directorio es el siguiente. :
Luego, en main.swift, agregue el siguiente código:
Aplicación: representa la nueva aplicación que queremos agregar y mover el BST.swift creado anteriormente aquí. En Swift, agregue el siguiente código:
importar BST
let bst = BST()
imprimir (bst)
Re- Al ejecutar Swift Build, obtenemos el siguiente error:
Aparentemente, aunque usamos import BST, SPM no sabía que había una dependencia entre este y BST al generar el módulo de la aplicación. Para resolver este problema, necesitamos agregar las dependencias necesarias en Package.swift:
let paquete = Paquete(
nombre: "BST",
objetivos : [
Destino(nombre: "Aplicación ", dependencias: ["BST"])
]
)
De esta manera , creamos un objetivo llamado Aplicación, que depende del módulo BST que creamos anteriormente.
Una vez completado, vuelva a ejecutar la compilación rápida y podrá ver que se realizó correctamente:
Los dos módulos rápidos compilados se encuentran en el directorio ./build/debug, los ejecutamos directamente la Solicitud.