Modifiche aggiuntive ai framework iOS 10
Questo articolo illustra altre modifiche o miglioramenti secondari ai framework esistenti per iOS 10.
Aggiunte di AV Foundation Framework
Il framework AVFoundation include i miglioramenti seguenti:
- In iOS 10 lo sviluppatore non deve più implementare comportamenti AVPlayerItem diversi in base al tipo di contenuto. È sufficiente impostare la
Rate
proprietà e AVFoundation determinerà quando è disponibile contenuto sufficiente per la riproduzione senza bloccarsi. - La nuova classe AVCapturePhotoOutput sostituisce la classe deprecata
AVCaptureStillImageOutput
e fornisce un metodo unificato per la gestione di tutti i flussi di lavoro fotografici fornendo controllo e monitoraggio sofisticati del processo di acquisizione e supporto per nuove funzionalità, ad esempio Live Foto e il formato di acquisizione RAW. - La nuova
AVPlayerLooper
classe semplifica il ciclo di un determinato elemento multimediale durante la riproduzione. - La
AVAssetDownloadURLSession
classe consente il download e la riproduzione successiva dei flussi HLS crittografati FairPlay. - Per impostazione predefinita, la classe AVCaptureSession supporta automaticamente l'acquisizione wide-color e wide-gamut quando l'hardware del dispositivo lo supporta. Per altre informazioni, vedere Le informazioni di riferimento sulla compatibilità dei dispositivi iOS di Apple.
Aggiunte AVKit
Il framework AVKit include ora la nuova UpdatesNowPlayingInfoCenter
proprietà per indicare quando deve essere aggiornato il Centro informazioni di riproduzione.
Miglioramenti dei dati principali
iOS 10 include i miglioramenti seguenti al framework Core Data:
- Gli oggetti NSManagedObjectContext con archivi dati SQLite nella modalità journal WAL supportano la nuova funzionalità di generazione di query in cui i contesti oggetto gestito (MOC) possono essere aggiunti a versioni di database specifiche per il recupero e l'errore delle transazioni future.
- Gli oggetti NSManagedObjectContext radice supportano errori e recupero simultanei senza serializzazione.
- La classe NSPersistentStoreCoordinator gestisce un pool di archivi dati SQLite.
- Sono stati aggiunti diversi nuovi metodi pratici per
NSManagedObject
semplificare l'esecuzione dei recupero e la creazione di sottoclassi. - Uso di alto livello
NSPersistenceContainer
per fare riferimentoNSPersistentStoreCoordinator
a , NSManagedObjectModel e altre risorse di configurazione di Core Data.
Per altre informazioni, vedere Informazioni di riferimento sul framework di dati di Base di Apple.
Miglioramenti delle immagini principali
iOS 10 apporta i miglioramenti seguenti al framework core image:
- Lo sviluppatore può ora elaborare le immagini in uno spazio colore esterno allo spazio di lavoro del contesto immagine principale convertendo e fuori dallo spazio colore prima e dopo l'elaborazione.
- Per i dispositivi iOS che usano le CPU A8 o A9, il formato di immagine RAW è ora supportato. Core Image offre ora il supporto per decodificare immagini RAW dalla fotocamera iSight predefinita o da una fotocamera di terze parti. Utilizzare i
FilterWithImageData
metodi oFilterWithImageURL
della classe CIFilter per elaborare immagini RAW. - Sono stati apportati diversi miglioramenti alle prestazioni di
UIImage
rendering (se supportati dagli archivi di immagini core) negliUIImageView
oggetti . UIImage
gli oggetti con tag wide-gamut eseguiranno il rendering come colore a gamut wide negli oggetti neiUIImageView
dispositivi iOS che supportano un colore wide.- Il codice kernel dell'immagine principale può ora richiedere formati di output pixel specifici.
- Il
ImageWithExtent
metodo della classe CIFilter può essere utilizzato per inserire l'elaborazione personalizzata nell'operazione di filtro. Core Image richiamerà il callback specificato tra i filtri durante l'elaborazione di un'immagine per l'output o la visualizzazione.
Sono stati aggiunti anche i nuovi filtri immagine core seguenti:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Aggiunte di movimento di base
Novità di iOS 10, core motion framework include eventi di pedometro che consentono a un'app di ricevere notifiche veloci e in tempo reale dell'utente che sospendono e riprendendo il rilevamento durante l'esecuzione. Usa cmpedometro per registrare gli eventi del pedometro in primo piano o in background.
Miglioramenti di base
Sono stati apportati i miglioramenti seguenti al framework Foundation per iOS 10:
Usare la nuova classe NSMeasurementFormatter per formattare le misurazioni localizzate per la visualizzazione all'utente finale.
Usare la nuova classe NSDateInterval per eseguire calcoli relativi a intervalli di data e ora, ad esempio le durate, per confrontare gli intervalli e testare le intersezioni degli intervalli.
Usare la nuova classe NSMeasurement per eseguire la conversione tra unità di misura diverse (UOM) o eseguire calcoli su valori in UOM diversi.
Usare le nuove classi NSUnit e NSDimension per la rappresentazione di UOM specifici.
Sono state aggiunte diverse nuove proprietà alla classe NSLocal per acquisire informazioni locali e i formati di visualizzazione disponibili.
Miglioramenti di GameKit
Sono stati apportati i miglioramenti seguenti al framework GameKit in iOS 10:
- L'app Game Center è stata deprecata e rimossa da iOS. Se l'app usa GameKit, deve presentare la propria interfaccia per visualizzare funzionalità gamekit, ad esempio classifiche e così via.
- Un nuovo tipo di account solo iCloud è stato implementato dalla classe GKCloudPlayer .
- La nuova classe GKGameSession offre una soluzione generalizzata per la gestione dell'archiviazione dei dati persistente nel Game Center.
GKGameSession
mantiene un elenco di giocatori e l'app è responsabile dell'implementazione di come e quando la data del partecipante viene archiviata, recuperata o scambiata tra i giocatori. In molte istanze le sessioni di gioco possono sostituire corrispondenze basate su turni esistenti, corrispondenze in tempo reale o metodi di salvataggio permanente del gioco.
Miglioramenti di GameplayKit
I miglioramenti seguenti sono stati apportati al framework GameplayKit in iOS 10:
- Usare la nuova classe GKMeshGraph per fornire percorsi di ricerca naturale e ad alte prestazioni.
- La generazione di rumore procedurale è stata aggiunta e può essere usata per migliorare il realismo nelle trame dall'aspetto naturale, aggiungere realismo ai movimenti della fotocamera e contribuire a generare mondi di gioco ricchi.
- Usare il partizionamento spaziale per partizionare i dati del mondo del gioco per una ricerca efficiente.
- È stato aggiunto un nuovo strategist monte Carlo (GKDestinazioniCarloStrategist) per un calcolo completo possibile dello spostamento.
- Il supporto 3D è stato aggiunto ai comportamenti esistenti di individuazione del percorso e dell'agente usando le nuove classi GKAgent3D e GKGraphNode3D .
- Le nuove classi GKScene e GKSKNodeComponent semplificano la combinazione di GameplayKit e SpriteKit che mai.
- È stata aggiunta una nuova API Decision Tree (GKDecisionTree e GKDecisionNode) per migliorare l'intelligenza artificiale per la creazione di giochi.
Miglioramenti di HealthKit
I miglioramenti seguenti sono stati apportati al framework HealthKit in iOS 10:
- Sono state aggiunte nuove chiavi di metadati per i tipi di meteo (ad esempio
HKWeatherConditionClear
eHKWeatherConditionCloudy
) e i tipi di allenamento (ad esempioHKWorkoutActivityTypeFlexibility
eHKWorkoutActivityTypeWheelchairRunPace
) aggiunti. - La nuova
HKCDADocument
classe è stata aggiunta per rappresentare un documento formattato CDA (Clinical Document Architecture). - Usa la nuova classe HKWorkoutConfiguration per specificare e
LocationType
ActivityType
di un allenamento. - Sono stati aggiunti il nuovo HKWheelchairUseObject e il
WheelchairUse
metodo della classe HKHealthStore per lavorare con i dati sanitari correlati alla sedia a rotelle.
Miglioramenti di HomeKit
Sono stati apportati i miglioramenti seguenti al framework HomeKit in iOS 10:
- Sono stati aggiunti nuovi servizi e caratteristiche.
- Un iPad può essere configurato in modo da fungere da hub HomeKit per fornire l'accesso accessorio remoto, eseguire trigger di automazione e abilitare le autorizzazioni utente condivise.
- È stato aggiunto il supporto per gli accessori fotocamera e campanello.
- Sono state fornite altre configurazioni e contesto per gli accessori.
Per altre informazioni, vedere la documentazione introduttiva a HomeKit .
Miglioramenti dei metalli
Sono stati apportati i miglioramenti seguenti al framework Metal in iOS 10:
- Le app e i giochi 3D possono ora usare Tessellation per eseguire in modo efficiente il rendering di scene e geometrie complesse tramite LA GPU.
- Fornire un controllo granulare dell'allocazione delle risorse per ottimizzare le prestazioni delle app basate su Metal usando heap delle risorse e destinazioni di rendering senza memoria.
- Usare la specializzazione funzione per creare una raccolta altamente ottimizzata di funzioni di combinazione di materiale e luce per una scena.
Per altre informazioni, vedere la Guida alla programmazione metal di Apple.
Miglioramenti di ModelIO
Sono stati apportati i miglioramenti seguenti al framework ModelIO in iOS 10:
- Il formato di file USD è ora supportato.
- Il supporto di Signed Distance Field è stato aggiunto alla classe MDLVoxelArray .
- Usare la nuova
MDLLightProbeIrradianceDataSource
classe per facilitare il posizionamento del probe di luce. - Usare la nuova
MDLMaterialPropertyGraph
classe per supportare facilmente le modifiche di runtime ai modelli.
Miglioramenti Foto
Sono stati apportati i miglioramenti seguenti al framework Foto in iOS 10:
- Usare le classi CIImageProcessorInput e CIImageProcessorOutput per sfruttare la nuova funzionalità core image processor per eseguire modifiche.
- La modifica di foto live è ora disponibile per le app che supportano il framework di Foto e per le estensioni di modifica delle foto (per l'uso all'interno delle app Foto e Fotocamera).
- Usa la nuova classe PHLivePhotoEditingContext per applicare modifiche sia al video che al contenuto ancora di Live Foto.
Miglioramenti di ReplayKit
Sono stati apportati i miglioramenti seguenti al framework ReplayKit in iOS 10:
- Usare le classi RPScreenRecorder, RPBroadcastActivityViewController e RPBroadcastController per supportare la trasmissione di contenuti multimediali registrati tramite siti di terze parti.
- Le estensioni Broadcast UI e Broadcast Upload sono necessarie per supportare i servizi broadcast replayKit di terze parti nell'app.
Miglioramenti di SceneKit
Sono stati apportati i miglioramenti seguenti al framework SceneKit in iOS 10:
- La classe SCN Fotocamera può offrire maggiore realismo usando funzionalità e effetti HDR. Usa l'esposizione adattiva per creare effetti automatici o usare vignetta, colorazione e gradazione dei colori per aggiungere effetti fillmatici al gioco.
- SceneKit include ora un nuovo sistema PBR (Physically Based Rendering) per ottenere risultati più realistici con la creazione di asset più semplice.
- Usare il nuovo modello di ombreggiatura SCNLightingModelPhysicallyBased per ottenere un'ampia gamma di effetti di ombreggiatura realistici, richiedendo al tempo stesso solo tre proprietà fondamentali (
Diffuse
Metalness
eRoughness
). - Poiché l'ombreggiatura PBR funziona meglio con l'illuminazione basata sull'ambiente, usare la
LightingEnvironment
proprietà per assegnare l'illuminazione basata su immagine a un'intera scena. - Usare la
IESProfileURL
proprietà per importare apparecchi di illuminazione reali che definiscono l'illuminazione in base a valori reali, ad esempio intensità (ini) e temperatura del colore (in gradi Kelvin). - Entrambe le funzionalità della fotocamera PBR e HDR offrono risultati migliori rispetto alle tecniche di rendering tradizionali e, di conseguenza, SceneKit esegue ora tutti i calcoli dei colori in uno spazio colori lineare (usando la gamma di colori P3 nei dispositivi a colori wide).
- SceneKit ora corrisponde a tutti i colori leggendo le informazioni sul profilo colore.
- SceneKit interpreta i valori dei componenti colore in uno spazio di colore RGB lineare per tutti i tipi di shader.
- Il rendering dello spazio dei colori lineare e il colore wide possono essere disabilitati specificando le
SCNDisableLinearSpaceRendering
chiavi eSCNDisableWideGamut
nell'appInfo.plist
. - Compilare primati poligoni arbitrari (caricati da file o generati a livello di codice) per specificare la geometria con la nuova classe SCNGeometryPrimitiveTypePolygon .
- Poiché SceneKit legge e modifica le informazioni sul profilo colore nelle immagini di trama, usa Cataloghi asset per tutte le immagini per assicurarsi che queste informazioni vengano fornite.
Miglioramenti di SpriteKit
Sono stati apportati i miglioramenti seguenti al framework SpriteKit in iOS 10:
- Gli shader personalizzati possono fornire attributi (
SKAttribute
) che possono essere configurati separatamente da ogni nodo che usa lo shader specificando un valore attributo (SKAttributeValue
). - Le mappe affiancate supportano ora forme di riquadri quadratiche, esagonali e isometriche per giochi 2D, 2.5D e scorrimento laterale usando le
SKTileMapMode
classi ,SKTileGroup
SKTileGroupRule
eSKTileSet
. - Usare la nuova
SKWarpGeometry
classe per estendere o distorcere il rendering di SKSpriteNode o SKEffectNode . La nuova classe SKAction può essere usata per animare le transizioni tra effetti di distorsione. - La classe SKView fornisce diversi nuovi metodi per fornire un controllo granulare su quando e su come viene eseguito il rendering di una scena.
Miglioramenti di ScrollView
Sono stati apportati i miglioramenti seguenti al controllo ScrollView in iOS 10.3:
UIScrollView
includere ora laIndexDisplayMode
proprietà per controllare la modalità di visualizzazione dell'indice mentre l'utente scorre come diUIScrollViewIndexDisplayMode
:Automatic
- La visualizzazione dell'indice è controllata dal sistema operativo.AlwaysHidden
- La visualizzazione dell'indice è sempre nascosta.
Miglioramenti di UIKit
Sono stati apportati i miglioramenti seguenti al framework UIKit in iOS 10:
- La nuova API UIPasteboard fornisce nuove opzioni (ad esempio limitazioni di durata) e dichiarerà automaticamente tipi di contenuto compatibili per i tipi di classe comuni.
- È stato aggiunto un nuovo supporto di animazione completamente interattivo, basato su oggetti e interrompibile e può essere collegato ai movimenti. Per altre informazioni, vedere Informazioni di riferimento sul protocollo UIViewAnimating di Apple, informazioni di riferimento sulla classe UIViewPropertyAnimator, informazioni di riferimento sul protocollo UITimingCurveProvider, informazioni di riferimento sulla classe UICubicTimingParameters e informazioni di riferimento sulla classe UISpringTimingParameter.
- Il nuovo
UIPreviewInteraction
eUIPreviewInteractionDelegate
consentire all'app per sviluppatori di fornire un'interfaccia personalizzata per le operazioni di visualizzazione e pop. - La nuova
UIAccessibilityCustomRotor
classe consente all'app di fornire funzionalità personalizzate specifiche del contesto per l'assistive technology, ad esempio Voice Over. - Usare i
UIAccessibilityIsAssistiveTouchRunning
simboli eUIAccessibilityAssistiveTouchStatusDidChangeNotification
per determinare se AssistiveTouch è abilitato. - Usa i
UIAccessibilityHearingDevicePairedEar
simboli eUIAccessibilityHearingDevicePairedEarDidChangeNotification
per ottenere lo stato di qualsiasi apparecchi acustico MFi associato. - Per supportare il tipo dinamico nelle etichette, i campi di testo e le caselle di testo usano il nuovo
PreferredFontForTextStyle
metodo dellaUIFont
classe . - Per decidere se un elemento deve aggiornare il tipo di
UIContentSizeCategory
carattere quando il dispositivo cambia, utilizzare laAdjustsFontForContentSizeCategory
proprietà delUIContentSizeCategoryAdjusting
delegato. - Il
OpenURL
metodo dellaUIApplication
classe viene chiamato in modo asincrono e ora supporta un gestore di completamento chiamato dopo il completamento dell'azione di apertura. - Avviare la condivisione di CloudKit e modificarne le proprietà usando le nuove
UICloudSharingController
classi eUICloudSharingControllerDelegate
. - Sfruttare i vantaggi delle celle prelettura per migliorare l'esperienza di scorrimento di
UICollectionViews
con il nuovoUICollectionViewDataSourcePrefetching
delegato. - Lo sviluppatore può ora controllare l'aspetto della notifica per gli elementi della barra delle schede (ad esempio testo e colore di sfondo).
- Il controllo Aggiorna è ora supportato in tutte le sottoclassi della visualizzazione di scorrimento e della visualizzazione di scorrimento , ad esempio
UICollectionView
.
Miglioramenti di WebKit
Sono stati apportati i miglioramenti seguenti al framework WebKit in iOS 10:
- È stato aggiunto il supporto per la visualizzazione e il pop alla
WKWebView
classe . Utilizzare ilShouldPreviewElement
metodo per determinare se una determinata visualizzazione Web deve visualizzare un'anteprima.