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 riferimento NSPersistentStoreCoordinatora , 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) negli UIImageView oggetti .
  • UIImage gli oggetti con tag wide-gamut eseguiranno il rendering come colore a gamut wide negli oggetti nei UIImageView 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 (DiffuseMetalnesse Roughness).
  • 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 e SCNDisableWideGamut nell'app Info.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 SKTileMapModeclassi , SKTileGroupSKTileGroupRule e SKTileSet .
  • 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'interfaccia IUIFocusItem .
  • 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 deprecato UIGraphicsBeginImageContext .
  • 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 e UIPreviewInteractionDelegate 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 e UIAccessibilityAssistiveTouchStatusDidChangeNotification per determinare se AssistiveTouch è abilitato.
  • Usa i UIAccessibilityHearingDevicePairedEar simboli e UIAccessibilityHearingDevicePairedEarDidChangeNotification 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 della UIFont classe .
  • Per decidere se un elemento deve aggiornarlo quando i dispositivi UIContentSizeCategory cambiano, utilizzare la AdjustsFontForContentSizeCategory proprietà del UIContentSizeCategoryAdjusting 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 della UIApplication 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 e UICloudSharingControllerDelegate .
  • Sfruttare i vantaggi delle celle prelettura per migliorare l'esperienza di scorrimento di UICollectionViews con il nuovo UICollectionViewDataSourcePrefetching delegato.