Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Swift
Code

Cómo codificar con Swift en el servidor

by
Difficulty:IntermediateLength:MediumLanguages:

Spanish (Español) translation by Luis Chiabrera (you can also view the original English article)

Final product image
What You'll Be Creating

Desde que Apple presentó a Swift como el sucesor de Objective-C, ha revolucionado la forma en que la comunidad codifica las aplicaciones iOS, macOS, watchOS y tvOS. Cuando Swift se convirtió en una plataforma de código abierto, abrió nuevas posibilidades para el lenguaje más allá de las aplicaciones móviles y del lado del cliente. ¡Swift también se convirtió en un lenguaje de servidor! En este tutorial, aprenderá qué es Swift del lado del servidor y por qué querría tener Swift en su back-end.

La iniciativa Swift del lado del servidor está siendo impulsada por tres proyectos prominentes, Vapor by Qutheory, IBM Kitura y Perfect, con el objetivo de permitir que los desarrolladores de Swift creen servicios back-end completos. Esto, en esencia, transformará a tales desarrolladores en desarrolladores de pila completa, negando la necesidad de confiar en Node o PHP o dando el control a una plataforma BaaS como Firebase de Google.

Objetivos de este artículo

En este artículo, aprenderá todo sobre Swift del lado del servidor. Primero, explicaré cómo funciona Swift en el lado del servidor, y luego te mostraré cómo comenzar con los frameworks Kitura, Vapor y Perfect.

¿Qué es Server Swift?

Swift fue anunciado por primera vez por Apple en 2014 y rápidamente se convirtió en uno de los lenguajes de programación de más rápido crecimiento. Swift se basa en muchos de los mejores idiomas contemporáneos, como Python, lo que permite la elegancia y la facilidad de uso. Libera a los ingenieros de los grilletes técnicos de Objective-C, permitiendo un trabajo más fluido e intuitivo.

En diciembre de 2015, Apple hizo otro anuncio monumental e hizo el lenguaje Swift, junto con sus bibliotecas, depurador y administrador de paquetes, un proyecto de código abierto bajo la licencia Apache 2.0, abriendo la plataforma al público para crear solicitudes de extracción y contribuir. El cambio de Objective-C no solo ha atraído a los muchos desarrolladores de Objective-C que contribuyen a la App Store, sino que también ha facilitado a los desarrolladores de todas las habilidades y antecedentes ingresar al ecosistema de Apple con Swift.

Sin embargo, mientras que las herramientas de desarrollo de Apple históricamente han hecho que sea más fácil para los desarrolladores crear aplicaciones visualmente atractivas y atractivas para la App Store, un importante cuello de botella ha sido que los proyectos aún necesitaban desarrolladores especializados de back-end para crear aplicaciones complejas basadas en datos. Por lo tanto, los desarrolladores de iOS y macOS necesitarían contratar la asistencia de un desarrollador de Python, PHP o Node para crear su base de datos back-end o adquirir la habilidad por sí mismos, lo que resultaría en una carga de trabajo significativamente mayor para completar los objetivos de su proyecto.

Aunque el back-end-as-a-service (BaaS) ha salido al rescate de los desarrolladores de iOS, con soluciones de back-end sin código como el Firebase de Google y el propio CloudKit de Apple que alivian las complejidades del back-end, muchos Equipos y proyectos demandan más. Aquí es donde entra en juego el servidor Swift, lo que le permite crear un servidor de servicios de fondo de múltiples subprocesos de pleno derecho que es de código abierto e infinitamente configurable.

Swift del lado del servidor le permite elegir cómo alojar su servidor back-end, ya sea con AWS, RackSpace o sus propios servidores físicos. También puede elegir cómo equilibrar la carga de sus servidores (por ejemplo, a través de soluciones de servidores populares como NGINX) y cómo conservar sus datos en una base de datos (ya sean soluciones NoSQL como MongoDB, o bases de datos tradicionales como Postgres, MySQL u Oracle) . No solo eso, sino que nunca está vinculado a una solución de un componente, puede cambiar sin afectar el código base completo de su aplicación.

El punto es que al optar por una solución Swift de servidor de código abierto como Vapor by Qutheory, IBM Kitura o Perfect, usted aprovecha una amplia gama de complementos que le permiten configurar su back-end de la manera que desee. Para ello, utiliza el conjunto de habilidades de tu equipo existente en Swift.

Swift del lado del servidor ciertamente suena convincente, pero ¿qué marco es el adecuado para usted? A continuación, echamos un vistazo a cada uno de ellos, comenzando con Kitura.

Empezando con Kitura

Visión general

Comenzando con Kitura, tiene una plataforma que se lanzó inicialmente en febrero de 2016 y ganó prominencia más tarde ese año en la WWDC de Apple, representando la incursión de IBM en el soporte del servidor web con Swift, que luego se configuró para la transición de las manos de Apple al código abierto.

