# Xcode

Xcode è un ambiente di sviluppo integrato (Integrated development environment, IDE), completamente sviluppato e mantenuto da Apple, contenente una suite di strumenti utili allo sviluppo di software per i sistemi macOS, iOS, iPadOS, watchOS e tvOS.
Inizialmente era fornito gratuitamente in bundle con il sistema operativo, di recente invece non è più in bundle con il sistema operativo, ma è possibile scaricarlo gratuitamente dal Mac App Store. Estende e rimpiazza il precedente tool di sviluppo della Apple, Project Builder, che era stato ereditato dalla NeXT e lavora in congiunzione con Interface Builder (proveniente da NeXT), un tool grafico per realizzare interfacce grafiche.

## Descrizione
### Caratteristiche

Una delle caratteristiche tecnologicamente più avanzate di Xcode è che supporta la distribuzione in rete del lavoro di compilazione. Usando Bonjour e Xgrid, Xcode è in grado di compilare un progetto su più computer riducendo i tempi; supporta inoltre la compilazione incrementale, ovvero Xcode è in grado di compilare il codice mentre viene scritto, in modo da ridurre il tempo di compilazione.
Dalla versione 3.1, Xcode è anche lo strumento per sviluppare le applicazioni native per iPhone e iPod touch. Dalla versione 3.2 è invece possibile sviluppare anche applicazioni per iPad.
Con il rilascio della versione 6 è stato aggiunto il nuovo linguaggio di programmazione Swift, presentato durante la WWDC14, in concomitanza alla presentazione di iOS 8 e OS X Yosemite. La versione 6 inoltre introduce caratteristiche importanti come il Live Rendering, che permette di visualizzare gli oggetti in tempo reale mentre vengono sviluppati, così come verrebbero visualizzati in runtime. Anche le modifiche fatte alle proprie custom view vengono mostrate in tempo reale e si possono definire comportamenti diversi per diverse misure del display che sono mostrati sempre in tempo reale con proprietà definite da Interface Builder e anche con dati fittizi per pre-popolare le UI in modo da poter avere esempi reali di come apparirà l'interfaccia grafica.

### Composizione

L'applicazione principale della suite è l'IDE Xcode. La suite include inoltre gran parte della documentazione per sviluppatori Apple, e Interface Builder, uno strumento utilizzato per costruire in modo molto semplice interfacce grafiche belle e semplici.
Xcode 4.1 includeva una versione modificata di GCC. Da Xcode 3.1 al 4.6.3 è incluso il compilatore llvm-gcc. Da Xcode 3.2 è inclusa una versione proprietaria di llvm. Da Xcode 4.2, Apple propone LLVM come compilatore di default e da Xcode 5.0 llvm è l'unico compilatore presente nella suite.
Da Xcode 6 è possibile compilare il linguaggio proprietario Swift, sviluppato da Apple sotto la direzione di Chris Lattner, lo stesso sviluppatore a capo del progetto LLVM.
Xcode 6 include anche un altro strumento sviluppato da Lattner, denominato Playground. Esso è un'area di test dove poter iniziare ad apprendere il linguaggio velocemente, scrivendo codice con risultati mostrati in tempo reale. Nella WWDC14 Lattner mostra come sviluppare un intero gioco in breve tempo grazie al playground.
Xcode supporta C, C++, Objective-C, Objective C++, Java, AppleScript, Python, Ruby, Rex e Swift, con una varietà di modelli di programmazione inclusi e non limitati a Cocoa, Carbon e Java. Tool di terze parti permettono il supporto a GNU Pascal, Free Pascal, Ada, C#, Perl e D.

## Cronologia delle versioni
### 1.x serie

Xcode 1 è stata pubblicata nell'autunno 2003, basata su Project Builder con aggiornamenti alla UI, ZeroLink, Fix & Continue, supporto per lo sviluppo distribuito e Code Sense indexing.
Xcode 1.5 migliora ulteriormente il code completion e il debugger.

### 2.x serie

Xcode 2 è stato distribuito con Mac OSX v10.4 Tiger. Include il Quartz Composer, miglior Code Sense indexing per Java, supporto ad Ant, e Apple Reference Library, uno strumento per cercare e leggere online la documentazione Apple installata sul computer, o online.

### 3.x serie

Xcode 3 è stato distribuito con Mac OS X v10.5 Leopard. Include il supporto al refactoring, una documentazione context-sensitive, e Objective-C 2.0. Fornisce le Snapshot del progetto che forniscono una forma base di version control.

### 4.x serie

Xcode 4 è stata annunciata nella WWDC2010. Unisce in un singolo bundle Xcode e Interface Builder.
Da questa versione, il software è stato reso disponibile sul Mac App Store gratuitamente per tutti gli sviluppatori.

### 5.x serie

Xcode 5 è stata annunciata nella WWDC2013.

### 6.x serie

Xcode è stata annunciata nella WWDC2014. Include playground, un'estensione del framework XCTest e il live debugging con una visuale 3d di tutti i layer nella pila delle view. Con questa versione viene introdotto il linguaggio di programmazione Swift, che espande Objective-C con caratteristiche innovative e moderne, come i generics, le tuple, ecc.

### 7.x serie

Xcode 7 è stata annunciata nella WWDC2015. Supporta lo sviluppo di software per i sistemi operativi iOS 9, OS X El Capitan e watchOS, inoltre introduce la versione 2.0 del linguaggio di programmazione Swift, presentato l'anno precedente.
A partire da questa versione è inoltre possibile compilare ed installare app sui propri dispositivi iOS, anche senza disporre di una licenza da sviluppatore registrato.

### 8.x serie

Xcode 8 è stato annunciato nella WWDC2016. Supporta Swift 3.0, una nuova interfaccia e una nuova funzionalità che rileva i bug in modo più approfondito.

### 9.x serie

Xcode 9 è stato annunciato nella WWDC2017. Supporta Swift 4.0, una nuova opzione per testare le proprie app wireless e una nuova interfaccia per cercare le assegnazioni corrispondenti.

### 10.x serie

Xcode 10 è stato annunciato nella WWDC2018. Supporta Swift 4.2 e una nuova interfaccia introduce la Dark mode. È stato introdotto il folding, ovvero la capacità di accorpare righe per leggere il codice più velocemente.

### 11.x serie

Xcode 11 è stato annunciato nella WWDC2019. Supporta Swift 5.0 e il framework SwiftUI 1.0.

### 12.x serie

Xcode 12 è stato annunciato nella WWDC2020. Supporta Swift 5.3 e il framework SwiftUI 2.0. È stato introdotto il supporto di sviluppo per SoC Apple Silicon (ARM).

### 13.x serie

Xcode 13 è stato annunciato nella WWDC2021. Supporta Swift 5.5 e il framework SwiftUI 3.0. Include SDK per iOS 15, iPadOS 15, macOS Monterey, tvOS 15 e watchOS 8. Xcode 13 presenta una nuova interfaccia e la nuova funzionalità Xcode Cloud. Dalla versione 13.3, Xcode richiede macOS Monterey.

### 14.x serie

Xcode 14 è stato annunciato nella WWDC2022. Xcode 14 è più veloce e più personalizzabile. Le anteprime live di SwiftUI sono interattive in maniera predefinita. Le icone hanno dimensioni standardizzate e le lingue implementate da Xcode 14 sono state affinate. Include SDK per iOS 16, iPadOS 16, macOS Ventura, tvOS 16 e watchOS 9. Richiede macOS Monterey 12.5.