Proiecte populare cu open source pentru dezvoltare rapidă

La 3 decembrie 2015, Apple a deschis oficial limba de programare Swift. Prin deschiderea întregului limbaj de programare, Apple a permis dezvoltatorilor din întreaga lume să contribuie la dezvoltarea limbajului și să contribuie la dezvoltarea și evoluția acestuia. În plus, limbajul de programare Swift poate fi acum utilizat în medii în afara platformelor Apple, cum ar fi Linux.

În acest articol, vă voi spune despre unele dintre cele mai populare și interesante proiecte care utilizează Swift și vor evolua, în timp, alături de limba în sine.

1. Fundația

Dacă ați făcut anterior orice programare iOS, mai ales folosind Obiectiv-C, probabil că sunteți familiarizat cu clase precum NSDate, NSArray, NSString, și NSURL. Aceste clase fac parte din fundație cadru, care este disponibil pe fiecare platformă Apple (iOS, OS X, tvOS și watchOS).

Funcționalitatea de bază pe care o furnizează API-ul Fundației este totuși reaplicată ca o bibliotecă Swift Core de către Apple pentru a fi portabilă pe platforme. Acest proiect se găsește la depozitul de fundație rapidă al Apple de la GitHub.

Numeroși alți dezvoltatori se străduiesc activ să aducă API-urile Fundației la Swift într-un mod portabil cross-platform. Cel mai popular dintre aceste proiecte este SwiftFoundation care, la momentul redactării acestui articol, are multe diferențieri-cheie față de implementarea Apple.

Mai mult funcționalitate

Oferă mai multă funcționalitate. După cum notează proiectul README, multe metode din proiectul Apple Foundation sunt marcate cu NSUnimplemented (), ceea ce înseamnă că în prezent sunt disponibile numai funcționalități de bază.

portabilitate

De la bun început, a fost conceput în funcție de portabilitate. Spre deosebire de bibliotecile de bază ale Fundației Apple, SwiftFoundation nu se bazează pe API-urile CoreFoundation scrise în C. Aceasta permite SwiftFoundation să sprijine mai ușor o gamă mai largă de platforme în viitor.

Protocol-Oriented

SwiftFoundation a fost proiectat și dezvoltat în întregime folosind o structură orientată pe protocol, mai degrabă decât stilul tradițional de programare orientat spre obiect. Oferă astfel o serie de beneficii, despre care puteți afla mai multe despre acest tutorial.

Mai important, modernizează complet API-urile de peste 20 de ani ale Fundației. Apple ar putea să facă ceva în felul ăsta cu biblioteca de bază a fundației, dar README a depozitului lor afirmă următoarele.

În primul nostru an, nu vrem să facem modificări majore ale API în bibliotecă. Considerăm că acest lucru va împiedica obiectivul principal [de portabilitate în afara platformelor Apple].

Ambele proiecte sunt actualizate în mod activ și vor deveni cu siguranță cruciale în viitorul dezvoltării Swift deoarece permit funcții de bază cum ar fi crearea de rețele, obținerea / manipularea datelor / timpilor și stocarea locală persistentă pe orice platformă susținută de limba Swift.

2. Alte biblioteci de bază

În plus față de Fundație, Apple a redezvoltat de la bază două alte biblioteci majore care vor fi utilizate cu Swift pe alte platforme: XCTest și libdispatch (cunoscut și sub numele de Grand Central Dispatch). Deși aceste proiecte nu sunt la fel de populare sau au aceleași dimensiuni ca Fundația, ele sunt încă foarte importante atunci când vine vorba de dezvoltarea Swift.

Proiectul XCTest este conceput pentru a permite dezvoltatorilor să creeze teste unitare pentru codul Swift. Dacă nu sunteți familiarizat cu testele de unitate, atunci aruncați o privire la acest articol pentru a afla mai multe despre ele. În timp ce în stadiile foarte timpurii, cu doar teste de bază fiind susținute, proiectul XCTest va deveni, în timp, foarte important pentru toți dezvoltatorii Swift atunci când testează și depanează codul.

Proiectul libdispatch permite funcționarea simultană (multithreaded) a fluxurilor de lucru atunci când rulează pe hardware-ul suportat. Acest lucru este deosebit de important pentru acțiuni, cum ar fi cererile de rețea, astfel încât firul principal să nu fie blocat de alte operațiuni.

În timp ce ambele aceste repo-uri sunt deținute și întreținute de Apple, cum ar fi Swift, ele au fost deschise pentru a încuraja contribuția dezvoltatorilor. Vă încurajez să le aruncați o privire, chiar dacă nu este de interes să priviți implementarea API-urilor. Există multe lucruri pe care le puteți învăța de la navigarea în codul sursă.

3. Servere și site-uri web

Una dintre cele mai captivante posibilitati de deschidere a Swift este abilitatea de ao folosi ca limbaj de programare primar pentru backend-urile si site-urile serverului. În timp ce HTML și CSS vor rămâne standardele pentru web în ceea ce privește prezentarea conținutului pentru utilizator, odată ce Swift și bibliotecile sale sunt mature și suficient de funcționale, Swift ar putea fi utilizat în aproape orice situație în care alte limbi, cum ar fi PHP și JavaScript, sunt folosite.

