All’inizio di quest’anno, i dirigenti di Apple hanno presentato Swift, che ha lo scopo di sostituire Objective-C come linguaggio di programmazione preferito per Mac e dispositivi iOS. Mentre Objective-C rimane popolare, gli sviluppatori si lamentano spesso di quanto sia difficile da usare; Le funzionalità di Swift elimineranno presumibilmente almeno alcuni di questi problemi.
Nonostante la sua facilità d’uso, gli sviluppatori dovranno comunque dedicare un po ‘ di tempo ad imparare come funziona la lingua. Questo è il primo di alcuni articoli che mostrano come programmare le app iOS utilizzando Swift.
Clicca qui per trovare i lavori di sviluppo Swift.
Prerequisiti
Hai bisogno di un Mac in grado di eseguire OS X Mavericks. Al momento della scrittura, puoi programmare in Swift solo se sei uno sviluppatore iOS registrato. Al fine di sviluppare ed eseguire applicazioni Swift, si dovrebbe avere iOS 8 e la versione 6 di Xcode IDE di Apple. (Devi essere uno sviluppatore registrato per testare le tue app Swift sul tuo iPhone, anche se non devi esserlo per creare ed eseguire quelle stesse app su un emulatore di iPhone o iPad.)
Ai fini di questo tutorial, sto usando una versione beta di XCode 6 (al momento della stesura, ora fino a GM seed). Prima di iniziare, scarica i file di progetto e (se sei uno sviluppatore Apple registrato con l’ultima versione beta di Xcode) installali. Successivamente, apri i file di progetto e caricali in Xcode.
Cosa c’è in un’app Swift?
Per creare un’app Swift, in primo luogo, creerai un progetto Xcode e selezionerai Swift come lingua. Dopo aver compilato alcuni dettagli, il software creerà un progetto che, nel mio caso, ho chiamato FirstExample. Conterrà due file di codice sorgente per iniziare, così come due informazioni.plist file che contengono informazioni sulla tua app e un file storyboard (che non avremo bisogno per questo esempio).
Queste attività sono il minimo necessario per una build di un app in grado di eseguire. Ma se lo esegui all’inizio, avrai solo una schermata vuota: dovrai aggiungere altro codice per farlo fare qualsiasi cosa. Arriveremo a quella parte presto.
Carica il tuo ResumeEmployers vogliono candidati come te. Carica il tuo curriculum. Mostra loro che sei fantastico.
Altri preparativi
Se stai seguendo e hai creato una nuova app, ci sarà un Main.file storyboard nell’elenco dei file di progetto. Si prega di eliminarlo e modificare le informazioni.file plist. Rimuovere la chiave che inizia con ” Nome del file storyboard principale.”
I due file di codice sorgente sono AppDelegate.swift e ViewController.Swift. In iOS, un delegato è una classe che fa qualcosa per conto di un’altra classe e AppDelegate è un luogo in cui gestire stati UIApplication speciali. Ha un sacco di funzioni chiamate da iOS. Ad esempio, se la tua app è in uso e il telefono squilla, verrà chiamata la funzione applicationWillResignActive. Questo è dove dovresti mettere in pausa le attività, disabilitare i timer, ecc.
Ecco un elenco di funzioni che vengono disattivate in AppDelegate.Swift. Se l’applicazione supporta l’elaborazione in background, viene chiamato applicationDidEnterBackground, altrimenti applicationWillTerminate. Queste funzioni sono luoghi di aggiungere il codice per salvare i dati, ma noi usiamo solo il primo:
func applicationWillResignActive(applicazione: UIApplication)
func applicationDidEnterBackground(applicazione: UIApplication)
func applicationWillEnterForeground(applicazione: UIApplication)
func applicationDidBecomeActive(applicazione: UIApplication)
func applicationWillTerminate(applicazione: UIApplication)
Se la prima definizione di funzione ha NSObject: AnyObject, cambiarlo NSObject: NSDictionary. Questa è la funzione a cui dobbiamo aggiungere codice; è dove tutto inizia. Il – > Bool significa che restituisce un valore bool, cioè true o false. Se qualcosa va storto nel tuo codice all’avvio dell’app, restituirà “false” (ma nel nostro caso, restituirà sempre true).
Aggiunta di codice a AppDelegate.swift
Questo è ciò che l’intero AppDelegate.il file swift dovrebbe essere simile. Ho rimosso i commenti per mantenerlo breve:
In Swift si crea un’istanza di una classe come questa: window = UIWindow( .. ) per creare un’istanza di UIWindow. Questo è solo un parametro passato e si chiama frame con il valore UIScreen.Schermo principale ().Limiti, che specifica la dimensione dell’intero schermo. Si noti che window è definita nella classe come UIWindow?. Il punto interrogativo significa che è un tipo facoltativo e che il valore può essere assente o presente; questo è simile a un valore nil in altre lingue, ma funziona per tutti i tipi non solo per le classi.
if let window = controlla che la finestra sia presente e apre la finestra (che è di tipo UIWindow?) in modo che le proprietà e i metodi UIWindow possano essere utilizzati. Prova a commentare la riga” if let “e il corrispondente”} ” (usando//), e otterrai tre errori di compilazione simili, con il primo che dice che backgroundColor non è un membro di UIWindow? È un membro di UIWindow, quindi per ottenere da UIWindow? Per UIWindow, ha bisogno di scartare; aggiungere un “!”alla fine del nome della variabile per scartarlo (finestra!.backgroundColor = funzionerà). Detto questo, senza lo scartamento fornito da” if let”, ogni finestra.anche il riferimento nel blocco dovrebbe essere window!. “If let” fa tutti e tre gli scartamenti.
Le righe all’interno di tale istruzione impostano ViewController come controller di visualizzazione radice, che è il primo creato. I controller di visualizzazione implementati controllano l’intera navigazione dell’app. Apple About View Controller vale la pena leggere se si vuole capire l’intero concetto; tuttavia, in questo caso, tratteremo solo un esempio. Ma cosa fa esattamente un controller di visualizzazione?
Che cos’è un controller di visualizzazione?
L’area dello schermo di un dispositivo iOS è gestita da uno o più controller di visualizzazione, che vengono utilizzati sia per navigare tra i moduli che per gestire le viste su un determinato modulo. Una vista è un’istanza di un UIView o una sottoclasse di un UIView e gestisce un’area rettangolare nel modulo. Se il modulo è l’equivalente di un ufficio di mattoni e malta, i controller della vista del modulo sarebbero i manager in quell’ufficio e le viste sono i dipendenti che eseguono effettivamente il lavoro.
Ogni modulo in un’app è gestito da uno e (a volte più) controller di visualizzazione. Se un modulo ha una parte fissa e una parte a scorrimento, è possibile utilizzare un controller di visualizzazione diverso per ogni parte.
In questa applicazione, c’è un controller di visualizzazione per i controlli, e uno che gestisce l’avviso pop-up quando si fa clic sul pulsante.
Il controller di visualizzazione principale nella mia app ha una vista che comprende un’etichetta (UILabel), una casella di modifica del testo (UITextField) e un pulsante (UIButton). Quando esegui l’app, digita del testo nella casella di modifica del testo, quindi fai clic sul pulsante. Verrà visualizzato un messaggio di avviso che visualizza il testo digitato:
Puoi anche progettare visivamente il flusso dell’utente attraverso la tua app usando gli storyboard, che si basano su meno codice e aiutano a eliminare gli errori che si otterrebbero con la gestione manuale dei controller di visualizzazione nel codice. In questo esempio, tuttavia, tutto viene creato nel codice in ViewController.Swift.
Visualizzazioni e controller di visualizzazione
Ogni controller di visualizzazione ha una proprietà view che è una raccolta di UIViews. I controlli posizionati sullo schermo sono tutte sottoclassi di UIView e vengono aggiunti a questa vista.
Nel nostro esempio, la vista viene creata nel metodo viewDidLoad() del controller di visualizzazione sovrascritto. Ho codificato questo per chiamare la funzione makeLayout (), dove vengono creati i controlli UILabel e UIButton. UITextField è stato creato a livello di classe perché è necessario accedervi nella funzione buttonAction (). Tutti e tre i controlli hanno le loro proprietà impostate in makeLayout(); un controllo non viene visualizzato finché non viene aggiunto alla vista chiamando la vista del controller della vista.Metodo addSubview ().
La classe ViewController inizia in questo modo:
La variabile msg contiene la stringa digitata. Poiché è necessario accedere al campo di testo al di fuori del metodo makeLayout () (vedi sotto), viene creato a livello di classe.
Questo metodo è in tre parti; la prima crea un controllo UILabel con l’istruzione:
let FirstLabel = UILabel ()
Le successive sei righe impostano le proprietà FirstLabel. Si noti che il compilatore è abbastanza intelligente da saperlo .redColor() è l’abbreviazione di UIColor.Colore rosso (). Infine, il controllo viene aggiunto alla vista con l’istruzione addSubview ().
Il controllo UITextField è già stato creato a livello di classe, quindi qui impostiamo le proprietà e lo aggiungiamo alla vista. Il pulsante viene creato, le proprietà impostate e viene aggiunto alla vista.
Il UIButton.addTarget () metodo ha un parametro di azione che specifica il nome della funzione da chiamare quando si fa clic sul pulsante, e ha un finale “:” come “buttonAction:”. Questo chiama il metodo con nome fantasioso buttonAction ().
func buttonAction(sender:UIButton) {
msg = MyEdit.text
showAlert(sender)
}
Il metodo buttonAction() assegna la stringa di testo dal campo di testo alla variabile msg, che viene quindi visualizzata dal metodo ShowAlert (). Questo utilizza il nuovo iOS 8 UIAlertController, che sostituisce il vecchio UIAlertView (ora deprecato). Il metodo showAlert () crea un’istanza di UIAlertController, aggiunge un’azione in modo da avere qualcosa su cui fare clic e quindi chiama presentViewController (), che è un modo per un controller di visualizzazione per passare a un altro.
Commenti sul codice
La parola chiave “var” è usata per dichiarare una variabile mentre “let” è usata per dichiarare una variabile costante o immutabile. Sebbene i controlli siano dichiarati immutabili, ciò significa solo che non è possibile modificare l’istanza di controllo ma è possibile modificarne le proprietà. L’avviso è implementato da un UIAlertController; un altro tipo di controller di visualizzazione.
- Python, Swift, JavaScript, Java: i modi migliori per impararli
- Ecco Apple per insegnarti su Swift
- Un primo sguardo al linguaggio di programmazione Swift di Apple