Modifiche aggiuntive ai framework tvOS 10
Oltre alle principali modifiche apportate a tvOS, Apple ha apportato modifiche e miglioramenti a diversi framework esistenti in tvOS 10.
Addizioni del framework AVFoundation
Il framework AVFoundation include i miglioramenti seguenti:
- In tvOS 10 l'app non implementa più 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
AVPlayerLooper
classe semplifica il ciclo di un determinato elemento multimediale durante la riproduzione.
Miglioramenti del framework AVKit
Il framework AVKit include i miglioramenti seguenti:
- L'app ha ora il controllo sul comportamento di salto di AVPlayerViewController , in modo che un movimento di salto possa passare all'elemento successivo nella playlist o avanzare all'interno dell'elemento corrente.
Miglioramenti dei dati principali
tvOS 10 include i miglioramenti seguenti al framework Core Data:
- Gli oggetti NSManagedObjectContext radice supportano errori e recupero simultanei senza serializzazione.
- La classe NSPersistentStoreCoordinator gestisce un pool di archivi dati SQLite.
- 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.
- Uso di alto livello
NSPersistenceContainer
per fare riferimentoNSPersistentStoreCoordinator
a , NSManagedObjectModel e altre risorse di configurazione di Core Data. - Sono stati aggiunti diversi nuovi metodi pratici per
NSManagedObject
semplificare l'esecuzione dei recupero e la creazione di sottoclassi.
Per altre informazioni, vedere Informazioni di riferimento sul framework di dati di Base di Apple.
Miglioramenti della grafica principale
tvOS 10 include i miglioramenti seguenti al framework grafico Core:
- La nuova classe CGColorConverterRef può essere usata per eseguire una serie di conversioni di colori.
Miglioramenti delle immagini principali
tvOS 10 apporta i miglioramenti seguenti al framework Core Image:
- 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. - L'app 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.
- 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.
Sono stati aggiunti anche i nuovi filtri immagine core seguenti:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Miglioramenti di base
Sono stati apportati i miglioramenti seguenti al framework foundation per tvOS 10:
- 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.
- Sono state aggiunte diverse nuove proprietà alla classe NSLocal per acquisire informazioni locali e i formati di visualizzazione disponibili.
- Usare la nuova classe NSMeasurement per eseguire la conversione tra unità di misura diverse (UOM) o eseguire calcoli su valori in UOM diversi.
- Usare la nuova classe NSMeasurementFormatter per formattare le misurazioni localizzate per la visualizzazione all'utente finale.
- Usare le nuove classi NSUnit e NSDimension per la rappresentazione di UOM specifici.
Miglioramenti di GameKit
Sono stati apportati i miglioramenti seguenti al framework GameKit in tvOS 10:
- 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 che implementa 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 tvOS 10:
- 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.
- È stata aggiunta una nuova API Decision Tree (GKDecisionTree e GKDecisionNode) per migliorare l'intelligenza artificiale per la creazione di giochi.
- Il supporto 3D è stato aggiunto ai comportamenti esistenti di individuazione del percorso e dell'agente usando le nuove classi GKAgent3D e GKGraphNode3D .
- Usare la nuova classe GKMeshGraph per fornire percorsi di ricerca naturale e ad alte prestazioni.
- Le nuove classi GKScene e GKSKNodeComponent semplificano la combinazione di GameplayKit e SpriteKit che mai.
Miglioramenti dei metalli
I miglioramenti seguenti sono stati apportati al framework Metal in tvOS 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.
- Usare la specializzazione funzione per creare una raccolta altamente ottimizzata di funzioni di combinazione di materiale e luce per una scena.
- 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.
Per altre informazioni, vedere la Guida alla programmazione metal di Apple.
Miglioramenti agli shader delle prestazioni metal
I miglioramenti seguenti sono stati apportati al framework Metal Performance Shader in tvOS 10:
- Molti nuovi kernel sono stati aggiunti al framework Metal Performance Shader per consentire all'app di sfruttare calcoli altamente ottimizzati e paralleli ai dati, ad esempio le conversioni dello spazio dei colori e le operazioni di rete neurale.
Miglioramenti di ModelIO
Sono stati apportati i miglioramenti seguenti al framework ModelIO in tvOS 10:
- Il formato di file USD è ora supportato.
- Usare la nuova
MDLMaterialPropertyGraph
classe per supportare facilmente le modifiche di runtime ai modelli. - Il supporto di Signed Distance Field è stato aggiunto alla classe MDLVoxelArray .
- Usare la nuova
MDLLightProbeIrradianceDataSource
classe per facilitare il posizionamento del probe di luce.
Miglioramenti di SceneKit
Sono stati apportati i miglioramenti seguenti al framework SceneKit in tvOS 10:
- 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 al meglio con l'illuminazione basata sull'ambiente, usare la
LightingEnvironment
proprietà per assegnare l'illuminazione basata su immagini all'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). - 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 filmatic al gioco.
- 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.
- 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.
- 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 .
Miglioramenti di SpriteKit
Sono stati apportati i miglioramenti seguenti al framework SpriteKit in tvOS 10:
- 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. - Gli shader personalizzati possono fornire attributi (
SKAttribute
) che possono essere configurati separatamente da ogni nodo che usa lo shader specificando un valore attributo (SKAttributeValue
). - 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 UIKit
Sono stati apportati i miglioramenti seguenti al framework UIKit in tvOS 10:
- L'API messa a fuoco è stata migliorata per supportare lo stato attivo dell'elemento non di visualizzazione oltre a
UIViews
. Gli elementi che supportano lo stato attivo devono implementare l'interfacciaIUIFocusItem
. - La nuova
UIGraphicsRender
classe fornisce un metodo orientato agli oggetti per la creazione di bitmap o PDF da rendering UIKit o Core Graphics e sostituisce il metodo deprecatoUIGraphicsBeginImageContext
. - La
UIUserInterfaceStyle
classe è stata aggiunta per determinare quale tema dell'interfaccia utente (scuro o chiaro) è attualmente attivo. - È stato aggiunto un nuovo supporto di animazione completamente interattivo, basato su oggetti, interrompibile e collegato a movimenti. Per altre informazioni, vedere Guida di riferimento al protocollo UIViewAnimating di Apple, UIViewPropertyAnimator Class Reference, UITimingCurveProvider Protocol Reference, UICubicTimingParameters Class Reference (Riferimento alla classe UICubicTimingParameters) e UISpringTimingParameter Class Reference (Informazioni di riferimento sulla classe UITimingCurveProvider), UICubicTimingParameters Class Reference (Riferimento alla classe UICubicTimingParameters) e UISpringTimingParameter Class Reference (Informazioni di riferimento sulla classe UISpringTimingParameter).
- Il nuovo
UIPreviewInteraction
eUIPreviewInteractionDelegate
consentire all'app 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. - 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.
- 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 aggiornarlo quando i dispositivi
UIContentSizeCategory
cambiano, utilizzare laAdjustsFontForContentSizeCategory
proprietà delUIContentSizeCategoryAdjusting
delegato. - L'app può ora controllare l'aspetto della notifica per gli elementi della barra delle schede, ad esempio testo e colore di sfondo.
- Il controllo Aggiorna in ora è supportato in tutte le sottoclassi della visualizzazione di scorrimento e della visualizzazione di scorrimento , ad esempio
UICollectionView
. - Il
OpenURL
metodo dellaUIApplication
classe viene chiamato in modo asincrono supporta ora un gestore di completamento chiamato dopo il completamento dell'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.