El 3 de diciembre de 2015, Apple inauguró oficialmente el lenguaje de programación Swift. Al abrir de forma abierta todo el lenguaje de programación, Apple ahora ha permitido a desarrolladores de todo el mundo contribuir al lenguaje y ayudarlo 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, les contaré algunos de los proyectos más populares e interesantes que utilizan Swift y, con el tiempo, evolucionarán junto con el lenguaje en sí..
Si ha realizado alguna programación de iOS anteriormente, especialmente utilizando Objective-C, probablemente esté familiarizado con clases como NSDate
, NSArray
, NSString
, y NSURL
. Estas clases son todas parte de la Fundación Framework, que está disponible en todas las plataformas de Apple (iOS, OS X, tvOS y watchOS).
Sin embargo, la funcionalidad básica que proporcionan las API de Foundation también se está reimplementando como una Swift Core Library de Apple para poder ser portátil en todas las plataformas. Este proyecto se puede encontrar en el repositorio swift-corelibs-foundation de Apple en GitHub.
Muchos otros desarrolladores están trabajando activamente para llevar las API de Foundation a Swift de una manera multiplataforma portátil. El más popular de estos proyectos es SwiftFoundation que, al momento de escribir este artículo, tiene muchos diferenciadores clave de la implementación de Apple..
Proporciona más funcionalidad. Como las notas README del proyecto, muchos métodos en el proyecto de la Fundación Apple están marcados con NSUnimplemented ()
, lo que significa que solo la funcionalidad básica está actualmente disponible.
Desde el principio, ha sido diseñado teniendo en cuenta la portabilidad. A diferencia de la biblioteca principal de la Fundación de Apple, SwiftFoundation no se basa en las API CoreFoundation escritas en C. Esto permite que SwiftFoundation admita más fácilmente una amplia gama de plataformas en el futuro.
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. Si lo hace, ofrece una gama de beneficios, sobre los que puede aprender más en este tutorial..
Más importante aún, moderniza completamente las API de Foundation de más de 20 años. Apple podría eventualmente hacer algo como esto con su biblioteca central de Foundation, pero el README de su repositorio establece lo siguiente.
En nuestro primer año, no buscamos realizar cambios importantes en la API de la biblioteca. Creemos que esto dificultará el objetivo principal [de la portabilidad fuera de las plataformas de Apple].
Ambos proyectos se están actualizando de forma activa y sin duda serán cruciales en el futuro del desarrollo de Swift, ya que permiten funciones básicas, como redes, obtención / manipulación de fechas / horarios y almacenamiento local persistente en cualquier plataforma compatible con el lenguaje Swift..
Además de Foundation, Apple también está desarrollando de nuevo desde cero otras dos bibliotecas principales que se utilizarán con Swift en otras plataformas: XCTest y libdispatch (también conocido 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 Swift..
El proyecto XCTest está diseñado para permitir a los desarrolladores crear pruebas unitarias para su código Swift. Si no está familiarizado con las pruebas unitarias, consulte este artículo para obtener más información sobre ellas. Mientras que en sus etapas iniciales solo se admiten pruebas básicas, el proyecto XCTest, con el tiempo, se volverá muy importante para todos los desarrolladores de Swift cuando prueben y depuren su código..
El proyecto libdispatch permite flujos de trabajo concurrentes (multiproceso) cuando se ejecuta en hardware compatible. Esto es particularmente importante para acciones, como solicitudes de red, para que el subproceso principal no quede bloqueado por otras operaciones.
Si bien Apple posee y mantiene estos dos repositorios, al igual que Swift, han sido de código abierto para alentar las opiniones de los desarrolladores. Lo aliento a que los mire, aunque solo sea por interés observar la implementación de las API. Hay mucho que puedes aprender al navegar por el código fuente..
Una de las posibilidades más emocionantes de Swift de fuente abierta es la capacidad de usarlo como el lenguaje de programación principal para 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 avanzadas y funcionales, Swift podría utilizarse en casi cualquier situación en la que actualmente otros idiomas, como PHP y JavaScript, son usados.
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 de aplicaciones frontales les ayudarán enormemente si desean desarrollarlos..
Hay muchos proyectos que están trabajando para llevar Swift a la web, incluidos Vapor, Zewo y Caramel. El más avanzado y lleno de características de estos proyectos, sin embargo, es Perfecto..
Perfecto abarca muchos componentes Swift diferentes, cada uno de los cuales tiene su propio propósito único.
Cuando se combinan, estos componentes permiten un servidor web completamente funcional, que funcionaría exactamente igual que un servidor tradicional con PHP o JavaScript. Las posibilidades de los servidores web que ejecutan Swift son muy interesantes y los proyectos, como Perfect, están allanando el camino para el día en que Swift se puede utilizar para prácticamente todos los componentes de un proyecto..
Si observa los repositorios mencionados anteriormente en este artículo, notará que algunos de ellos, en su directorio raíz, tienen un archivo llamado Paquete. Cambio. Los proyectos que contienen este archivo lo hacen para usarse con Swift Package Manager.
Swift Package Manager es un sistema de administración de dependencias similar a CocoaPods y Carthage, que permite a los desarrolladores enlazar a bibliotecas de terceros y usarlas en sus propios proyectos..
Este gestor de paquetes se está desarrollando para que cualquier plataforma que use Swift pueda vincularse e importar código de la misma manera, en lugar de confiar en una solución específica de la plataforma. Swift Package Manager aún se encuentra 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 desea echar un vistazo más de cerca a este proyecto y aprender a utilizarlo en su propio código, le recomiendo visitar la página del proyecto en Swift.org o el repositorio en GitHub.
Además de los proyectos Swift de código abierto mencionados anteriormente, también hay muchos otros que son muy interesantes y únicos..
Este proyecto está dirigido al registro. 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 le permite registrar automáticamente una variedad de atributos, incluidos el nombre del hilo, el nombre del archivo del código fuente, el número de línea y el método de alcance actual.
El objetivo de este proyecto es crear aplicaciones de línea de comandos con Swift. Estas aplicaciones admiten la interacción del usuario tanto en la entrada de teclado regular como en la 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.
Este repositorio contiene una amplia gama de algoritmos útiles para su uso en el código Swift. Esto incluye cosas, como matrices de tamaño fijo, tablas hash y barajadas. El repositorio contiene una lista completa de todos los algoritmos soportados actualmente.
Swift AI es un proyecto de inteligencia artificial que se centra en el aprendizaje automático. El proyecto de ejemplo incluido en el repositorio muestra cómo el sistema de AI puede aprender a replicar una función sinusoidal básica.
Tenga en cuenta que este proyecto actualmente solo es compatible con iOS y OS X debido a su dependencia del marco Accelerate de Apple, que permite un mejor rendimiento al ejecutar cálculos grandes.
Hay muchos proyectos Swift de código abierto nuevos y emocionantes que, con el tiempo, desarrollarán e influirán en las carreras de muchos desarrolladores. Como se puede ver, al abrir Swift, Apple no solo ha permitido que el lenguaje mejore a través de las contribuciones de la comunidad, sino que también se vuelve útil cuando se desarrolla para plataformas distintas a las de Apple..
Lo aliento a que revise algunos de los proyectos mencionados en este artículo y observe lo que están tratando de lograr. Si desea ver más proyectos, le recomiendo que busque en GitHub los repositorios Swift más populares y actuales..
Como siempre, deje sus comentarios y sugerencias en los comentarios a continuación..