Novità di Devs in iOS 12 e Xcode 10?

Cosa starai creando

Tra le fan di un altro WWDC, Apple ci ha presentato iOS 12. Questa è una delle versioni più focalizzate sia per i consumatori che per gli sviluppatori, sottolineando l'ottimizzazione delle prestazioni. Oltre a concentrarsi su prestazioni e ottimizzazione, iOS presenta alcune iterazioni di funzionalità su molte delle librerie che conosciamo e amiamo. Ciò include l'evoluzione degli emoji (con memojis), le scorciatoie Siri, la realtà aumentata e l'apprendimento automatico. 

Per gli sviluppatori, Apple si è concentrata sul fornire alla sua community una serie di nuovi strumenti e SDK per potenziare la prossima generazione di app iOS. Gli sviluppatori ottengono anche molti miglioramenti a Xcode e i nuovi framework di Apple, ARKit, Core ML e SiriKit, hanno ricevuto aggiornamenti significativi delle funzionalità.

Il Machine Learning si è evoluto rapidamente da quando è stato introdotto per la prima volta nel 2017, con Core ML 2 che consente agli sviluppatori mainstream di progettare, addestrare e testare i modelli. ARKit 2, la seconda iterazione di Apple della sua libreria di realtà aumentata, è un'altra libreria che è migliorata distintamente quest'anno, grazie a tre importanti novità: 

  • esperienze condivise abilitare esperienze AR multiplayer
  • esperienze persistenti che consentono il salvataggio e il ripristino degli stati
  • Rilevamento oggetti 3D oltre al tracciamento delle immagini in movimento 2D. 

Apple ha anche migliorato le notifiche aggiungendo la possibilità di raggruppare e assegnare priorità alle notifiche contestualmente e ha creato il nuovo framework Auto-fill della password per l'integrazione di app di gestione delle password di terze parti. 

Siri Shortcuts è l'aggiunta di Apple a SiriKit, che consente agli sviluppatori di terze parti di integrare scorciatoie intelligenti personalizzate nella ricerca spotlight e nella schermata di blocco, nonché di usare la loro voce per chiamare ed eseguire quell'azione personalizzata. 

Xcode 10 introduce anche una nuova gamma di miglioramenti, dalla modalità oscura a modifica multi-cursore, nuove immagini di controllo del codice sorgente nell'editor del codice sorgente e un sistema di compilazione completamente nuovo. Xcode 10 supporta anche test paralleli, riducendo drasticamente i tempi di completamento dei test.

Obiettivi di questo articolo 

In questo articolo, imparerai tutto sulle nuove modifiche che arriveranno su iOS 12 per gli sviluppatori. Ci occuperemo di quanto segue:

  • machine learning con Core ML 2 e framework Natural Language
  • realtà aumentata con ARKit 2
  • notifiche interattive
  • Scorciatoie Siri con SiriKit
  • Autenticazione e autenticazione automatica della password
  • Xcode 10
  • altri cambiamenti

Machine Learning

L'apprendimento automatico, introdotto in iOS 11, non si è solo evoluto quest'anno, ma ha compiuto enormi passi avanti verso la diffusione del machine learning. La successiva iterazione di Core ML, versione 2, in linea con il tema delle prestazioni e della velocità, è ora del 30% più veloce, con le dimensioni del modello di intelligenza artificiale ridotte fino al 75%. In modo più significativo, Apple ha drasticamente semplificato le librerie e gli strumenti per facilitare l'adozione da parte di tutti senza precedenti ambiti matematici o di apprendimento automatico. 

Core ML ha mostrato un grande potenziale quando è stato introdotto per la prima volta, ma non è stato accolto dalla più ampia comunità di sviluppatori iOS. Tuttavia, con l'introduzione di Crea ML quest'anno (un framework macOS), chiunque può creare modelli Core ML da utilizzare nelle proprie app con maggiore facilità. Questo nuovo framework si integra con i parchi giochi nel nuovo Xcode per consentirti di interagire visivamente con i tuoi flussi di lavoro di creazione del modello in tempo reale, semplicemente aggiungendo alcune righe di codice Swift. 

Oltre a supportare un'approfondita formazione approfondita con oltre 30 tipi di livelli, supporta anche modelli standard come ensemble di alberi, SVM e modelli lineari generalizzati .... Essendo basato su tecnologie di basso livello come Metal e Accelerate, Core ML sfrutta senza problemi CPU e GPU per offrire le massime prestazioni ed efficienza. (WWDC)

Molti dei prodotti Apple hanno già approfittato di Core ML 2, tra cui Siri e Camera, attraverso la sua visione computerizzata e il nuovissimo framework Natural Language. Il framework Natural Language, nuovo per iOS 12, supporta l'analisi del testo in linguaggio naturale per dedurre specifici metadati e viene utilizzato insieme a Crea ML per la formazione e l'implementazione di modelli di elaborazione del linguaggio naturale personalizzati. Per ulteriori informazioni sulla creazione e l'esecuzione di modelli Core ML, consultare i seguenti due documenti di riferimento Apple: 

  • Scopri come costruire modelli Core ML
  • Ulteriori informazioni su come eseguire modelli Core ML

