iOS 5 è stato rilasciato ufficialmente e gli sviluppatori di iOS non vedono l'ora di iniziare a utilizzare le numerose nuove funzionalità disponibili nell'SDK di iOS 5. In questo articolo, i guru del settore Brandon Trebitowski e Collin Ruffenach riflettono sulle opportunità, le efficienze e le funzionalità più interessanti dell'ultimo SDK. Questo post è assolutamente da leggere per tutti gli sviluppatori di iOS SDK!
Con il rilascio di iOS 5 SDK, la piattaforma di sviluppo iOS ha raggiunto un nuovo livello di maturità. È evidente con questa versione dell'SDK che Apple sta realmente ascoltando i bisogni e le richieste della comunità di sviluppo. Apple non solo ha riconosciuto gli obiettivi comuni e i punti critici espressi dagli sviluppatori iOS, ma ha anche cercato di fornire strumenti a livello SDK che risolvono molti dei problemi comuni che affrontiamo e alleggeriscono completamente alcune delle trappole più frustranti.
Con l'ultimo SDK, una cosa è certa: non è mai stato più eccitante essere uno sviluppatore iOS! Questo articolo ti fornirà una panoramica di base dei miglioramenti che riteniamo più interessanti.
Lo storage iCloud è una nuova enorme funzionalità di iOS 5. Consente agli sviluppatori di sincronizzare automaticamente i dati delle applicazioni tra le piattaforme. Esistono due forme che questo può richiedere: valore-chiave e negozio di documenti.
Mentre il valore-chiave fornirà una bella versione cloud di NSUserDefaults, è molto limitato dallo spazio. La quantità massima di dati che è possibile memorizzare è 64 KB. Stando così le cose, Apple suggerisce di utilizzare questo meccanismo di archiviazione solo per piccole quantità di meta informazioni, come il numero dell'ultima pagina letta in un'applicazione di lettura. Un altro problema con l'archiviazione cloud a valori-chiave è che lo sviluppatore non ha alcun controllo sulla risoluzione dei conflitti. Ogni volta che si verifica un conflitto, viene sempre utilizzato il valore-chiave con il timestamp più recente. In un'applicazione reale, questa può essere o non essere la scelta giusta.
A mio parere, il negozio di documenti sarà l'enorme caratteristica qui. Sono a conoscenza del fatto che sarai in grado di sincronizzare qualsiasi documento che scegli nel cloud. Questo renderà molto più facile creare cose come app per appunti e cose da fare con dati persistenti e distribuiti. Ciò potrebbe essere facilmente ottenuto, ad esempio, scegliendo di sincronizzare il database Sqlite o l'archivio dei dati principali. A differenza del metodo di sincronizzazione dei valori-chiave, gli sviluppatori di archivi di documenti saranno in grado di definire il proprio schema di risoluzione dei conflitti.
Mi sento come se Apple avesse delle cose quasi proprio con la loro implementazione iCloud. I frutti a foglia ridotta credo che manchino all'abilità di interazione dell'utente tra i loro dati. Se dovessero fornire tali meccanismi, i giochi online potrebbero essere completamente facilitati tramite iCloud.
iOS 5 segna l'inizio di quella che sembra essere una relazione abbastanza seria con Twitter. Non sono "ufficiali di Facebook" o altro, ma si vedranno molto l'un l'altro nelle prossime uscite. Apple ha avuto difficoltà a colpire il cavo giusto nel mercato sociale. Ping sembra essere un po 'assente, e sembra che Apple sia pronta a giocare a pallone con Twitter piuttosto che entrare nel gioco. Questo sarà benvenuto notizie a molti sviluppatori. Dopo OAuthcalypse, l'integrazione di Twitter per qualsiasi applicazione è diventata molto più complessa. Con questa versione dell'SDK, iOS gestisce essenzialmente l'autenticazione di Twitter a tuo nome, consentendo agli utenti di abilitare o disabilitare l'autenticazione Twitter di un'app nelle Preferenze di sistema iOS. Apple ora fornisce un controller di visualizzazione comune per la creazione di tweet.
All'interno della rubrica, Apple ha incluso una nuova funzionalità per analizzare Twitter per le immagini del profilo dei contatti. Funziona abbastanza bene e parla degli altri tipi di integrazione che possiamo vedere dagli sviluppatori di app. Tutto ciò si verifica anche a seguito dell'integrazione del caricamento di foto su Twitter, facilitata anche dal nuovo Twitter.framework. Nel complesso, questo rende la lettura e la scrittura su Twitter esponenzialmente più semplici e sembra essere qualcosa che vedremo ancora di più nelle prossime versioni.
Con l'avvento di Xcode 4.0, Interface Builder (IB) è diventato una parte molto più integrante dell'esperienza di sviluppo poiché ora è un componente di Xcode piuttosto che un'applicazione separata. Questa tendenza continua con il miglioramento dell'interfaccia di Interface Builder e l'introduzione di Storyboarding.
Quando si tratta di modifiche all'interfaccia IB attuale, Xcode 4.2 tenta di promuovere una connessione più stretta tra il codice che rappresenta IBOutlet e IBActions e la loro rappresentazione visiva in Xcode. Ciò significa che puoi effettivamente collegare le dichiarazioni del metodo IBAction ai pulsanti che le genereranno e le dichiarazioni di IBOutlet alla Componente UI effettiva a cui fanno riferimento.
Oltre a questo, vedrete anche le rappresentazioni della GUI per cose come UIGestureRecognizers, GLKit Views e Controllers e il nuovo UIStepper.
Storyboarding è l'altra grande nuova storia quando si tratta di IB. In parole povere, lavorare con story board significa non dover mai chiamare pushViewController: animated
o popViewController: animated
ancora. Tutto il flusso dei controller di visualizzazione in movimento su e giù da un controller di navigazione, oltre a presentare le viste in modo modale, può essere fatto visivamente attraverso Storyboarding.
Nel complesso, ciò consente la visualizzazione di tutti i possibili flussi di schermo nell'applicazione, riduce il codice e, soprattutto, consente ai non sviluppatori di contribuire con il proprio input in una forma utilizzabile. Molte volte la conversione da concetto / creatività a implementazione / codice si perde nella traduzione. Con il nuovo approccio dello storyboard, i progettisti possono creare rappresentazioni di flusso che riducono effettivamente la quantità di lavoro richiesta dagli sviluppatori del progetto.
Fin dalla prima versione di iOS, la gestione della memoria è stata un punto critico per gli sviluppatori. Direi che la maggior parte dei crash dell'applicazione è dovuta a una cattiva gestione della memoria. ARC mira a risolvere questo problema prendendo completamente il conteggio di riferimento lontano dagli sviluppatori. Tutti i metodi relativi alla memoria (pubblicazione
, conservare
, autorelease
, ecc.) sono stati deprecati al fine di trarre il massimo vantaggio da ARC.
Ci sono alcuni enormi vantaggi nell'utilizzo di ARC. Innanzitutto, riduce drasticamente la barriera per i nuovi sviluppatori sulla piattaforma iOS, in particolare per gli sviluppatori provenienti da piattaforme come Android che utilizzano Garbage Collection. Ridurrà anche il numero di righe di codice che gli sviluppatori devono scrivere, non avendo più bisogno delle chiamate di memoria per modificare il conteggio dei ritiri. La mia unica preoccupazione per ARC è che gli sviluppatori ora non imparino mai l'importanza di una corretta gestione della memoria. Questo potrebbe portare a pratiche di programmazione pigra e potrebbe creare un aumento delle applicazioni di memoria hogging.
Core Image, un framework che è stato disponibile per gli sviluppatori di OS X per un po 'di tempo, è finalmente disponibile come parte dell'SDK di iOS 5. Consente agli sviluppatori di utilizzare facilmente un'enorme libreria di filtri per la manipolazione di foto e video e fornisce anche un semplice linguaggio per creare i propri filtri. Ora è incredibilmente facile eseguire attività come piastrellatura, mascheratura, fusione e composizione di più immagini.
Ero davvero incuriosito nel vedere che il linguaggio del filtro assomigliava al C di base e viene caricato in fase di runtime. Data questa portabilità, non sarei sorpreso se vediamo un sito web / negozio di terze parti che vende questi filtri nel prossimo futuro.
Per un esempio di potenza del filtro Immagine principale, controlla questo filtro che aggiunge un effetto cristallizzato:
Con il rilascio di iOS 5 pubblicamente, Xcode riceverà anche un aggiornamento a 4.2. Xcode 4.2 ha molti miglioramenti da Xcode 4.1, principalmente relativi alle nuove funzionalità di SDK e iOS 5. Un miglioramento basato su SDK è il perfezionamento di Schemes e dell'integrazione GIT. La tecnologia GIT è diventata la principale tecnologia di controllo dei sorgenti tra gli sviluppatori di iPhone ed è fantastico avere Xcode approfittare di tutte le grandi cose che GIT ha da offrire. Gli schemi sono il nuovo posto in cui si mantengono le cose del tipo di configurazione del progetto. Questo copre il rilascio che stai creando, i framework collegati, gli script di compilazione, ecc. Gli schemi possono essere condivisi e generalmente rendono più semplici le prove e la condivisione dei progetti tra i team.
Le notizie più importanti qui sono la profonda integrazione GIT e SVN. Apple ha preso tutte le capacità del software di controllo del codice sorgente e ha realizzato visualizzazioni di come funzionano in Xcode. I file sono tutti costantemente contrassegnati con aggiornamenti sul loro stato (Aggiunto / Modificato). Ogni file può essere mostrato in visualizzazione storica. Nella visualizzazione storica si ottengono 2 riquadri con una timeline al centro in cui è possibile navigare indietro nel tempo per il file. Ci sono visualizzazioni di colpa complete, commit e push delle interfacce di ingresso e persino display di risoluzione dei conflitti e delle diramazioni. Anche l'integrazione con GITHub è semplice. Tutto sommato, questo è un grande miglioramento. Assicurati di dare un'occhiata a questo documento di Apple, che mette in evidenza tutte le funzionalità in dettaglio.
NewsStand è ancora un altro esempio della maturazione della piattaforma iOS. Durante gli ultimi rilasci, Apple ha iniziato a creare offerte per affrontare i comuni punti critici degli sviluppatori nell'ambiente "sandbox" che hanno creato. Game Center e iCloud sono alcuni esempi generici di questo, ma NewsStand rappresenta un investimento da parte di Apple nel facilitare le esigenze speciali di un tipo specifico di applicazione.
Il framework NewsStand consente agli sviluppatori di fare due cose. Innanzitutto, gli sviluppatori possono inviare una notifica push alle loro applicazioni che li avviano in background e scaricare l'ultimo problema. In secondo luogo, gli sviluppatori possono impostare icone speciali per rappresentare la loro applicazione nella vista di NewsStand. Le applicazioni di NewsStand risiedono tutte in una speciale cartella di NewsStand, e ciò creerà una rappresentazione di oggetti nativi comuni per la "Biblioteca" di problemi sul dispositivo.
Ciò che rimane poco chiaro qui è quale, se del caso, tipo di certificazione sarà richiesto per essere un'applicazione NewsStand. Engadget sarà in grado di creare un'applicazione di tipo NewStand? Sono sicuro che molti blog vorrebbero la possibilità di distribuire contenuti e scaricarli in background per i loro utenti iOS 5+. Sembra esserci una limitazione secondo cui è consentita solo una notifica push di download in background ogni 24 ore, sarà interessante vedere se uno qualsiasi dei media di soli internet sfrutta questo nuovo framework.
Se hai mai guardato un documento di design, confrontato con quello fornito con le impostazioni predefinite di Apple UIKit e poi hai dovuto implementare completamente la tua implementazione per soddisfare le intenzioni dei designer, allora sarai entusiasta dell'introduzione dei controlli personalizzati UIKit! Tutti i principali controlli ora consentono di personalizzare facilmente l'immagine di sfondo, il colore della tinta e le proprietà della posizione del titolo. Sono particolarmente entusiasta della possibilità di impostare la proprietà dell'immagine di sfondo. Ho passato ore a ricreare un UISwitch semplicemente per farlo apparire un po 'diverso.
Questo è un grande passo in avanti in termini di personalizzazione dell'applicazione. Sono sicuro che inizieremo a vedere un'integrazione molto più intelligente dei componenti di Apple UI. Lungo le stesse linee, vedremo anche alcune persone che fanno sembrare orribili i bellissimi componenti di Apple.
Come puoi vedere, iOS 5 è una grande versione. Ha profondi miglioramenti sia per l'SDK che per l'IDE con cui tutti ci sviluppiamo. Mentre abbiamo fatto del nostro meglio per raggiungere i punti principali di questo articolo, ci sono tonnellate di altre caratteristiche di cui non siamo stati in grado di parlare. Ecco una lista rapida di alcune modifiche aggiuntive degne di nota:
Allora, cosa stai aspettando? Vai a prendere iOS 5 e sfruttare tutte queste nuove funzionalità!
Nelle prossime settimane, Mobiletuts + fornirà tutorial approfonditi su molte delle nuove funzionalità di iOS 5 SDK, tra cui Storyboard, Twitter Framework, Core Image Framework, Supporto di NewsStand e altro ancora!
Diteci di cosa scrivere votando sotto per gli argomenti che vi interessano di più:
Brandon Trebitowski è uno sviluppatore di software e autore di Albuquerque, New Mexico. Brandon ha conseguito una laurea in Informatica presso l'Università del New Mexico e ha sviluppato software negli ultimi 10 anni. Nell'agosto del 2008, ha avviato iCodeBlog.com per insegnare agli aspiranti sviluppatori come scrivere software per l'iPhone. Dopo che il blog è stato acquisito da ELC Technologies nel dicembre del 2008, ha iniziato a lavorare a tempo pieno per lo sviluppo di software mobile.
Da allora, Brandon ha co-autore un libro di sviluppo iOS chiamato iOS 4 in azione ed è diventato lo sviluppatore di applicazioni mobili leader di ELC Technologies. Ha una forte passione per la programmazione e ama condividerla con gli altri.
Puoi seguire gli annunci di Brandon sul suo twitter @brandontreb.
Vuoi ottenere la guida più aggiornata su iOS SDK? Afferra iOS 4 in azione, a cui Brandon ha contribuito.
Collin Ruffenach è uno sviluppatore iOS con ELC Technologies con sede a Portland, OR. Collin ha guadagnato un B.S. in Computer Systems Engineering e un M.S. in Computer Science nel 2010 dalla Arizona State University. La sua ricerca ruotava attorno allo sviluppo di iOS in scenari basati sulla domotica.
Dal 2008, Collin ha contribuito a iCodeBlog, dove ha pubblicato sia articoli che screencast su diversi argomenti di programmazione iOS da quando è stato rilasciato per la prima volta l'SDK di iOS. Collin ha recentemente contribuito a un nuovo libro chiamato Fondamenti di Objective-C con Manning Publishing.
Puoi seguire i post di Collin sul suo twitter: @cruffenach.
Vuoi perfezionare quelle abilità Objective-C? Scopri i Fondamenti di Objective-C, a cui Collin ha contribuito.
Grazie per aver letto!