Acest lucru este deosebit de interesant pentru dezvoltatorii de cacao, deoarece abilitățile și cunoștințele pe care le-au câștigat deja prin utilizarea tehnologiei Swift pentru dezvoltarea frontend-ului le vor ajuta foarte mult dacă vor să facă o dezvoltare backend.

Există multe proiecte care încearcă să aducă Swift pe web, inclusiv Vapor, Zewo și Caramel. Cu toate acestea, cele mai avansate și mai complexe dintre aceste proiecte sunt Perfect.

Perfect cuprinde multe componente Swift diferite, fiecare având propriul scop unic.

  • PerfectLib conține API-urile de rețea și utilitățile necesare atât de client cât și de server, inclusiv manipularea simplificată a cererilor HTTP, parsarea JSON și alte gestionări de date.
  • Perfect Server rulează pe partea de server și se ocupă de acceptarea conexiunilor, procesarea cererilor și returnarea răspunsurilor. Un server care utilizează Perfect Server poate folosi fie FastCGI, fie HTTP stand-alone.
  • Variat conectori care permit unui server să-și extindă funcționalitatea și să funcționeze cu alte API-uri, inclusiv mod_perfect pentru conectivitatea FastCGI cu Apache 2.4 și MySQL, PostgreSQL și MongoDB pentru a lucra cu aceste tipuri de baze de date.

Atunci când sunt combinate, aceste componente permit un server web complet funcțional, care ar funcționa exact la fel ca un server tradițional alimentat de PHP sau JavaScript. Posibilitățile serverelor web care rulează Swift sunt foarte interesante și proiectele, cum ar fi Perfect, deschid calea pentru ziua în care Swift poate fi folosit pentru aproape fiecare componentă a unui proiect.

4. Managerul pachetului rapid

Dacă veți arunca o privire la depozitele menționate mai sus în acest articol, veți observa că unele dintre ele, în directorul lor rădăcină, au un fișier numit Package.swift. Proiectele care conțin acest fișier fac acest lucru pentru a fi utilizate împreună cu Managerul de pachete Swift.

Managerul pachetului Swift este un sistem de gestionare a dependenței care este similar cu CocoaPods și Carthage, permițând dezvoltatorilor să se leagă de bibliotecile terților și să le folosească în propriile proiecte.

Acest manager de pachete este dezvoltat astfel încât orice platformă care utilizează Swift să poată conecta și să importe codul în exact același mod, în loc să se bazeze pe o soluție specifică platformei. Managerul pachetului Swift este încă în stadiile de dezvoltare timpurie, cu multe specificații supuse schimbării. Dar este destinat să fie finalizat și lansat alături de Swift 3.

Dacă doriți să examinați mai îndeaproape acest proiect și să învățați cum să îl utilizați în propriul cod, vă recomandăm să vizitați pagina proiectului pe Swift.org sau pe depozitul GitHub.

5. Alte utilități

În plus față de proiectele Swift menționate anterior, există și multe altele care sunt foarte interesante și unice.

XCGlogger

Acest proiect vizează logarea. Acesta permite dezvoltatorilor să imprime mult mai multe detalii consolei de sistem fără a fi nevoit să scrie o grămadă de cod suplimentar. Acest utilitar de înregistrare vă permite să înregistrați automat o varietate de atribute, inclusiv numele firului, numele fișierului codului sursă, numărul liniei și metoda curentă a domeniului.

Swiftline

Scopul acestui proiect este de a crea aplicații de linie de comandă cu Swift. Aceste aplicații suportă interacțiunea utilizatorilor, atât prin introducerea regulată a tastaturii, cât și prin alegerea mai multor.

Swiftline ar fi deosebit de util într-un mediu educațional, pe măsură ce studenții i-ar putea folosi pentru a dezvolta o aplicație complet funcțională și interactivă fără a fi nevoie să vă faceți griji cu privire la orice fel de interfață cu utilizatorul.

Swift Algorithm Club

Acest depozit conține o gamă largă de algoritmi utili, toate pentru utilizarea în codul Swift. Acestea includ lucruri, cum ar fi tablouri cu dimensiuni fixe, tabele de hash și amestecare. Depozitul conține o listă completă a tuturor algoritmilor actualizați.

Swift AI

Swift AI este un proiect de inteligență artificială care se concentrează pe învățarea în mașină. Proiectul exemplu inclus în repozitoriu arată modul în care sistemul AI poate învăța să replice o funcție sinusoidală de bază.

Rețineți că acest proiect este în prezent acceptat numai pe iOS și OS X datorită dependenței de cadrul Accelerate al Apple, care permite o performanță îmbunătățită atunci când execută calcule mari.

Concluzie

Există atât de multe noi și interesante proiecte open source Swift, care, cu timpul, vor dezvolta și influența carierele multor dezvoltatori. După cum puteți vedea, prin deschiderea rapidă a lui Swift, Apple a permis nu numai limbajul să devină mai bun prin contribuțiile comunității, ci și să devină util atunci când se dezvoltă pentru alte platforme decât Apple.

Vă încurajez să verificați câteva din proiectele menționate în acest articol și să vă uitați la ce încearcă să realizeze. Dacă doriți să vă uitați la mai multe proiecte, atunci vă recomandăm să navigați pe GitHub pentru cele mai populare și actualmente repoziții Swift.

Ca întotdeauna, lăsați comentariile și comentariile dvs. în comentariile de mai jos.

Cod