ARKit 2

ARKit, anch'esso annunciato lo scorso anno, ha guadagnato importanza sul palco del WWDC di quest'anno, con ARKit 2 che cattura immediatamente l'immaginazione del consumatore e dell'ingegneria grazie a tre importanti novità:

  • esperienze AR condivise
  • esperienze AR persistenti 
  • Funzionalità di rilevamento oggetti 3D

Dimostrato dal vivo sul palco del keynote del WWDC di quest'anno, le esperienze AR condivise ti consentono di incorporare più usi simultaneamente nella realtà aumentata. In altre parole, ora puoi creare rapidamente esperienze di realtà aumentata multiplayer in cui non solo puoi far giocare più utenti, ma anche spettatori in terza persona che osservano le stesse esperienze. 

Le persistenti esperienze di AR consentono agli sviluppatori di implementare funzionalità per salvare sessioni in un determinato stato, da riprendere in una fase successiva. Cioè, se stai costruendo una scultura lego virtuale, puoi salvare e riprendere lo stato, e gli oggetti virtuali dovrebbero persistere nello stesso spazio e tempo senza dover ricominciare da capo. 

Infine, le funzionalità di rilevamento e rilevamento di oggetti 3D sono state migliorate da quando ARKit 1.5, con la possibilità di tracciare completamente le immagini 2D, inclusi oggetti mobili come cartoline, giornali o riviste. Puoi, ad esempio, tenere una cartolina di un luogo e spostare la carta, mentre ARKit traccia e riconosce continuamente il tuo oggetto. ARKit 2 ti consente inoltre di rilevare oggetti 3D noti del mondo reale come televisori, mobili o sculture. 

Notifiche di gruppo

Le notifiche sono state migliorate in modo significativo in iOS 12, con la possibilità di assegnare priorità e raggruppare i messaggi, una funzionalità che gli utenti e gli sviluppatori anticipavano da tempo. 

La possibilità di raggruppare le notifiche contestualmente offre agli utenti finali un'esperienza utente più concisa, che è stata disponibile per molti anni agli utenti Android. Gli utenti possono, ad esempio, utilizzare i raggruppamenti delle notifiche in modo che un thread di conversazione in un'app o notifiche di giochi facciano parte di una parcella di gruppo piuttosto che singole notifiche che occupano l'intero schermo. Invece, con un singolo passaggio, gli utenti possono eliminare un gruppo di notifiche contestuali.

Le notifiche hanno anche la priorità per importanza in modo che le notifiche essenziali come messaggi, e-mail o una notifica di calendario appaiano sopra le notifiche dei social media. Gli sviluppatori di terze parti possono anche classificare una notifica come avviso con prioritizzazione, con l'approvazione del team di revisione di Apple.

SiriKit & Intents

Anche SiriKit ha ricevuto una certa attenzione su questo WWDC con l'aggiunta di Siri Shortcuts. Questa funzione suggerisce in modo intelligente le scorciatoie quando sono necessarie, associando e prevedendo routine e comportamenti dell'utente. Attraverso la nuova API di scorciatoie, gli utenti possono eseguire rapidamente e comodamente attività sulla schermata di blocco o sulla schermata di ricerca utilizzando queste scorciatoie visivamente o tramite le scorciatoie vocali di Siri, nonché creando le proprie scorciatoie. 

Un esempio potrebbe essere la visualizzazione di un coffee shop sulla schermata di blocco a causa del comportamento degli utenti di camminare fuori la mattina e ordinare una bevanda al mojito alla menta. Oltre al suggerimento visivo, l'utente sarebbe anche in grado di usare Siri e dire "Ordina la mia bevanda preferita di caffè da Philz", o creare una scorciatoia personalizzata che attiva quell'azione. 

Servizi di autenticazione

Apple ha introdotto un'intera nuova libreria AuthenticationServices che integra i gestori di password come LastPass o 1Password con la funzione Riempimento automatico password del sistema operativo. Precedentemente, gli utenti avevano accesso solo alle credenziali memorizzate nel portachiavi iCloud e l'accesso alle password di terze parti memorizzate in app come 1Password significava che gli utenti dovevano passare da una all'altra per ottenere il nome utente e le informazioni sulla password.

All'interno della barra QuickType, gli utenti possono accedere alle proprie credenziali dalle app di gestione delle password di terze parti. Gli sviluppatori hanno anche la capacità, attraverso l'implementazione del nuovo ASWebAuthenticationSession classe, per condividere le informazioni di accesso tra una sessione attiva in Safari e la tua app. Funziona come una sorta di handoff password. 

Xcode 10

