7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Swift

Proyectos populares de código abierto para desarrollos Swift

Read Time: 8 mins

Spanish (Español) translation by Andrea Jiménez (you can also view the original English article)

El 3 de diciembre de 2015, Apple fue oficialmente de código abierto en el lenguaje de programación Swift. Mediante el código abierto de todo el lenguaje de programación, Apple ahora permite que los desarrolladores de todo el mundo contribuyan al lenguaje y ayuden en su desarrollo y evolución. Además de esto, el lenguaje de programación Swift ahora se puede utilizar en entornos fuera de las plataformas de Apple, como Linux.

En este artículo, te hablaré sobre algunos de los proyectos más populares e interesantes que utilizan Swift y que, con el tiempo, evolucionarán junto con el propio lenguaje.

1. Foundation

Si realizaste alguna programación de iOS antes, especialmente con Objective-C, probablemente estés familiarizado con clases como NSDate, NSArray, NSString y NSURL. Todas estas clases forman parte del framework Foundation, que está disponible en todas las plataformas de Apple (iOS, OS X, tvOS y watchOS).

Sin embargo, Apple también está reimplementando la funcionalidad básica que proporcionan las APIs de Foundation como una Biblioteca Swift Core para que sea portátil entre las plataformas. Este proyecto se puede encontrar en el repositorio swift-corelibs-foundation de Apple en GitHub.

Muchos otros desarrolladores están trabajando fuertemente para llevar las APIs de Foundation a Swift de una manera portátil y multiplataforma. El más popular de estos proyectos es SwiftFoundation que, en el momento de escribir este artículo, tiene muchos diferenciadores clave de la implementación de Apple.

Más funcionalidad

Proporciona más funcionalidad. Como señala el README del proyecto, muchos métodos en el proyecto Foundation de Apple están marcados con NSUnimplemented(), lo que significa que actualmente solo está disponible la funcionalidad básica.

Portabilidad

Desde el principio, se diseñó teniendo en cuenta la portabilidad. A diferencia de la biblioteca principal de Apple Foundation, SwiftFoundation no se basa en las APIs CoreFoundation desarrolladas en C. Esto permite que en el futuro SwiftFoundation admita más fácilmente una gama más amplia de plataformas.

Orientado a protocolos

SwiftFoundation ha sido completamente diseñado y desarrollado utilizando una estructura orientada a protocolos en lugar del estilo de programación orientado a objetos más tradicional. Hacerlo orientado a protocolos ofrece una serie de beneficios, sobre los que puede obtener más información en este tutorial.

Más importante aún, moderniza completamente las APIs de Foundation de más de 20 años. Apple podría hacer algo como esto con su biblioteca principal de Foundation, pero el archivo README de su repositorio indica lo siguiente.

En nuestro primer año, no estamos buscando realizar cambios importantes en la API de la biblioteca. Creemos que esto obstaculizará el objetivo principal [de la portabilidad fuera de las plataformas Apple].

Ambos proyectos se están actualizando activamente y definitivamente se volverán cruciales en el futuro del desarrollo de Swift, ya que permiten funciones básicas, como redes, obtención/manipulación de fechas/horas, y almacenamiento local persistente en cualquier plataforma soportada por el lenguaje Swift.

2. Otras bibliotecas básicas

Además de Foundation, Apple también está volviendo a desarrollar desde cero otras dos bibliotecas importantes para usar con Swift en otras plataformas: XCTest y libdispatch (también conocida como Grand Central Dispatch). Si bien estos proyectos no son tan populares o tienen la misma escala que Foundation, siguen siendo muy importantes cuando se trata del desarrollo de Swift.

El proyecto XCTest está diseñado para permitirle a los desarrolladores crear pruebas unitarias para su código Swift. Si no estás familiarizado con las pruebas unitarias, revisa este artículo para obtener más información sobre ellas. Si bien se encuentra en sus primeras etapas y solo se admiten pruebas básicas, el proyecto XCTest, con el tiempo, se volverá muy importante para todos los desarrolladores de Swift al probar y depurar su código.

El proyecto libdispatch permite flujos de trabajo simultáneos (multiproceso) cuando se ejecuta en hardware compatible. Esto es especialmente importante para las acciones, como las solicitudes de red, para que el subproceso principal no se bloquee con otras operaciones.

Si bien ambos repositorios pertenecen y son mantenidos por Apple, como Swift, han sido de código abierto para fomentar la participación de los desarrolladores. Te animo a que les eches un vistazo, incluso si solo te interesa ver la implementación de las APIs. Hay mucho que puedes aprender al explorar el código fuente.

3. Servidores web y sitios web

Una de las posibilidades más emocionantes de abastecimiento abierto Swift es la capacidad de usarlo como el lenguaje de programación principal para backends de servidores y sitios web. Si bien HTML y CSS seguirán siendo los estándares para la web en términos de presentar contenido al usuario, una vez que Swift y sus bibliotecas sean lo suficientemente maduras y funcionales, Swift podría ser utilizado en casi cualquier situación donde actualmente se utilizan otros lenguajes, como PHP y JavaScript.

