Progetti open source popolari per lo sviluppo rapido

Il 3 dicembre 2015, Apple ha ufficialmente aperto il linguaggio di programmazione Swift. Aprendo l'intero linguaggio di programmazione, Apple ha ora consentito agli sviluppatori di tutto il mondo di contribuire alla lingua e assistere nel suo sviluppo ed evoluzione. Oltre a questo, il linguaggio di programmazione Swift può ora essere utilizzato in ambienti esterni alle piattaforme Apple, come Linux.

In questo articolo, vi racconterò alcuni dei progetti più popolari e interessanti che utilizzano Swift e, nel tempo, evolveranno a fianco del linguaggio stesso.

1. Fondazione

Se hai già fatto qualche programmazione iOS, specialmente usando Objective-C, probabilmente hai familiarità con classi come NSDate, NSArray, NSString, e NSURL. Queste classi fanno tutti parte del Fondazione framework, disponibile su ogni piattaforma Apple (iOS, OS X, tvOS e watchOS).

La funzionalità di base fornita dalle API Foundation, tuttavia, viene reimplementata come libreria Swift Core di Apple per poter essere trasferita su più piattaforme. Questo progetto può essere trovato presso il repository di swift-corelibs-foundation di Apple su GitHub.

Numerosi altri sviluppatori stanno lavorando attivamente per portare le API Foundation a Swift in modo portatile e multipiattaforma. Il più popolare di questi progetti è SwiftFoundation che, al momento della stesura di questo articolo, ha molti fattori chiave di differenziazione dall'implementazione di Apple.

Più funzionalità

Fornisce più funzionalità. Come le note del README del progetto, sono contrassegnati da molti metodi nel progetto della Fondazione Apple NSUnimplemented (), significa che solo la funzionalità di base è attualmente disponibile.

portabilità

Fin dall'inizio, è stato progettato pensando alla portabilità. A differenza della libreria di base di Apple Foundation, SwiftFoundation non si basa sulle API CoreFoundation scritte in C. Ciò consente a SwiftFoundation di supportare più facilmente una più ampia gamma di piattaforme in futuro.

Protocol-Oriented

SwiftFoundation è stato interamente progettato e sviluppato utilizzando una struttura orientata al protocollo piuttosto che uno stile di programmazione orientato agli oggetti più tradizionale. Ciò offre una serie di vantaggi, che puoi imparare di più in questo tutorial.

Ancora più importante, modernizza completamente le API Foundation di oltre 20 anni. Apple potrebbe eventualmente fare qualcosa di simile con la sua libreria di base della Foundation, ma il README del loro repository afferma quanto segue.

Nel nostro primo anno, non stiamo cercando di apportare modifiche API importanti alla libreria. Riteniamo che ciò ostacolerà l'obiettivo primario [della portabilità al di fuori delle piattaforme Apple].

Entrambi questi progetti vengono attivamente aggiornati e diventeranno sicuramente cruciali nel futuro dello sviluppo di Swift in quanto consentono funzioni di base, come networking, acquisizione / manipolazione di date / orari e archiviazione locale permanente su qualsiasi piattaforma supportata dal linguaggio Swift.

2. Altre librerie di base

Oltre a Foundation, Apple sta anche riprogettando da zero altre due importanti librerie da utilizzare con Swift su altre piattaforme: XCTest e libdispatch (noto anche come Grand Central Dispatch). Sebbene questi progetti non siano altrettanto popolari o abbiano le stesse dimensioni di Foundation, sono comunque molto importanti per lo sviluppo di Swift.

Il progetto XCTest è progettato per consentire agli sviluppatori di creare test unitari per il loro codice Swift. Se non hai familiarità con i test unitari, dai un'occhiata a questo articolo per saperne di più. Fin dalle prime fasi con il supporto di soli test di base, il progetto XCTest diventerà nel tempo molto importante per tutti gli sviluppatori Swift durante il test e il debug del codice.

Il progetto libdispatch consente flussi di lavoro concomitanti (multithread) quando è in esecuzione su hardware supportato. Questo è particolarmente importante per le azioni, come le richieste di rete, in modo che il thread principale non venga bloccato da altre operazioni.

Mentre entrambi questi repository sono di proprietà e gestiti da Apple, come Swift, sono stati aperti per incoraggiare gli input degli sviluppatori. Vi incoraggio a dare un'occhiata a loro, anche se è solo per interesse a guardare l'implementazione delle API. Ci sono molte cose che puoi imparare sfogliando il codice sorgente.

3. Server Web e siti Web

Una delle più entusiasmanti possibilità di open source di Swift è la possibilità di utilizzarlo come linguaggio di programmazione primario per i server backend e i siti web. Mentre HTML e CSS restano gli standard per il web in termini di presentazione dei contenuti all'utente, una volta che Swift e le sue librerie sono sufficientemente mature e funzionali, Swift potrebbe essere utilizzato in quasi tutte le situazioni in cui attualmente altri linguaggi, come PHP e JavaScript, sono utilizzati.