Apple ha inoltre potenziato gli sviluppatori oltre i nuovi SDK e framework, con notevoli miglioramenti a Xcode e alla toolchain di sviluppo Xcode. L'editor di sorgenti, ad esempio, ha ottenuto alcuni grandi miglioramenti di refactoring, inclusa la modifica multi-cursore in modo da poter modificare rapidamente più righe di codice (cioè metodi diversi) allo stesso tempo.

Xcode 9 ha introdotto per la prima volta l'integrazione con GitHub, dalla creazione e dall'apertura dei repository GitHub dall'interno dell'IDE per interagire con il codice in modo più collaborativo. Xcode 10 si estende oltre GitHub per funzionare con altri due noti distributori di repository, GitLab e Bitbucket. 

Sul lato dell'editor di origine, le modifiche nel repository locale o upstream sono ora evidenziate nella colonna di sinistra, consentendo di visualizzare rapidamente le modifiche apportate al codice e le modifiche non ancora inserite, le modifiche a monte effettuate da altri e i possibili conflitti che richiedono da affrontare prima di commettere. Infine, Xcode 10 genera chiavi SSH per te, se necessario, e le carica sul tuo repository di controllo del codice sorgente. 

Passando alla toolchain, Xcode 10 introduce un sistema di build completamente nuovo per gli sviluppatori e, in linea con il tema della conferenza, migliora le prestazioni e la velocità. Ad esempio, gli sviluppatori che testano le loro app in Simulator possono ora sfruttare la parallelizzazione dei test, la possibilità di eseguire più test contemporaneamente. 

Oltre ai test unitari, gli sviluppatori possono ora eseguire test di integrazione continui su molti diversi tipi di dispositivi simulati, generare cloni di un singolo dispositivo simulato, ottenendo test che si completano in una frazione del tempo che Xcode 9 impiegherebbe. Gli sviluppatori possono scegliere di sfruttare la CPU del proprio Mac per eseguire i test in parallelo o allocare un altro Mac nella rete che ospita Xcode Server per automatizzare la creazione e il testing in parallelo. 

Apple ora è deprecata stampare() dichiarazioni a favore del nuovo OSLog dichiarazioni di cartello, che forniscono una velocità di debug molto maggiore rispetto a stampare(). Gli sviluppatori possono anche implementare strumenti personalizzati per contrassegnare punti significativi in ​​tutto il codice, che vengono poi tracciati attraverso i pannelli all'interno degli strumenti, che appaiono insieme ad altri eventi di analisi (come CPU, memoria o rete), offrendo agli sviluppatori informazioni ancora più approfondite per la risoluzione dei problemi delle loro app. 

Xcode 10 include anche modelli personalizzati per aiutare gli sviluppatori a costruire i propri strumenti con visualizzazioni personalizzate e analisi dei dati, che possono essere riutilizzati e condivisi con altri membri del team o pubblicati con i propri framework. Ci sono altre piccole modifiche alle icone, incluso lo spostamento del contenuto della libreria in una nuova finestra di sovrapposizione invece della parte inferiore dell'ispettore. Ci sono anche altre piccole modifiche alle icone e al layout di Interface Builder.

Altre modifiche

iTunes Connect è stato rinominato in modo appropriato come App Store Connect, insieme ad alcuni miglioramenti per rendere l'interfaccia utente più efficiente e facile da usare. Attraverso la nuova interfaccia web, gli sviluppatori possono creare pagine di prodotti con schermate e anteprime, attivare gli acquisti in-app e impostare abbonamenti, pre-ordini e prezzi introduttivi.

Infine, TestFlight ha ricevuto un importante miglioramento con una nuova funzionalità chiamata TestFlight Public Link, che rende il processo di invitare le persone a testare la tua app molto più facilmente. Laddove in precedenza lo sviluppatore avrebbe dovuto invitare manualmente gli utenti che utilizzavano i loro indirizzi email in un processo ingombrante, ora gli sviluppatori possono creare un "invito aperto" tramite un URL pubblico. 

Conclusione

iOS 12 è una versione molto focalizzata sia per i consumatori che per gli sviluppatori, con particolare attenzione all'ottimizzazione delle prestazioni. Per gli sviluppatori, Xcode e gli strumenti di compilazione e test sono stati ottimizzati con un'enfasi sulla velocità in prima linea e i nuovi framework di Apple come ARKit, Core ML e SiriKit hanno ricevuto aggiornamenti significativi delle funzionalità. 

Nell'arco di due anni, stiamo iniziando a vedere l'incursione di Apple nell'apprendimento automatico evolversi e maturi, con vantaggi che si riversano su altri framework tecnologici, come SiriKit, ARKit e Photos, consentendo agli sviluppatori di creare esperienze utente più intelligenti. Ancora più importante, l'apprendimento automatico è passato dall'essere una libreria di nicchia a uno in cui qualsiasi sviluppatore, indipendentemente dall'esperienza di apprendimento automatico, può addestrare e implementare modelli. 

Con WWDC che fa da preludio agli annunci hardware di Apple a settembre, sarà interessante vedere come la community di sviluppatori abbracci ARKit nella sua seconda iterazione, nello spazio dei giochi multiplayer.