Ce este nou în Swift 3?

Introducere

În luna septembrie, Apple a lansat oficial ultima versiune a noului lor limbaj de programare, Swift 3. La fel ca Swift 2 anul trecut, această versiune conține o mulțime de noi caracteristici și îmbunătățiri care fac programarea cu Swift chiar mai bună!

Swift 3 este inclus cu Xcode de la versiunea 8.0 și poate fi descărcat și de pe site-ul swift.org.

1. Folosind Swift 3

Dacă doriți să utilizați Swift 3 în proiectele dvs. actuale sau viitoare, Xcode oferă un excelent instrument de migrare pentru a vă permite să faceți acest lucru cu ușurință.

Pentru noile proiecte Swift create cu Xcode 8, Swift 3 va fi utilizat automat. La deschiderea pentru prima dată a unui proiect Swift 1 sau 2 în Xcode 8, veți primi o alertă pentru a vă converti codul în codul Swift 3 sau Swift 2.3. 

Alegerea programului Swift 2.3 vă va oferi acces la toate noile interfețe iOS 10, macOS Sierra, tvOS 10 și watchOS 3 API-uri, dar veți folosi în continuare sintaxa Swift 2. Alternativ, puteți alege să nu vă convertiți imediat codul și să continuați să utilizați o versiune mai veche a lui Swift. Când sunteți gata, puteți merge apoi la Editați> Conversie> Sintaxă curentă rapidă ...  în bara de meniu Xcode pentru a converti întregul cod.

Instrumentul de migrare are grijă de toate modificările care trebuie făcute în codul dvs. pentru a adopta Swift 3 de la Swift 2. Aceasta include schimbarea numelor de metode și proprietăți, schimbarea sintaxei acolo unde este nevoie și multe alte lucruri. Înainte de a finaliza conversia, Xcode vă va afișa modificările în așteptare pentru fiecare dintre fișierele cu cod Swift. Aceasta înseamnă că puteți verifica toate modificările înainte de a le face, doar pentru a vă asigura că instrumentul de migrare nu introduce bug-uri în proiectul dvs..

2. Fundația

O mare parte din lansarea Swift 3 a fost noua bibliotecă a Fundației Open Source. În timp ce dezvoltatorii experimentați macOS și iOS ar fi familiarizați cu cadrul Fundației, această bibliotecă aduce câteva funcții noi pentru programul programatorilor Swift. 

Prima schimbare imediată pe care o veți observa atunci când utilizați noile API ale Fundației este lipsa unui NS prefix. Acest lucru înseamnă că clase precum NSDate, NSTimer și NSURL sunt acum doar Data, Cronometrul și URL- în codul Swift. Instrumentul de migrare a codului în Xcode 8 va redenumi automat toate aceste clase pentru dvs., dar aceasta este o schimbare pe care toți dezvoltatorii Swift trebuie să o cunoască atunci când scriu un nou cod.

Apoi, fiind o bibliotecă de bază a Swift, toate API-urile Foundation sunt acum compatibile cu sistemele de operare bazate pe Linux. Pe măsură ce Swift este compatibil cu alte platforme, va fi și biblioteca Fundației. Aceasta înseamnă că setul de bază de funcționalități oferit de Fundație, cum ar fi gestionarea datei / timpului și crearea de rețele, poate fi utilizat oriunde poate fi utilizat Swift. Această interoperabilitate trans-platformă a reprezentat una dintre principalele motivații care au stat la baza eliminării NS prefixul API-urilor Foundation.

În sfârșit, multe dintre API-urile Fundației au fost reproiectate pentru a se potrivi mai bine cu codul Swift. De exemplu, în funcție de API, această reproiectare înseamnă că Fundația poate profita mult mai bine de:

  • Îmbunătățirea manipulării erorilor utilizând încerca și captură blocuri care au fost introduse cu Swift 2.
  • Tipurile opționale, spre deosebire de toate tipurile opționale implicit dezbrăcate care au fost create când importați cadrul Fundației Objective-C în Swift.
  • Algoritmi mai moderni și optimizați.
  • O performanță generală mai bună de a fi scrisă în pur Swift, care în sine este foarte optimizat.

