La WWDC, non dimentichiamolo, è pur sempre una conferenza dedicata agli sviluppatori. Al di là dei vari iOS, watchOS e altri importanti update per gli utenti, Apple ha presentato tantissime novità proprio per gli sviluppatori.
In un precedente articolo abbiamo già evidenziato alcune di queste novità, ma le tecnologie realizzate da Apple per gli sviluppatori sono davvero tante.
SwiftUI
SwiftUI è sicuramente la novità più importante per gli sviluppatori, visto che offre un nuovo framework intuitivo che consente di realizzare interfacce utente complesse e potenti. Grazie a un codice dichiarativo semplice e di facile comprensione, gli sviluppatori possono dare vita a UI ricche di funzioni evolute e animazioni fluide. SwiftUI permette di risparmiare tempo, poiché offre una grande quantità di funzioni automatiche fra cui layout dell’interfaccia, Modalità scura, Accessibilità, supporto per la scrittura da destra a sinistra e internazionalizzazione.
Le app SwiftUI vengono eseguite in nativo e sono veloci. Inoltre, SwiftUI è la stessa API integrata in iOS, iPadOS, macOS, watchOS e tvOS, quindi gli sviluppatori possono realizzare più rapidamente e facilmente app native avvincenti per tutte le piattaforme Apple.
Apple ha creato anche Swift Packages, componenti riutilizzabili di codice che gli sviluppatori possono utilizzare nei loro progetti. È stato anche annunciato che GitHub aggiungerà il supporto per i pacchetti Swift nel registro dei pacchetti Github. Ciò consentirà agli sviluppatori di condividere il proprio codice e trovare snippet di codice che possono liberamente utilizzare.
Tante le funzionalità di accessibilità aggiornate, incluso il controllo vocale che è stato mostrato durante il keynote. Queste funzionalità includono un maggiore controllo della selezione dello schermo, inclusa la possibilità di sovrapporre una griglia per consentire il targeting preciso della regione. Gli sviluppatori avranno accesso alle funzionalità di accessibilità e saranno incoraggiati a testare le proprie app utilizzando il controllo vocale per rendere le proprie app più accessibili alle persone con disabilità. Inoltre, il supporto per il mouse verrà aggiunto in iOS 13 e iPadOS 13 come un’altra funzionalità di accessibilità.
Xcode 11
Il nuovo strumento di design grafico dell’UI integrato in Xcode 11 consente di assemblare facilmente un’interfaccia grafica con SwiftUI senza dover scrivere codice. Il codice Swift viene infatti generato automaticamente.
Quando viene modificato, gli aggiornamenti all’UI appaiono all’istante nello strumento di design. Questo significa che gli sviluppatori possono visualizzare anteprime automatiche in tempo reale dell’aspetto e del comportamento della loro UI man mano che assemblano, testano e perfezionano il codice. La possibilità di passare agevolmente dal design grafico alla compilazione di codice rende ancora più efficiente lo sviluppo di UI e consente una più stretta collaborazione fra sviluppatori di software e creatori di interfacce utente.
Le anteprime possono essere visualizzate direttamente sui dispositivi Apple connessi, come iPhone, iPad, iPod touch, Apple Watch e Apple TV: ciò permette agli sviluppatori di vedere come l’app reagisce al Multi-Touch o come funziona con la fotocamera e i sensori integrati. E possono farlo in tempo reale, direttamente mentre creano l’interfaccia. Xcode supporta ora anche pacchetti di codice per tutte le piattaforme Apple.
Realtà Aumentata
ARKit 3 migliora le esperienze AR. Con Motion Capture, gli sviluppatori possono integrare i movimenti delle persone nelle loro app, mentre con People Occlusion, i contenuti AR appaiono in maniera naturale davanti o dietro le persone, per dare vita a esperienze AR in stile “schermo verde”. ARKit 3 consente inoltre di tracciare fino a tre volti con la fotocamera frontale e offre supporto simultaneo per le fotocamere anteriore e posteriore. ARKIt 3 offre anche sessioni collaborative, per passare più rapidamente a un’esperienza AR condivisa.
RealityKit è stato realizzato appositamente per la realtà aumentata. Offre un rendering fotorealistico, oltre a una precisa mappatura ambientale e il supporto per gli effetti della fotocamera come rumore e sfocatura, per rendere i contenuti virtuali davvero difficili da distinguere dalla realtà. RealityKit presenta inoltre strumenti per animazioni, fisica e audio spaziale.
Reality Composer è una nuova app per iOS, iPadOS e Mac che consente di prototipare e realizzare facilmente esperienze AR anche agli sviluppatori che non hanno esperienza con il 3D. Con un’interfaccia drag-and-drop e una libreria di oggetti 3D e animazioni di alta qualità, Reality Composer permette di posizionare, spostare e ruotare oggetti AR per dare vita a un’esperienza di realtà aumentata, che può essere integrata direttamente in un’app in Xcode o esportata in AR Quick Look.
Core ML e Create ML
Adesso, Core ML 3 supporta l’accelerazione di più tipi di modelli di machine learning in tempo reale. Con più di 100 livelli supportati, le app possono usare modelli per offrire esperienze che comprendono a fondo concetti visivi, vocali e legati al linguaggio naturale.
Inoltre, adesso gli sviluppatori possono aggiornare i modelli di apprendimento automatico direttamente sul dispositivo grazie alle opzioni di personalizzazione. Questa tecnica offre agli sviluppatori l’opportunità di fornire funzioni personalizzate senza compromettere la privacy dell’utente. Con Create ML, un’app dedicata allo sviluppo di soluzioni di apprendimento automatico, è possibile realizzare modelli di apprendimento senza bisogno di compilare codice. Gli sviluppatori possono usare il training a modelli multipli con diversi set di dati per questi nuovi tipi di modelli, come rilevamento degli oggetti, attività e classificazione sonora.
Da iPad a Mac
I nuovi strumenti e API semplificano il passaggio di app iPad sulla piattaforma Mac. Con Xcode, gli sviluppatori possono aprire un progetto iPad e, spuntando una singola casella, aggiungere in automatico funzioni specifiche per Mac e capacità di windowing, nonché adattare elementi peculiari della piattaforma, come i controlli touch, all’utilizzo tramite tastiera e mouse. In questo modo potranno realizzare più facilmente la versione Mac nativa della loro app.
Le app Mac e iPad condividono lo stesso progetto e lo stesso codice sorgente, perciò tutte le modifiche apportate al codice si traducono sia nella versione per iPadOS che nella versione per macOS dell’app. Questo permetterà agli sviluppatori di risparmiare tempo e risorse, dato che un unico team può lavorare su entrambe le versioni. Avere le stesse versioni sia per Mac che per iPad consente agli utenti di utilizzare le loro app sfruttando le peculiarità di ogni piattaforma, incluse la precisione e la velocità di tastiera, mouse e trackpad sul Mac e le funzioni specifiche del Mac come la Touch Bar.
Apple Watch
watchOS 6 introduce nuove opportunità che gli sviluppatori dovrebbero cogliere al volo. Infatti, adesso gli sviluppatori possono progettare e realizzare app per Apple Watch che operano in maniera del tutto indipendente, anche senza iPhone.
Possono inoltre sfruttare il Neural Engine di Apple su Apple Watch Series 4 usando Core ML. Grazie all’integrazione di modelli con training Core ML nelle app e all’interpretazione on-device degli input, gli utenti potranno avere a disposizione app ancora più smart. Una nuova API di streaming audio permette di riprodurre contenuti in streaming dalle app multimediali di terze parti direttamente da Apple Watch. Una API di runtime esteso offre alle app più tempo per portare a termine attività su Apple Watch mentre l’app è ancora in primo piano, anche se lo schermo è spento: per esempio l’accesso ai sensori consentiti per battito cardiaco, posizione e movimento.
Privacy
Apple ha adottato una serie di accorgimenti per tutelare al meglio la privacy degli utenti. Alcune di queste modifiche giocoforza riguardano anche gli sviluppatori. Con il nuovo sistema di log-in di cui parleremo a breve, Apple limita ancora di più il tracciamento degli utenti. Tracciamento completamente vietato nelle app per bambini, così come le pubblicità (qui maggiori info).
iOS 13 integrerà più controlli sul tracciamento della posizione degli utenti. Ad esempio, gli utenti potranno condividere la propria posizione con un’app la prima volta, per poi impostare le opzioni privacy in modo tale che quell’app richieda sempre l’autorizzazione agli accessi successivi. Se l’app viene autorizzata al tracciamento continuo in background, Apple fornirà all’utente un report completo sull’utilizzo dei dati.
Il nuovo sistema operativo limiterà anche l’adozione delle tecniche di stile-fingerprinting, che vengono sfruttate per utilizzare le informazioni dei segnali Bluetooth e Wi-Fi per individuare la posizione dell’utente.
Apple ha realizzato anche un nuovo tool chiamato Real User Indicator, pensato per ridurre il numero di bot che si registrano fittiziamente a servizi mobile, desktop e web. Il tool è in grado di riconoscere la possibile presenza di un bot, quindi informa lo sviluppatore dell’app che, a sua volta, può intraprendere ulteriori azioni per verificare l’autenticità del nuovo account.
Non è chiaro in che modo Apple genera questo valore, soprattutto considerando che ciò non avviene attraverso il controllo incrociato di qualsiasi informazione inserita, ad esempio un indirizzo e-mail o un numero di telefono con i dati online. E’ probabile che Apple sfrutti sistemi di IA per monitorare la velocità con cui determinati campi vengono riempiti durante la procedura di registrazione del nuovo account, cosa che indicherebbe che dietro al nuovo account c’è in realta un bot automatizzato. Apple potrebbe anche prendere in considerazione fattori come la velocità della verifica dell’account via e-mail o persino l’analisi delle informazioni dattilografate per il nome o i campi degli indirizzi del processo di registrazione.
Acesso ID Apple
Grazie a Sign In with Apple, gli utenti possono accedere facilmente a siti web e app con il loro ID Apple.
In questo modo viene migliorato il “time to engagement” dell’utente. Dato che tutti gli account sono protetti tramite un’autenticazione a due passaggi, Sign In with Apple permette agli sviluppatori di migliorare la sicurezza delle app. Include inoltre una nuova funzione antifrode che offre ai creatori di software la certezza che i nuovi utenti siano persone reali, e non bot o account “farmed”. Grazie a un nuovo servizio di trasmissione email incentrato sulla privacy, gli utenti possono ricevere messaggi importanti dallo sviluppatore dell’app senza dover divulgare il loro indirizzo email personale (che Apple trasformerà in una sequenza casuale di lettere e numeri). Questo renderà impossibile associare un dispositivo ad un indirizzo e-mail. E poiché Apple non traccia le attività degli utenti nelle app e non crea un profilo dell’utilizzo delle app, le informazioni sul business dello sviluppatore e sui suoi utenti restano private.
Altre novità
Apple ha introdotto anche altre novità “minori” per gli sviluppatori:
- Con PencilKit gli sviluppatori possono aggiungere facilmente il supporto per Apple Pencil nelle loro app; include una nuova palette di strumenti.
- SiriKit aggiunge il supporto per app audio di terze parti, incluse app per musica, podcast e audiolibri; gli sviluppatori possono ora integrare Siri direttamente nelle loro app per iOS, iPadOS e watchOS, offrendo agli utenti la possibilità di controllare l’audio con un semplice comando vocale.
- MapKit offre ora agli sviluppatori nuove funzioni quali overlay vettoriali, filtri per punti di interesse, limiti a zoom e panoramica e supporto per la Modalità scura.
- In aggiunta ai miglioramenti per le lingue mirati a SwiftUI, Swift 5.1 aggiunge Module Stability, le fondamenta essenziali per realizzare framework compatibili a livello binario in Swift.
- Le nuove famiglie di dispositivi Metal semplificano la condivisione di codice fra più tipi di GPU su tutte le piattaforme Apple, mentre il supporto per iOS Simulator rende ancora più facile sviluppare app Metal per iOS e iPadOS.
Importante novità anche per il sistema di report dei bug, con Apple che sta pian piano abbandonando Bug Reporter per la segnalazione dei feedback da parte dei beta testare. Tutti gli sviluppatori saranno infatti indirizzati sulla piattaforma Feedback Assistant. Quando viene condiviso un bug, lo sviluppatore riceverà un Feedback ID per tenere traccia del bug all’interno dell’app o sul sito web. Feedback Assistant sostituisce Bug Reporter, che non sarà più disponibile tanto che il classico URL bugreporter.apple.com ora reindirizza a feedbackassistant.apple.com. Su quel sito, Apple spiega il cambiamento agli sviluppatori e li ringrazia per il loro contributo. L’applicazione Feedback Assistant è inclusa in iOS, iPadOS e macOS beta e raccoglie automaticamente la diagnostica sul dispositivo. E’ possibile inviare segnalazioni anche tramite il sito Web di Feedback Assistant.
Si prospetta un anno molto interessante per le app.