En términos generales, Kitura se centra en la convención sobre la configuración: construye su proyecto inicial con stubs, antes de optar por los marcos y bibliotecas específicos que desea construir. El mecanismo de autenticación de Kitura está respaldado por su propio marco de middleware Kitura-Credentials, que le permite elegir entre una mezcla heterogénea de mecanismos de autenticación, desde el nombre de usuario / contraseña tradicional hasta el inicio de sesión en redes sociales y la autenticación federada, utilizando OpenID que maneja los tokens web de JSON (JWT ).

La solución de ORM para bases de datos de Kitura está impulsada por Kuery para ocultar las complejidades de tratar con SQL directamente, admitiendo bases de datos relacionales comunes como MySQL, SQLite y PostgreSQL de forma nativa, así como otras soluciones de bases de datos, incluidas las bases de datos NoSQL, a través de otros complementos compatibles.

Kitura también proporciona otros complementos útiles para cosas como las plantillas HTML, utilizando complementos populares como Stencil y Markdown. Procedente de IBM, el marco del lado del servidor también se beneficia de la conectividad íntima con las API de IBM Watson, además de proporcionar soporte nativo de macOS para integrarse directamente en su plataforma de nube Bluemix. Esto proporciona una opción adicional a su disposición, junto con sus otras opciones de implementación tradicionales en servidores Linux / Unix y macOS.

Si bien la plataforma ciertamente proporciona un conjunto único de características, desde Kuery hasta la capacidad de integración con las distintas bibliotecas API de IBM, no tiene la influencia de la comunidad que tiene Vapor. Adoptar Kitura requiere apreciar y abrazar sus propias formas no convencionales de hacer las cosas, desde cómo Kuery opera hasta sus mecanismos de autenticación. Sin embargo, dado que está respaldado por una gran empresa con un enfoque en la empresa, hay algunas garantías de pruebas de futuro incorporadas.

Kitura documentation page

Instalación y ejecución de Kitura

La forma más rápida de comenzar es usando la interfaz de línea de comandos (CLI) de Kitura, compatible con macOS y Linux. Usando la popular utilidad de administración de paquetes Homebrew, instale Kitura y Kitura CLI ingresando lo siguiente:

Dentro de una carpeta vacía que usará como su proyecto, ejecute lo siguiente para inicializar su proyecto:

Cuando termine de generar su aplicación de esqueleto, notará un nuevo proyecto llamado HelloKitura.xcodeproject. Puede obtener más información sobre la generación de proyectos consultando la documentación oficial de Kitura. Puede abrir el proyecto recién generado en Xcode y editar la clase de aplicación principal, Application.swift, para manejar todas las llamadas a la raíz de su servidor http: // localhost: 8080 / URL:

El fragmento de código de arriba responde devolviendo el clásico ¡Hola, Mundo! Antes de que finalmente pueda ejecutar el proyecto, cambie su esquema de Xcode para que apunte a HelloKitura (su proyecto activo), y comience su proyecto presionando Comando-R. Mientras se ejecuta su servidor, en un navegador de su elección, vaya a http: // localhost: 8080 y debería ver el texto hola mundo en su navegador.

Más información

Echa un vistazo a los siguientes enlaces para obtener más información acerca de Kitura.

Primeros pasos con Vapor

Visión general

Lanzado unos meses después de Kitura, en septiembre de 2016, Vapor by Qutheory es ampliamente considerado como el más popular en términos de tamaño de comunidad y número de complementos. Está construido sobre el marco Swift-nio de Apple, lo que lo convierte en una verdadera potencia de rendimiento. A diferencia de Kitura y otras plataformas, que no se construyen únicamente en Swift sino en Node.js u otros analizadores intermedios, Vapor se separa de cualquiera de esas dependencias para entregar un analizador de Swift y proporcionar API claras y legibles.

Vapor documentation page

Vapor proporciona soporte completo de bases de datos para proveedores de SQL como MySQL y PostgreSQL, así como proveedores de NoSQL como Redis y MongoDB, como Kitura. Mientras que Kitura tiene su propia solución Kuery ORM, Vapor aprovecha Fluent ORM para respaldar las bases de datos que acabo de mencionar, lo que hace que sea relativamente fácil extender el ORM a otros proveedores de bases de datos. Vapor se separa de los otros marcos al admitir de forma nativa el Servicio de notificaciones push de Apple, así como a SMTP para enviar notificaciones por correo electrónico.

Mientras que Kitura implementa su propio marco de autenticación, Vapor tiene la biblioteca de autenticación Turnstile de Stormpath integrada de forma nativa. Al igual que Kitura, la plataforma también admite las plantillas Moustache y Markdown, así como su propio lenguaje de plantillas expresivo nativo de Swift, Leaf. Vapor también viene con su propio motor CLI como los otros marcos Swift del lado del servidor, con la capacidad de extender los argumentos de la línea de comandos de la aplicación con indicadores personalizados.