În general, folosirea noii biblioteci Swift Foundation este o experiență mult mai bună comparativ cu utilizarea vechiului cadru al Fundației în propriul cod Swift. Dacă doriți să aflați mai multe despre biblioteca open-source Swift Foundation, puteți să o verificați pe GitHub.

3. Orientări pentru denumirea API

Swift 3 introduce, de asemenea, câteva noi ghiduri de proiectare API. Acestea au fost create într-un efort de a simplifica toate API-urile Swift, pe lângă faptul că le-au făcut consecvente. 

Omiteți cuvintele inutile

Prima schimbare în Swift 3 pentru a face API mai bune a fost eliminarea cuvintelor inutile din declarațiile de metodă și de proprietate. Această modificare se comportă atât ca o caracteristică lingvistică la importarea API-urilor Obiectiv-C, cât și pentru orientările dezvoltatorilor care scriu propriul cod Swift. Următorul cod conține câteva exemple de cod Swift 2 în comparație cu codul Swift 3 identic funcțional.

lasati culoarea = UIColor.redColor () // Swift 2 ani culoare = UICcolor.red // Swift 3 "Hello World!" capitalizedString // Swift 2 "Hello World!". .containsString ("a")  // Swift 3 dacă someString.contains ("a") 

Veți vedea că versiunile Swift 3 sunt mai ușor de citit. dacă afirmațiile în special au un flux mai bun și arata mai mult ca o sentință în engleză.

Funcții Etichete parametru

Swift 3 anulează una dintre modificările efectuate în Swift 2: etichetarea primului parametru într-o funcție. În Swift 2, eticheta primului parametru a fost ignorată automat la apelarea funcției. De exemplu, o funcție declarată ca:

func addObject (obiect: AnyObject)

va fi numit în Swift 2 prin următoarele:

addObject (someObject)

Swift 3 inversează această modificare și nu mai ignoră automat prima etichetă de parametru. Aceasta înseamnă că funcția de mai sus va fi apelată cu următoarele:

addObject (obiect: someObject)

Această funcție utilizează totuși acum contravine omiteți cuvintele inutile obiectivul Swift 3. Pentru a respecta noile reguli de proiectare Swift API, declarația funcției trebuie modificată la:

func adăugați (obiect: AnyObject)

Această nouă declarație va fi utilizată apoi cu următorul cod:

adăugați (obiect: someObject)

Acest nou format al fluxurilor de denumire a funcțiilor, precum și formatul Swift 2, dar are avantajul suplimentar de a furniza o etichetă care este în mod clar legată de primul parametru al funcției.

Rețineți că încă mai puteți specifica că eticheta primului parametru va fi ignorată de funcția Swift 3. Acest lucru este realizat prin utilizarea a _ și apoi un nume de parametru pe care să îl utilizați în cadrul definiției funcției, de exemplu:

// Definiți func add (_ object: AnyObject) // Parametrul de acces prin variabilele 'obiect' // Utilizare add (someObject)

Deși acesta a fost un exemplu foarte simplu, acest nou format de funcții de declarare devine extrem de benefic, cu nume mai complicate. De exemplu, următorul cod arată modul în care o parte din Swift Şir metodele au fost schimbate acum de la Swift 2 la Swift 3.

a înlocuit = someString.stringByReplacingOccurencesOfString ("a", cuString: "A") // Swift 2 ani înlocuit = someString.replacingOccurences (de: "a", cu: "A") // Swift 3 let array = listString.componentsSeparatedByString (",") // Swift 2 ani array = listString.components (separateBy: ",") // Swift 3

Carcasă inferioară pentru enumuri și proprietăți

Această modificare are scopul de a aduce coerența tuturor proprietăților din Swift 3, precum și enumerări. Sa hotărât că, deoarece valorile enumerării sunt mai apropiate de proprietăți decât clasele, ele trebuie să urmeze același format de denumire. 

Aceasta este o schimbare relativ minoră și una pe care instrumentul de migrare Xcode va avea grijă de complet atunci când convertește codul Swift 2. Este un lucru pe care toți dezvoltatorii ar trebui să îl cunoască, totuși, atunci când scriu un nou cod. 

Următoarele sunt câteva exemple privind modul în care această modificare afectează API-uri particulare.

lasati culoarea = UIColor.redColor () CGColor // Swift 2 ani color = UICcolor.red.cgColor // Swift 3 ani aliniere = NSTextAlignment.Center // Swift 2 let alignment = NSTextAlignment.center // Swift 3