Esto es particularmente emocionante para los desarrolladores de Cocoa porque las habilidades y el conocimiento que ya han adquirido al usar Swift para el desarrollo del frontend les ayudarán enormemente si quieren hacer desarrollo del backend.

Hay muchos proyectos que están trabajando para llevar Swift a la web, incluyendo Vapor, Zewo y Caramel. Sin embargo, el más avanzado y lleno de funciones de estos proyectos es Perfect.

Perfect abarca muchos componentes Swift diferentes, cada uno con su propio propósito único.

  • PerfectLib contiene las APIs de red y las utilidades que necesitan tanto el cliente como el servidor, incluido el control simplificado de solicitudes HTTP, el análisis JSON y otra gestión de datos.
  • Perfect Server se ejecuta en el lado del servidor y controla la aceptación de conexiones, el procesamiento de solicitudes y la devolución de respuestas. Un servidor que utiliza Perfect Server puede utilizar FastCGI o HTTP independiente.
  • Varios conectores que permiten a un servidor ampliar su funcionalidad y trabajar con otras APIs, incluyendo mod_perfect para conectividad FastCGI con Apache 2.4 y MySQL, PostgreSQL y MongoDB para trabajar con este tipo de bases de datos.

Cuando se combinan, estos componentes permiten un servidor web completamente funcional, que funcionaría exactamente igual que un servidor tradicional impulsado por PHP o JavaScript. Las posibilidades de los servidores web que ejecutan Swift son muy emocionantes; y los proyectos, como Perfect, están allanando el camino para el día en que Swift se pueda utilizar para prácticamente todos los componentes de un proyecto.

4. Swift Package Manager

Si echas un vistazo a los repositorios mencionados anteriormente en este artículo, notarás que algunos de ellos, en su directorio raíz, tienen un archivo llamado Package.swift. Los proyectos que contienen este archivo lo hacen para ser utilizados con Swift Package Manager.

Swift Package Manager es un sistema de gestión de dependencias similar a CocoaPods y Carthage, que le permite a los desarrolladores vincularse a bibliotecas de terceros y usarlas en sus propios proyectos.

Este administrador de paquetes se está desarrollando para que cualquier plataforma que utilice Swift pueda vincular e importar el código exactamente de la misma manera, en lugar de depender de una solución específica de la plataforma. El Swift Package Manager todavía está en sus primeras etapas de desarrollo con muchas especificaciones sujetas a cambios. Pero está destinado a ser finalizado y lanzado junto con Swift 3.

Si quieres ver más de cerca este proyecto y aprender a utilizarlo en tu propio código, te recomiendo visitar la página del proyecto en Swift.org o el repositorio en GitHub.

5. Utilidades diversas

Además de los proyectos Swift de código abierto antes mencionados, también hay muchos otros que son muy interesantes y únicos.

XCGlogger

Este proyecto está dirigido al registro. Le permite a los desarrolladores imprimir muchos más detalles en la consola del sistema sin tener que escribir un montón de código adicional. Esta utilidad de registro te permite registrar automáticamente una variedad de atributos, incluido el nombre del subproceso, el nombre del archivo del código fuente, el número de línea y el método de alcance actual.

Swiftline

El objetivo de este proyecto es crear aplicaciones de línea de comandos con Swift. Estas aplicaciones admiten la interacción del usuario en forma de entrada de teclado regular, así como de opción múltiple.

Swiftline sería particularmente útil en un entorno educativo, ya que los estudiantes podrían usarlo para desarrollar una aplicación totalmente funcional e interactiva sin tener que preocuparse por ningún tipo de interfaz de usuario.

Club de algoritmos Swift

Este repositorio contiene una amplia gama de algoritmos útiles para usarlos en el código Swift. Esto incluye cosas como matrices de tamaño fijo, tablas hash y shuffling. El repositorio contiene una lista completa de todos los algoritmos admitidos actualmente.

Swift AI

Swift AI es un proyecto de inteligencia artificial centrado en el aprendizaje automático. El proyecto de ejemplo incluido en el repositorio te muestra cómo el sistema de IA puede aprender a replicar una función principal del seno.

Ten en cuenta que este proyecto actualmente solo es compatible con iOS y OS X debido a su dependencia del framework Accelerate de Apple, el cual permite un rendimiento mejorado al ejecutar cálculos grandes.

Conclusión

Hay tantos proyectos Swift de código abierto nuevos y emocionantes que, con el tiempo, se desarrollarán e influirán en las carreras de muchos desarrolladores. Como puedes ver, al utilizar el código abierto de Swift, Apple no solo ha permitido que el lenguaje mejore a través de las contribuciones de la comunidad, sino que también sea útil al desarrollar para plataformas distintas a las de Apple.

Te animo a que revises algunos de los proyectos mencionados en este artículo y observes lo que están tratando de lograr. Si quieres ver aún más proyectos, te recomiendo que busques en GitHub los repositorios Swift más populares y de tendencia actual.

Como siempre, deja tus comentarios y opiniones en la parte de abajo.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Scroll to top
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.