Ogni versione di Xcode presenta agli sviluppatori strumenti avanzati per aiutare a sviluppare le loro app. La release di quest'anno, Xcode 6, introduce nuovi modi per gli sviluppatori di progettare e costruire il loro software. In questo tutorial illustrerò le nuove funzionalità migliorate in Xcode 6 e darò un'occhiata a come puoi usarle.
Durante il WWDC di quest'anno, Apple ha introdotto Swift, un nuovo linguaggio di programmazione per lo sviluppo di software per i suoi dispositivi. In linea con questo, Xcode 6 è dotato di una nuova funzionalità chiamata Playgrounds che fornisce un'area di lavoro interattiva in cui gli sviluppatori possono scrivere codice Swift e ottenere feedback dal vivo senza dover eseguire il codice su un dispositivo o un simulatore. Questa è una bella aggiunta a Xcode come ora puoi sperimentare con il codice e ottenere risultati rapidi in tempo reale prima di incorporarlo nel tuo codice principale.
Uno degli argomenti principali del WWDC di quest'anno è stato la creazione di applicazioni adattive. Invece di creare applicazioni che mirano a dimensioni dello schermo specifiche, gli sviluppatori sono incoraggiati a sviluppare applicazioni che si adattino al dispositivo su cui vengono eseguite, indipendentemente dalle dimensioni dello schermo.
Questa è una mossa che ha avviato un paio di versioni con l'introduzione del layout automatico in iOS 6, consentendo agli sviluppatori di creare app che funzionano su entrambi gli schermi da 3,5 "e 4,0". Ora è stato ulteriormente migliorato per consentire agli sviluppatori iOS di creare app che girano su tutti gli iPhone supportati, incluso il nuovo iPhone 6 Plus 4.7 "iPhone 6 e 5.5" e gli iPad che utilizzano lo stesso codice base.
Interface Builder ha subito importanti cambiamenti che consentono lo sviluppo di tali app adattive. Sono state inoltre aggiunte nuove funzionalità che migliorano il processo di progettazione dell'interfaccia utente. Vedremo questi nuovi cambiamenti dopo.
Le classi di dimensioni definiscono le dimensioni della tela utilizzate nei layout. Permettono di specificare in che modo cambia l'interfaccia utente dell'applicazione quando cambia la dimensione disponibile del controller di visualizzazione. Ciò rende possibile avere uno storyboard unificato quando si costruisce un'applicazione universale. In precedenza dovevi progettare due storyboard separati, uno per iPad e uno per iPhone.
Una classe di dimensione identifica una quantità relativa di spazio di visualizzazione per l'altezza (dimensione verticale) e larghezza (dimensione orizzontale). Ci sono attualmente due classi di dimensioni, compatto e regolare. Ad esempio, un iPhone in verticale avrà una larghezza compatta e un'altezza regolare. Un iPad avrà una larghezza e un'altezza regolari sia in verticale che in orizzontale.
Tuttavia, è necessario notare che una classe di dimensioni non necessariamente esegue la mappatura su un dispositivo con un solo orientamento. Ad esempio, un iPad può avere una vista con un layout in stile iPhone (una classe orizzontale e una verticale di dimensioni compatte) quando viene presentato su uno spazio più piccolo sul dispositivo e un layout in stile iPad (una normale classe orizzontale e una verticale normale ) quando lo spazio disponibile è più grande.
È possibile modificare le classi di dimensioni utilizzando il Classi di dimensioni controllo vicino alla barra degli strumenti del layout nella parte inferiore dell'area di disegno di Interface Builder. Interface Builder ti dà il via nel qualunque larghezza e qualunque classe di altezza in cui è possibile disporre componenti e vincoli dell'interfaccia utente comuni per le diverse dimensioni e orientamenti dello schermo. Quindi aggiorni le parti che devono essere modificate quando le dimensioni dello schermo disponibili cambiano apportando modifiche all'interfaccia utente nelle diverse classi di dimensioni.
Xcode 6 introduce i tipi di tracciati adattivi che sono più adatti per i nuovi layout adattivi poiché presentano le visualizzazioni in modo diverso a seconda dell'ambiente in cui vengono eseguiti. Ad esempio, utilizzando Mostra i dettagli con una vista divisa su un iPad si sostituirà il dettaglio, ma su un iPhone sposterà quel dettaglio sul master. Alcuni dei vecchi segui, come push e modal, sono ora deprecati.
La tela di Interface Builder è più interattiva che mai. In precedenza, dovevi eseguire la tua app per vedere le modifiche relative a oggetti personalizzati, caratteri personalizzati e localizzazione. Ora è possibile selezionare caratteri personalizzati dal selettore di font di Interface Builder e visualizzarli nell'area di disegno di Interface Builder.
È anche possibile creare oggetti personalizzati e renderli visibili nell'area di disegno di Interface Builder. Lo fai creando un framework personalizzato, aggiungendo la tua classe personalizzata a quel target e contrassegnando quella classe con @IBDesignable
bandiera (IB_DESIGNABLE
in Objective-C). Ciò consente a Interface Builder di sapere che una classe può visualizzare contenuti personalizzati sul proprio canvas.
Oltre a poter visualizzare oggetti personalizzati in Interface Builder, puoi anche contrassegnare le proprietà con @IBInspectable
segnalarli e visualizzarli nel menu Ispettore interfaccia Generatore, in cui possono essere modificati come qualsiasi altra proprietà sulle viste. Non è necessario che una classe sia contrassegnata come designabile perché abbia proprietà ispezionabili.
È inoltre possibile specificare il codice solo per la progettazione. È possibile utilizzare questo, ad esempio, per pre-compilare la vista con dati di esempio per ottenere una sensazione più accurata per l'interfaccia. Lo fai ignorando il prepareForInterfaceBuilder
metodo. Oltre a questo, puoi usare #if TARGET_INTERFACE_BUILDER
per attivare o disattivare il codice nel rendering finale di Interface Builder.
L'editor di anteprima ora consente di visualizzare più anteprime di diversi dispositivi simulati affiancati. Non solo puoi vedere l'aspetto della tua app su diversi dispositivi, ma puoi anche impostare ciascuno dei dispositivi in modalità verticale o orizzontale. Questo fornisce un modo rapido per visualizzare in anteprima l'interfaccia utente della tua app su diversi dispositivi e orientamenti senza prima eseguirla.
Apple ha aggiunto nuove tecnologie di gioco a Xcode 6 e iOS 8, ovvero SceneKit e Metal. SceneKit, che era precedentemente disponibile su OS X, è un renderer di scene 3D. Metal è un framework che può essere utilizzato per creare rendering grafico altamente ottimizzato e attività computazionali grazie al suo accesso low-overhead alla GPU A7 e A8.
SpriteKit è stato anche migliorato con l'occlusione fisica per pixel, campi di fisica, cinematica universale e vincoli, shader, illuminazioni e ombre.
Un'altra significativa novità in SpriteKit è il SpriteKit Level Editor che ti consente di assemblare visivamente le scene. Proprio come puoi creare la tua interfaccia utente in Interface Builder senza scrivere alcun codice, puoi fare lo stesso in un gioco SpriteKit con SpriteKit Level Editor.
Gli storyboard sono stati introdotti allo sviluppo di OS X. Proprio come nello sviluppo di iOS, ti consentono di configurare i layout di visualizzazione e le viste wire insieme alle diverse animazioni di seguito. Al momento della scrittura, alcune funzionalità, inclusi gli storyboard, sono ancora disabilitate in Xcode (6.0.1) per lo sviluppo di OS X in attesa della versione di Yosemite per OS X.
I riconoscimenti gestuali sono ora disponibili in AppKit. Questi sono usati più o meno allo stesso modo dello sviluppo iOS. È possibile visualizzare i gesti disponibili in Libreria di oggetti in Interface Builder.
La localizzazione viene eseguita in modo diverso in Xcode 6 rispetto a prima. Ora puoi esportare tutto il contenuto localizzabile in XLIFF, che è lo standard del settore compreso da molti servizi di traduzione. Una volta ripristinate le traduzioni, le importi e Xcode unirà i nuovi contenuti nel tuo progetto. Dovresti avere un file XLIFF per ogni lingua supportata nella tua app.
Ora puoi visualizzare l'anteprima del contenuto localizzato senza modificare le impostazioni locali del tuo dispositivo o del simulatore impostazioni. Per fare ciò, selezionare Prodotto> Schema> Modifica schema, quindi selezionare Correre e fare clic su Opzioni scheda. È possibile selezionare la lingua scelta tra Lingua dell'applicazione menu. Xcode viene fornito con Doppia lunghezza Pseudolinguaggio che puoi testare se non hai aggiunto altra lingua. Quando esegui l'app, dovresti vedere il contenuto localizzato.
Puoi anche visualizzare i contenuti localizzati senza eseguire la tua app. Per fare questo, usi il Editor di anteprima per passare tra le diverse lingue supportate dalla tua app. La lingua predefinita verrà visualizzata nell'angolo in basso a destra dell'editor e quando si fa clic su di essa, viene presentato un elenco delle lingue disponibili. Per provarlo senza aggiungere una lingua, puoi usare la Pseudolinguaggio a doppia lunghezza.
Xcode 6 ora presenta simulatori denominati che corrispondono a dispositivi specifici, come iPhone 5s, invece dei precedenti nomi generici, come la retina iPhone a 64 bit.
Tra i dispositivi tra cui puoi scegliere ci sono l'iPhone ridimensionabile e l'iPad ridimensionabile. Questi ti permettono di specificare la larghezza, l'altezza e le classi di dimensioni del simulatore. Con questo, puoi testare l'adattabilità della tua app su tutti i dispositivi esistenti di Apple e su qualsiasi dispositivo futuro, senza dover scaricare un simulatore per ogni dispositivo.
Con il nuovo simulatore iOS, puoi mantenere raggruppati i dati e le impostazioni di configurazione. Esegui una configurazione per una versione di un'app con i propri dati e un'altra configurazione per una diversa versione dell'app. Ciò significa che puoi simulare la presenza di più utenti sulla tua macchina. Ogni utente avrà i propri dati e configurazioni.
Il framework HomeKit consente alla tua app di comunicare e controllare gli accessori collegati nella casa di un utente. Nelle versioni beta di Xcode 6, HomeKit Accessory Simulator era incluso in Xcode, ma ora fa parte del Hardware I / O Tools per Xcode. Puoi scaricarlo su iOS Dev Center.
Xcode 6 rende molto più facile il debug dell'interfaccia utente dell'app con la funzione di debug della visualizzazione live. Ora sei in grado di mettere in pausa la tua app in esecuzione e sezionare l'interfaccia utente in pausa in una vista 3D. Il debugger della vista mostra la gerarchia della vista e i vincoli del layout automatico. Se si seleziona una vista, è possibile ispezionarne le proprietà nell'ispettore o passare al codice pertinente nell'editor degli assistenti. Con questo, è possibile esaminare problemi come problemi di layout automatico, vedere perché una vista è nascosta o ritagliata, ecc.
Per avviare il debugger di live view, avvia la tua app e fai clic su Debug View Hierarchy pulsante sulla barra degli strumenti di debug.
La tua app si interrompe e ti viene presentata una visualizzazione 3D della sua interfaccia utente. Puoi trascinare ovunque nell'area di disegno per ruotare la vista.
È possibile alternare vari stati di visualizzazione con i pulsanti sotto la tela.
Da sinistra a destra:
Quick Look è stato introdotto in Xcode 5 e consente di visualizzare il contenuto di un oggetto durante il debug. Quick Look supporta oggetti comuni come immagini, percorsi Bezier, posizioni delle mappe, ecc.
In Xcode 6, questo è stato migliorato per supportare due nuovi tipi di oggetto, viste (UIView
e NSView
) e oggetti personalizzati. Per abilitare la ricerca rapida di oggetti personalizzati, si implementa il debugQuickLookObject
metodo nella classe personalizzata.
Il navigatore di debug registra e visualizza blocchi eseguiti di recente e blocchi in coda. Puoi usarlo per vedere dove sono i blocchi nascosti e per esaminare i dettagli di ciò che è stato configurato per l'esecuzione. È possibile abilitare il debug del blocco selezionando il Debug> Debug Workflow> Mostra sempre i blocchi in sospeso nelle code opzione di menu.
Gli indicatori di debug forniscono informazioni sull'utilizzo delle risorse della tua app durante il debug. Xcode 6 presenta indicatori aggiornati, che includono la creazione di profili grafici per il nuovo framework Metal e il supporto iCloud per i documenti nelle funzionalità Cloud e CloudKit.
Oltre a questi miglioramenti, Xcode 6 introduce due nuovi indicatori di debug, l'attività di rete e del disco.
L'attività di rete mostra la quantità di dati inviati e ricevuti dalla tua app e un elenco di connessioni aperte. È possibile visualizzare una cronologia della cronologia per monitorare l'utilizzo della rete, aiutandoti a capire quando e perché si sono verificati picchi nell'utilizzo della rete o errori di rete.
L'attività del disco mostra informazioni in tempo reale delle letture e delle scritture della tua app sul disco. Fornisce anche informazioni su tutti i file aperti. C'è una cronologia storica di questa attività I / O del disco da monitorare.
I cataloghi delle risorse ora supportano le classi di dimensioni. Ciò significa che ora puoi adattare facilmente l'interfaccia utente per ottenere un'altezza o una larghezza compatta e regolare fornendo immagini diverse per ogni classe di dimensioni.
In precedenza i cataloghi delle risorse supportavano solo immagini PNG, ma in Xcode 6 è stato aggiunto il supporto per immagini vettoriali JPEG e PDF.
Puoi usare un XIB o uno storyboard come immagine di avvio dell'applicazione. Il sistema operativo genera le immagini di avvio necessarie per la tua app. Con questo, non è necessario fornire risorse individuali per le immagini di lancio e puoi progettarlo in Interface Builder.
Per impostare un XIB o uno storyboard come immagine di avvio della tua app, seleziona il progetto nel Project Navigator e scegli un bersaglio dalla lista dei bersagli. Sotto il Generale scheda, individuare la sezione Icone di app e lanciare immagini e selezionare il file corretto dal menu etichettato Avvia file di schermo.
Sono state aggiunte nuove API al framework XCTest che consentono di testare il codice asincrono. Questo viene fatto attraverso gli oggetti di attesa, XCTestExpectation
, che descrivono eventi attesi. XCTestCase
ha una nuova API che aspetta l'aspettativa di soddisfare e imposta un timeout su di essa. Un gestore di completamento viene chiamato sia quando tutti gli eventi sono soddisfatti sia quando viene raggiunto il timeout. Può essere in attesa su più eventi asincroni allo stesso tempo. È ora possibile testare facilmente le interazioni di sistema che vengono eseguite in modo asincrono, come I / O di file, richieste di rete, ecc..
Il framework XCTest potenziato ora può quantificare le prestazioni di ciascuna parte di un'app. Xcode esegue i test delle prestazioni e consente di definire una metrica delle prestazioni di base. Ogni successiva esecuzione di test confronta le prestazioni, visualizza le modifiche nel tempo e, evidenziando l'area problematica, ti avvisa delle regressioni improvvise che potrebbero essere introdotte da un commit di codice. Se la misura della prestazione media si discosta notevolmente dalla linea di base, il test fallirà. Questo è un ottimo modo per rilevare regressioni di prestazioni nella tua app.
Con l'introduzione del test delle prestazioni viene la possibilità di eseguire il profilo dei test in Strumenti. È possibile selezionare un test o una suite di test per il profilo ed eseguire ulteriori analisi e analisi in Strumenti per scoprire perché il test ha avuto esito negativo e trovare la causa della regressione.
Instruments ha un'interfaccia utente aggiornata. Con il nuovo selettore di modelli, puoi selezionare il tuo dispositivo e il tuo target, nonché il punto di partenza per la sessione di profilazione.
C'è un nuovo contatori modello che è stato combinato con eventi per fornire una vista potente in singoli eventi della CPU. È anche possibile specificare formule per misurare aggregati di eventi, rapporti e altro.
In Xcode 6, gli strumenti vengono forniti con il supporto per Swift e puoi anche utilizzarlo per profilare le estensioni per app. C'è anche il supporto per le configurazioni del simulatore. Le configurazioni del simulatore sono trattate come dispositivi da Instruments, facilitando il lancio o il collegamento ai processi nel simulatore.
Apple continua a migliorare i suoi strumenti di sviluppo e questo è visto in tutte le principali versioni di Xcode. Xcode 6 migliora i suoi predecessori per offrire agli sviluppatori strumenti che miglioreranno il loro flusso di lavoro e miglioreranno significativamente l'intero processo di sviluppo.