4. Dispeceratul central

Alaturi de Swift 3, a fost lansata si versiunea open-source Swift a bibliotecii de baza Grand Central Dispatch (GCD). GCD este cadrul Apple pentru permiterea executării codului concurent pe sisteme multicore. Obiectivele principale ale rescrierii acestei biblioteci sunt:

  • Oferiți aceleași funcționalități ca și funcțiile GCD existente pe bază de C, cu API-uri care sunt proiectate să funcționeze și să citească bine alături de alte coduri Swift.  
  • Oferiți un set de interfețe API cross-platform, care, la fel ca și Biblioteca de bază a Fundației, vor putea fi utilizate oriunde Swift este compatibil.

Pentru dezvoltatorii care au experiență cu API-urile GCD pe platformele Apple, această nouă versiune Swift va fi ușor de înțeles. Urmează aceleași concepte. Următorul cod arată cum se pot face acum câteva sarcini comune GCD cu codul Swift 3:

// Lucrând pe un fir de fundal lăsați queue = DispatchQueue (etichetă: "threadName") queue.async // Executați lucrarea // Lucrând pe firul principal DispatchQueue.main.async // Execute work // Doing lucrați cu o anumită calitate a serviciului lăsați quality = DispatchQoS.background queue.async (qos: quality) // Execute work // Efectuați o muncă după o perioadă de timp, lăsați delay = DispatchTime.now () + .seconds 10) DispatchQueue.main.after (când: întârziere) // Execută munca

Dacă doriți să aflați mai multe despre programarea concurentă și despre GCD în Swift 3, puteți verifica sesiunea Apple a WWDC din acest an și versiunea Swift a referinței cadrului de expediere.

5. Beneficiile Open Source

Deși nu este o caracteristică sau o schimbare nouă, Swift 3 este prima versiune de la lansarea Apple de la limbajul de programare în decembrie 2015. Fiind complet open source aduce cu ea multe beneficii, ceea ce va deveni și mai evident în viitoarele versiuni Swift.

În primul rând, transformarea Swift și a bibliotecilor sale de bază într-o sursă complet deschisă înseamnă că dezvoltatorii pot porta Swift pentru a lucra pe alte platforme și sisteme de operare. În prezent, Swift este compatibil cu toate platformele Apple în plus față de versiunile moderne ale Ubuntu. Cu timpul, cu toate acestea, Swift poate fi portat la alte sisteme de operare, inclusiv Android și Windows. Acest lucru are potențialul de a face ca Swift să fie un limbaj cu adevărat cross-platform și să fie folosit mai mult de dezvoltatorii non-Apple.

Apoi, dacă toate lucrările interne ale lui Swift sunt vizibile publicului, angajații non-Apple pot contribui la această limbă. În plus față de noile caracteristici, dezvoltatorii de experți pot contribui, de asemenea, la remedierea erorilor, îmbunătățiri și optimizări în cadrul programului Swift.

În ansamblu, crearea de surse deschise Swift va aduce îmbunătățiri și caracteristici limbii într-un interval de timp mai scurt, deoarece va permite mai multor persoane să contribuie la aceasta. Dacă doriți să aflați mai multe despre natura open-source a Swift, puteți consulta următorul articol:

  • Swift este o sursă deschisă

    Pe 3 decembrie, Apple a făcut o mișcare îndrăzneață, făcând una dintre cele mai populare și cu cea mai rapidă creștere limbi ale industriei open source. Aflați ce înseamnă pentru ...
    Jordan Morgan
    Rapid

Concluzie

V-am arătat câteva dintre cele mai importante schimbări care au apărut în limba Swift în versiunea 3. Aceasta este o versiune importantă deoarece, pe lângă toate noile caracteristici și API-urile de bază ale bibliotecii, aceasta oferă o viziune clară asupra modului în care va evolua Swift în anii următori. Dacă modificările din Swift 3 sunt o indicație, limba va deveni din ce în ce mai plăcută pentru dezvoltatori.

Ca întotdeauna, vă rugăm să vă lăsați părerile și comentariile în secțiunea de comentarii de mai jos. Și verificați câteva dintre celelalte cursuri și tutoriale despre limbajul Swift!

Cod