Questo è particolarmente interessante per gli sviluppatori di Cocoa perché le competenze e le conoscenze che hanno già acquisito utilizzando Swift per lo sviluppo del frontend saranno di grande aiuto se vogliono fare lo sviluppo del backend.

Ci sono molti progetti che stanno lavorando per portare Swift sul web, tra cui Vapor, Zewo e Carmel. Il più avanzato e ricco di funzionalità di questi progetti, tuttavia, è perfetto.

Perfezionare comprende molti componenti Swift diversi, ognuno dei quali ha il suo unico scopo.

  • PerfectLib contiene le API e le utility di rete necessarie sia al client che al server, tra cui la gestione semplificata delle richieste HTTP, l'analisi JSON e altre attività di gestione dei dati.
  • Perfect Server viene eseguito sul lato server e gestisce l'accettazione delle connessioni, l'elaborazione delle richieste e la restituzione delle risposte. Un server che utilizza Perfect Server può utilizzare FastCGI o HTTP autonomo.
  • vario connettori che consente a un server di estendere le sue funzionalità e lavorare con altre API, tra cui mod_perfect per la connettività FastCGI con Apache 2.4 e MySQL, PostgreSQL e MongoDB per lavorare con questi tipi di database.

Se combinati, questi componenti consentono un server Web perfettamente funzionante, che funzionerebbe esattamente come un server tradizionale basato su PHP o JavaScript. Le possibilità dei server Web che eseguono Swift sono molto interessanti e progetti come Perfect stanno aprendo la strada al giorno in cui Swift può essere utilizzato praticamente per ogni componente di un progetto.

4. Swift Package Manager

Se dai un'occhiata ai repository menzionati in precedenza in questo articolo, noterai che alcuni di essi, nella loro directory root, hanno un file chiamato Package.swift. I progetti che contengono questo file lo fanno per poter essere utilizzati con Swift Package Manager.

Swift Package Manager è un sistema di gestione delle dipendenze simile a CocoaPods e Carthage, che consente agli sviluppatori di collegarsi a librerie di terze parti e utilizzarle nei propri progetti.

Questo gestore di pacchetti è stato sviluppato in modo tale che qualsiasi piattaforma che utilizza Swift possa collegare e importare codice nello stesso identico modo, piuttosto che basarsi su una soluzione specifica per piattaforma. Lo Swift Package Manager è ancora nelle sue prime fasi di sviluppo con molte specifiche soggette a modifiche. Ma ha lo scopo di essere finalizzato e rilasciato insieme a Swift 3.

Se vuoi dare un'occhiata più da vicino a questo progetto e imparare come utilizzarlo nel tuo codice, ti consiglio di visitare la pagina del progetto su Swift.org o il repository su GitHub.

5. Utilità varie

Oltre ai già citati progetti Swift open source, ce ne sono molti altri molto interessanti e unici.

XCGlogger

Questo progetto è finalizzato alla registrazione. Consente agli sviluppatori di stampare molti più dettagli sulla console di sistema senza dover scrivere un sacco di codice aggiuntivo. Questa utility di registrazione consente di registrare automaticamente una serie di attributi, tra cui nome del thread, nome del file del codice sorgente, numero di riga e metodo corrente dell'ambito.

Swiftline

L'obiettivo di questo progetto è creare applicazioni a riga di comando con Swift. Queste applicazioni supportano l'interazione dell'utente sotto forma sia di normali input da tastiera sia di scelta multipla.

Swiftline sarebbe particolarmente utile in un ambiente educativo in quanto gli studenti potrebbero utilizzarlo per sviluppare un'applicazione completamente funzionale e interattiva senza doversi preoccupare di alcun tipo di interfaccia utente.

Swift Algorithm Club

Questo repository contiene una vasta gamma di algoritmi utili tutti da utilizzare nel codice Swift. Ciò include cose come matrici di dimensioni fisse, tabelle hash e mischiare. Il repository contiene un elenco completo di tutti gli algoritmi attualmente supportati.

AI veloce

Swift AI è un progetto di intelligenza artificiale incentrato sull'apprendimento automatico. Il progetto di esempio incluso nel repository mostra come il sistema AI può imparare a replicare una funzione seno di base.

Nota che questo progetto è attualmente supportato solo su iOS e OS X a causa della sua dipendenza dal framework Accelerate di Apple, che consente di migliorare le prestazioni quando si eseguono calcoli di grandi dimensioni.

Conclusione

Ci sono così tanti nuovi ed entusiasmanti progetti open source Swift là fuori, che col tempo svilupperanno e influenzeranno le carriere di molti sviluppatori. Come puoi vedere, aprendo la fonte Swift, Apple non solo ha permesso al linguaggio di migliorare con i contributi della community, ma anche di diventare utile quando lo sviluppo per piattaforme diverse da Apple.

Vi incoraggio a dare un'occhiata ad alcuni dei progetti menzionati in questo articolo e osservate cosa stanno cercando di ottenere. Se vuoi vedere altri progetti, ti consiglio di consultare GitHub per i repository Swift più popolari e attualmente di tendenza.

Come sempre, lascia i tuoi commenti e feedback nei commenti qui sotto.