Fiecare lansare de Xcode prezintă dezvoltatorilor instrumente de îmbunătățire pentru a ajuta la construirea aplicațiilor lor. Comunicatul din acest an, Xcode 6, introduce noi modalități prin care dezvoltatorii își pot proiecta și construi software-ul. În acest tutorial, voi sublinia caracteristicile noi și îmbunătățite în Xcode 6 și aruncăm o privire asupra modului în care le puteți folosi.
În timpul acestui an WWDC, Apple a introdus Swift, un nou limbaj de programare pentru dezvoltarea de software pentru dispozitivele sale. În concluzie, Xcode 6 vine cu o nouă caracteristică numită Playgrounds, care oferă o zonă de lucru interactivă unde dezvoltatorii pot scrie cod Swift și pot primi feedback live fără a fi nevoiți să ruleze codul pe un dispozitiv sau simulator. Acesta este un plus frumos pentru Xcode, deoarece acum puteți experimenta codul și obțineți rezultate rapide, în timp real, înainte de a îl încorpora în baza de cod principală.
Un subiect important la WWDC din acest an a fost construirea de aplicații adaptive. În loc să construiască aplicații care vizează dimensiuni specifice ale ecranului, dezvoltatorii sunt încurajați să dezvolte aplicații care se adaptează la dispozitivul pe care rulează, indiferent de dimensiunea ecranului.
Aceasta este o mișcare care a lansat o serie de lansări înapoi cu introducerea Auto Layout în iOS 6, permițând dezvoltatorilor să creeze aplicații care să funcționeze pe ecranele de 3.5 "și 4.0". Acum a fost îmbunătățită în continuare pentru a permite dezvoltatorilor iOS să construiască aplicații care rulează pe toate iPhone-urile acceptate, inclusiv noul 4.7 "iPhone 6 și 5.5" iPhone 6 Plus și iPad-urile care utilizează aceeași bază de cod.
Interface Builder a suferit modificări majore care permit dezvoltarea unor astfel de aplicații adaptive. De asemenea, au fost adăugate noi caracteristici care îmbunătățesc procesul de proiectare a interfeței utilizator. Vom analiza următoarele modificări în continuare.
Clasele de mărime definesc dimensiunea panzei utilizate în layout-uri. Acestea vă permit să specificați modul în care se modifică interfața de utilizator a aplicației atunci când se modifică dimensiunea disponibilă a controlerului de vizualizare. Acest lucru face posibilă crearea unei panouri de scenarii unificate atunci când se construiește o aplicație universală. Anterior, a trebuit să proiectați două storyboards separate, unul pentru iPad și unul pentru iPhone.
O clasă de mărime identifică o valoare relativă a spațiului de afișare pentru înălțimea (dimensiunea verticală) și lățimea (dimensiunea orizontală). În prezent există două clase de mărime, compact și regulat. De exemplu, un iPhone în portret va avea o lățime compactă și o înălțime normală. Un iPad va avea o lățime și înălțime obișnuită atât în orientări portret, cât și în peisaj.
Dar trebuie să rețineți că o clasă de mărime nu se referă neapărat la un singur dispozitiv într-o singură orientare. De exemplu, un iPad poate avea o vizualizare cu un layout stil iPhone (o clasă orizontală compactă și o clasă de dimensiuni verticale obișnuite) atunci când este prezentată într-un spațiu mai mic pe dispozitiv și un aspect stil iPad (o clasă orizontală obișnuită și o clasă de dimensiuni verticale obișnuite ) atunci când spațiul disponibil este mai mare.
Schimbați clasele de mărime utilizând butonul Mărimea clasei controlați lângă bara de instrumente de dispunere din partea inferioară a panoului Builder de interfață. Interfața Builder vă deschide în orice lățime și orice clasa de mărimea înălțime în care puteți stabili componentele și constrângerile obișnuite ale interfeței utilizator pentru diferite dimensiuni și orientări ale ecranului. Actualizați apoi componentele care trebuie modificate atunci când dimensiunea ecranului disponibilă se modifică prin modificarea interfeței utilizator în diferite clase de mărime.
Xcode 6 introduce tipuri de segmente adaptive care sunt mai potrivite pentru noile planuri adaptive, deoarece prezintă vederi diferite în funcție de mediul în care sunt executate. De exemplu, utilizarea Arată detalii cu o vedere separată pe un iPad va înlocui Detaliu, dar pe un iPhone va împinge acel detaliu la Master. Unele dintre vechile seguri, cum ar fi push și modal, sunt acum depreciate.
Panza Builder Interface este mai interactivă decât oricând. Anterior, a trebuit să rulați aplicația dvs. pentru a vedea modificări legate de obiecte particularizate, fonturi personalizate și localizare. Acum, puteți selecta fonturi personalizate din selectorul de fonturi pentru Interface Builder și le puteți arăta în panza Builder Interface Builder.
Puteți chiar să creați obiecte personalizate și să le dați pe panza pentru interfața constructorului. Faceți acest lucru creând un cadru personalizat, adăugând clasa personalizată la acea țintă și marcând acea clasă cu @IBDesignable
steag (IB_DESIGNABLE
în obiectivul C). Acest lucru permite Interface Builder să știe că o clasă poate afișa conținut personalizat pe panza sa.
În afară de a putea vizualiza obiecte personalizate în Interface Builder, puteți marca și proprietățile cu ajutorul funcției @IBInspectable
și să le apară în meniul inspectorului Interface Builder, în care pot fi editate la fel ca orice alte proprietăți din vizualizările dvs. Nu este o cerință pentru ca o clasă să fie marcată ca desemnată pentru ca ea să aibă proprietăți inspectabile.
De asemenea, puteți specifica codul de timp numai pentru proiectare. Puteți folosi acest lucru, de exemplu, pentru a pre-popula vizualizarea cu date de exemplu pentru a obține o simțire mai precisă a interfeței. Faceți asta prin suprascrierea prepareForInterfaceBuilder
metodă. În afară de asta, puteți folosi #if TARGET_INTERFACE_BUILDER
pentru a opta codul în sau din a fi rulat în rendering final Interface Builder.
Editorul de previzualizare vă permite acum să vedeți mai multe previzualizări ale diferitelor dispozitive simulate una lângă alta. Nu numai că puteți vedea cum arată aplicația dvs. pe diferite dispozitive, dar puteți, de asemenea, să setați fiecare dintre dispozitive să fie în modul portret sau peisaj. Aceasta oferă o modalitate rapidă de a previzualiza interfața de utilizare a aplicației dvs. pe diferite dispozitive și orientări, fără a o rula în prealabil.
Apple a adăugat noi tehnologii de joc la Xcode 6 și iOS 8, și anume SceneKit și Metal. SceneKit, care a fost disponibilă anterior pe OS X, este un renderer 3D de scenă. Metalul este un cadru care poate fi utilizat pentru a crea performanțe foarte performante de redare grafică și de calcul, datorită accesului său redus la graficul A7 și A8.
SpriteKit a fost, de asemenea, îmbunătățit cu ocluzie fizică pe pixeli, câmpuri de fizică, cinematică și constrângeri universale, shadere, lumini și umbre.
O altă caracteristică semnificativă în SpriteKit este SpriteKit Level Editor care vă permite să asamblați vizual scene. Așa cum puteți crea interfața dvs. de utilizator în Interface Builder fără a scrie niciun cod, puteți face același lucru atunci când într-un joc SpriteKit cu editorul de niveluri SpriteKit.
Storyboards au fost acum introduse în dezvoltarea OS X. La fel ca în dezvoltarea iOS, ele vă permit să configurați vizualizările de vizualizare și vederile de sârmă împreună cu diferite animații segue. La momentul redactării, unele caracteristici, inclusiv storyboards, sunt încă dezactivate în Xcode (6.0.1) pentru dezvoltarea OS X în așteptarea lansării OS X Yosemite.
Recunoașterea gesturilor este acum disponibilă în AppKit. Acestea sunt folosite destul de mult în același mod ca și în dezvoltarea iOS. Puteți vedea gesturile disponibile în Biblioteca de obiecte în Interface Builder.
Localizarea se face diferit în Xcode 6 decât a fost anterior. Acum puteți exporta întregul conținut care poate fi localizat în XLIFF, care este standardul de domeniu care este înțeles de multe servicii de traducere. Când primiți traducerile înapoi, le importați și Xcode va îmbina conținutul nou în proiectul dvs. Ar trebui să aveți un fișier XLIFF pentru fiecare limbă pe care o susțineți în aplicația dvs..
Acum puteți previzualiza conținutul localizat fără a schimba locația dispozitivului sau a simulatorului Setări. Pentru aceasta, selectați Produs> Schemă> Editare schemă, apoi selectați Alerga și faceți clic pe Opțiuni tab. Puteți alege limba dvs. de alegere de la Limba aplicației meniul. Xcode vine cu Double Pseudolanguage lungime pe care le puteți testa dacă nu ați adăugat nici o altă limbă. Când rulați aplicația, ar trebui să vedeți conținutul localizat.
De asemenea, puteți vizualiza conținutul localizat fără a rula aplicația. Pentru a face acest lucru, utilizați Editor de previzualizare pentru a comuta între diferitele limbi pe care aplicația dvs. le acceptă. Limba implicită se va afișa în colțul din dreapta jos al editorului și când faceți clic pe acesta, vi se va afișa o listă cu limbile disponibile. Pentru a le testa fără a adăuga o limbă, puteți folosi Pseudolimbajul cu dublă lungime.
Xcode 6 prezintă acum simulatoare numite care corespund unor dispozitive specifice, cum ar fi iPhone 5s, în loc de numele generice anterioare, cum ar fi retina iPhone pe 64 de biți.
Printre dispozitivele pe care le puteți alege sunt iPad redimensionabil și iPad redimensionabil. Acestea vă permit să specificați clasele de lățime, înălțime și mărime ale simulatorului. Cu aceasta, puteți testa adaptivitatea aplicației dvs. pe toate dispozitivele existente ale Apple, precum și pe orice dispozitive viitoare, fără a fi nevoie să descărcați un simulator pentru fiecare dispozitiv.
Cu noul simulator iOS, puteți păstra împreună setările de date și de configurare. Rulați o configurație pentru o versiune a unei aplicații cu propriile date și o altă configurație pentru o altă versiune de aplicație. Aceasta înseamnă că puteți simula mai mulți utilizatori pe mașina dvs. Fiecare utilizator va avea propriile date și configurații.
Cadrul HomeKit permite aplicației dvs. să comunice și să controleze accesoriile conectate în casa unui utilizator. În versiunile beta ale Xcode 6, Simulatorul de Accesoriu HomeKit a venit ca parte a Xcode, dar este acum parte a Hardware I / O Tools pentru Xcode. Puteți să o descărcați la iOS Dev Center.
Xcode 6 facilitează depanarea interfeței de utilizator a aplicației cu funcția de depanare în timp real a aplicației. Acum puteți să întrerupeți aplicația în desfășurare și să disecați interfața de utilizator întreruptă într-o vizualizare 3D. Instrumentul de depanare a vizualizării vă arată ierarhia vizuală și constrângerile dvs. Auto Layout. Dacă selectați o vizualizare, puteți să-i inspectați proprietățile în inspector sau să treceți la codul relevant din editorul asistent. Cu aceasta, puteți inspecta probleme cum ar fi conflictele automate de aspect, puteți vedea de ce este ascunsă sau tăiată o vizualizare etc..
Pentru a porni programul de depanare a vizualizării live, lansați aplicația și dă clic pe Debug View Ierarchy pe bara de instrumente de depanare.
Aplicația dvs. se oprește și vi se oferă o vizualizare 3D a interfeței cu utilizatorul. Puteți trage oriunde pe panza pentru a roti vederea.
Puteți comuta între diferite stări de vizualizare cu butoanele de sub pânză.
De la stanga la dreapta:
Quick Look a fost introdus în Xcode 5 și vă permite să vizualizați conținutul unui obiect atunci când depanați. Quick Look acceptă obiecte obișnuite cum ar fi imagini, căi Bezier, locații de hărți etc..
În Xcode 6, acest lucru a fost îmbunătățit pentru a susține două tipuri noi de obiecte, vederi (UIView
și NSView
) și obiecte personalizate. Pentru a activa Quick Look pentru obiecte personalizate, implementați debugQuickLookObject
în clasa personalizată.
Navigatorul de depanare înregistrează și afișează blocurile recent executate, precum și blocurile enqueued. Puteți să-l utilizați pentru a vedea unde sunt blocurile dvs. enqueued și pentru a examina detaliile a ceea ce a fost setat pentru a executa. Puteți activa depanarea blocurilor selectând Depanare> Fluxul de depanare> Afișați întotdeauna blocuri așteptate în coadă opțiune de meniu.
Măsurătorile de depanare oferă informații despre utilizarea resurselor aplicației dvs. în timpul depanării. Xcode 6 oferă gabarite actualizate, care includ profilarea graficelor pentru noul cadru Metal și suportul iCloud pentru documentele din funcțiile Cloud și CloudKit.
În afară de aceste îmbunătățiri, Xcode 6 introduce două noi calibre de depanare, activitate de rețea și disc.
Activitatea din rețea arată numărul de date pe care aplicația dvs. le trimite și le primește, precum și o listă de conexiuni deschise. Puteți vedea o cronologie a istoricului pentru a monitoriza utilizarea rețelei, ajutându-vă să aflați când și de ce au apărut piroane de utilizare a rețelei sau de eșecuri de rețea.
Activitatea pe disc afișează informații în timp real despre citirile și scrierea pe disc ale aplicației dvs. De asemenea, oferă informații despre toate fișierele deschise. Există o cronologie de istorie a activității de intrare / ieșire pe disc pe care să o monitorizați.
Cataloagele de active suportă acum clasele de mărime. Aceasta înseamnă că acum puteți ușor să vă adaptați interfața de utilizator pentru înălțime sau lățime compacte și regulate, oferind imagini diferite pentru fiecare clasă de dimensiuni.
Anterior, cataloagele de materiale au acceptat numai imagini PNG, dar în Xcode 6, au fost adăugate suport pentru imagini vectoriale JPEG și PDF.
Aveți posibilitatea să utilizați un XIB sau storyboard ca imagine de lansare a aplicației. Sistemul de operare generează imaginile de lansare necesare pentru aplicația dvs. Cu aceasta, nu este necesar să furnizați elemente individuale pentru imaginile de lansare și îl puteți proiecta în Interface Builder.
Pentru a seta o imagine XIB sau storyboard ca imagine de lansare a aplicației, selectați proiectul din Project Navigator și alegeți o țintă din lista de obiective. Sub General filă, localizați secțiunea App icons și lansarea imaginilor și selectați fișierul corect din meniul etichetat Lansați fișierul de ecran.
Au fost adăugate noi interfețe API în cadrul XCTest care permit testarea codului asincron. Acest lucru se face prin obiecte de așteptare, XCTestExpectation
, care descriu evenimentele așteptate. XCTestCase
are un nou API care așteaptă așteptările de îndeplinit și stabilește un timp de expirare. Un handler de completare este chemat fie atunci când toate evenimentele sunt îndeplinite, fie când expirați timpul de expirare. Poate aștepta simultan mai multe evenimente asincrone. Acum puteți testa cu ușurință interacțiunile de sistem care se execută în mod asincron, cum ar fi fișierele I / O, solicitările de rețea etc..
Cadrul XCTest îmbunătățit poate acum cuantifica performanța fiecărei părți a unei aplicații. Xcode rulează testele de performanță și vă permite să definiți un indice de performanță de bază. Fiecare test de testare ulterioară compară performanța, afișează schimbarea în timp și - prin evidențierea zonei cu probleme - vă avertizează asupra regresiilor bruște pe care le-ar putea introduce un cod de comitet. Dacă măsura medie de performanță se abate considerabil față de linia de bază, testul va eșua. Aceasta este o modalitate foarte bună de a detecta regresiile de performanță din aplicația dvs..
Odată cu introducerea testelor de performanță vine abilitatea de a efectua teste de profil în Instrumente. Puteți selecta un test sau o suită de testare pentru a realiza profilul și a efectua investigații și analize suplimentare în Instrumente pentru a afla de ce testul a eșuat și pentru a găsi cauza regresiei.
Instrumentele au o interfață de utilizator actualizată. Cu noul setator de șabloane, puteți selecta dispozitivul și ținta, precum și punctul de pornire pentru sesiunea de profilare.
Există un nou Contoare șablon care a fost combinat cu Evenimente pentru a oferi o vizualizare puternică în evenimentele CPU individuale. Puteți chiar să specificați formule pentru a măsura agregatele evenimentului, rapoartele și multe altele.
În Xcode 6, Instruments livrează, de asemenea, cu suport pentru Swift și îl puteți utiliza și pentru a extinde extensiile de aplicații. Există, de asemenea, suport pentru configurațiile simulatorului. Configurațiile simulatoarelor sunt tratate ca și dispozitivele Instruments, facilitând lansarea sau atașarea la procesele din simulator.
Apple continuă să-și îmbunătățească instrumentele de dezvoltare și acest lucru este văzut în fiecare versiune majoră a Xcode. Xcode 6 îmbunătățește pe predecesorii săi să ofere dezvoltatorilor instrumente care să-și îmbunătățească fluxul de lucru și să facă procesul de dezvoltare în întregime semnificativ mai bun.