Instalación y ejecución

Para comenzar con Vapor, comience instalando la caja de herramientas de Vapor, que consta de todas las dependencias de la biblioteca y el kit de herramientas de CLI. Instálelo con Homebrew ingresando lo siguiente en la terminal:

Una vez completada la instalación, puede confirmar que Vapor se ha instalado correctamente escribiendo vapor -help. Para crear un proyecto, escriba lo siguiente, sustituyendo con su propio nombre de proyecto:

El motor de Vapor construirá una estructura de carpetas similar a la siguiente:

Para crear realmente un proyecto de Xcode, también deberá ingresar explícitamente el siguiente comando, desde la carpeta del proyecto:

Finalmente, para construir y ejecutar su proyecto, desde Xcode seleccione el esquema Ejecutar, así como el dispositivo objetivo de implementación de Mi Mac, y luego presione el botón Ejecutar como lo haría para cualquier otro proyecto de Xcode. Siempre que su proyecto Xcode no encuentre ningún error, debería ver el siguiente mensaje de confirmación en el terminal:

Continúe e ingrese la URL en el navegador que elija, y debería ver su aplicación ejecutándose.

Más información

Echa un vistazo a los siguientes enlaces para obtener más información.

Empezando con perfecto

Visión general

Finalmente, echamos un vistazo a Perfect by PerfectlySoft, una plataforma del lado del servidor con muchas características como Vapor y Kitura. Perfect incluye las mismas funciones estándar que encontraría en los proveedores anteriores, desde plantillas con bigote o Markdown hasta redes con sockets web, así como notificaciones push de Apple y SMTP.

Perfect documentation page

Al igual que las otras plataformas del lado del servidor, Perfect tiene su propia implementación de ORM, la plataforma StORM (Perfect StORM), que proporciona soporte nativo para MySQL, PostgreSQL y otras bases de datos relacionales prominentes, así como MongoDB, Redis y otras soluciones NoSQL. otras soluciones NoSQL. Una omisión notable de Perfect es un CLI, pero el marco lo compensa con una aplicación nativa de macOS.

Al igual que Vapor, Perfect también tiene Turnstile incorporado para alimentar su mecanismo de autenticación, ampliado para interactuar con StORM más íntimamente. Otra distinción que esta solución tiene sobre las otras es en muchas de las bibliotecas de utilidades nativas que admite, incluido su propio contenedor CURL, así como herramientas para trabajar con archivos y carpetas. La base de desarrolladores de Perfect es la segunda más grande, casi a la par con la de Vapor, lo que significa que tiene una comunidad sólida para respaldar esta plataforma, junto con un amplio conjunto de recursos educativos para darle confianza si lo elige.

Instalación y ejecución

Levantarse y correr con Perfect es realmente sencillo. Primero, clona el repositorio de PerfectlySoft, ingresando lo siguiente:

Desde dentro de la carpeta clonada, genere el proyecto:

Finalmente, ejecute el proyecto, que ejecutará un servidor local en la dirección 0.0.0.0:8181:

También puede ejecutar su proyecto en Xcode generando primero un nuevo proyecto, de la siguiente manera:

Dentro de Xcode, asegúrese de que su objetivo ejecutable esté apuntado a Mi Mac, antes de construir y ejecutar el proyecto.

Más información

Echa un vistazo a los siguientes enlaces para obtener más información sobre el marco perfecto.

Conclusión

El lanzamiento de Swift a la comunidad de código abierto ha instigado un empuje para las soluciones Swift más allá de las aplicaciones de los clientes, con marcos de servidores de back-end que se convierten en la próxima frontera. Impulsado por tres proyectos prominentes: Vapor by Qutheory, IBM Kitura y Perfect, el lado del servidor Swift ha permitido a los ingenieros de iOS (y macOS) convertirse en desarrolladores de pila completa. Esto puede anular la dependencia de Node.js, PHP o ingenieros de back-end de .NET. El lado del servidor Swift también brinda a los equipos la capacidad de controlar su back-end sin tener que depender de soluciones móviles de back-end-as-a-service como Firebase o CloudKit.

El lado del servidor Swift no es para todos: tiene que decidir cuánto control necesita para su back-end, y si tiene sentido para usted rodar el suyo propio. Además, no intenté decirle cuál es la mejor solución Swift del lado del servidor. Los desarrolladores ciertamente tienen opciones para elegir, y los tres proporcionan una toma única y madura con la que vale la pena experimentar. Lo alentaría a que juegue con cada uno de los códigos de muestra, evalúe la sintaxis y se comprometa con sus respectivas comunidades para ver cuál es la mejor solución para usted.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.