Mudanças adicionais nas estruturas do tvOS 10
Além das grandes mudanças no tvOS, a Apple fez modificações e melhorias em várias estruturas existentes no tvOS 10.
Adições do AVFoundation Framework
A estrutura AVFoundation inclui os seguintes aprimoramentos:
- No tvOS 10, o aplicativo não implementa mais comportamentos AVPlayerItem diferentes com base no tipo de conteúdo. Basta definir a propriedade e o
Rate
AVFoundation determinará quando conteúdo suficiente estará disponível para reprodução sem parar. - A nova
AVPlayerLooper
classe facilita o loop de uma determinada mídia durante a reprodução.
Aprimoramentos do AVKit Framework
A estrutura AVKit inclui os seguintes aprimoramentos:
- O aplicativo agora tem controle sobre o comportamento de pular do AVPlayerViewController para que um gesto de pular possa se mover para o próximo item na lista de reprodução ou avançar dentro do item atual.
Aprimoramentos de dados principais
O tvOS 10 inclui os seguintes aprimoramentos na estrutura Core Data:
- Os objetos NSManagedObjectContext raiz oferecem suporte a falhas e buscas simultâneas sem serialização.
- A classe NSPersistentStoreCoordinator mantém um pool de armazenamentos de dados SQLite.
- Os objetos NSManagedObjectContext com armazenamentos de dados SQLite no Modo de Diário WAL oferecem suporte ao novo recurso de geração de consulta em que os Contextos de Objeto Gerenciado (MOC) podem ser fixados em versões específicas do banco de dados para futuras transações de busca e falha.
- Usando o alto nível
NSPersistenceContainer
para fazer referência aoNSPersistentStoreCoordinator
, NSManagedObjectModel e outros recursos de configuração de dados principais. - Vários novos métodos de conveniência foram adicionados para facilitar a
NSManagedObject
realização de buscas e a criação de subclasses.
Para obter mais informações, consulte a Referência do Core Data Framework da Apple.
Aprimoramentos gráficos principais
O tvOS 10 inclui os seguintes aprimoramentos na estrutura gráfica Core:
- A nova classe CGColorConverterRef pode ser usada para executar uma série de conversões de cores.
Aprimoramentos de imagem principal
O tvOS 10 faz os seguintes aprimoramentos na estrutura Core Image:
- O
ImageWithExtent
método da classe CIFilter pode ser usado para inserir processamento personalizado na operação de filtro. A Imagem Principal invocará o retorno de chamada fornecido entre os filtros ao processar uma imagem para saída ou exibição. - O aplicativo agora pode processar imagens em um espaço de cores fora do espaço de cores de trabalho do contexto da Imagem Central, convertendo o espaço de cores antes e depois do processamento.
- Vários aprimoramentos de desempenho de renderização foram feitos para
UIImage
renderização (quando apoiada por repositórios de imagens principais) emUIImageView
objetos. UIImage
objetos marcados com ampla gama serão renderizados como cores de ampla gama emUIImageView
objetos em dispositivos iOS que oferecem suporte a cores amplas.- O código do kernel Core Image agora pode solicitar formatos de saída de pixel específicos.
Além disso, os seguintes novos filtros de imagem principal foram adicionados:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Aprimoramentos da Fundação
Os seguintes aprimoramentos foram feitos na estrutura Foundation para tvOS 10:
- Use a nova classe NSDateInterval para fazer cálculos de intervalo de data e hora, como durações, para comparar intervalos e testar interseções de intervalo.
- Várias novas propriedades foram adicionadas à classe NSLocal para adquirir informações locais e os formatos de exibição disponíveis.
- Use a nova classe NSMeasurement para converter entre diferentes Unidades de Medida (UOM) ou executar cálculos em valores em UOMs diferentes.
- Use a nova classe NSMeasurementFormatter para formatar medidas localizadas para exibição ao usuário final.
- Use as novas classes NSUnit e NSDimension para representar UOMs específicos.
Aprimoramentos do GameKit
Os seguintes aprimoramentos foram feitos na estrutura do GameKit no tvOS 10:
- Um novo tipo de conta somente do iCloud foi implementado pela classe GKCloudPlayer .
- A nova classe GKGameSession fornece uma solução generalizada para gerenciar o armazenamento de dados persistente no Game Center.
GKGameSession
mantém uma lista de jogadores e o aplicativo é responsável por implementar como e quando a data do participante é armazenada, recuperada ou trocada entre os jogadores. Em muitos casos, as Sessões de Jogo podem substituir partidas baseadas em turnos existentes, partidas em tempo real ou métodos persistentes de salvamento de jogos.
Aprimoramentos do GameplayKit
As seguintes melhorias foram feitas na estrutura do GameplayKit no tvOS 10:
- A geração de ruído processual foi adicionada e pode ser usada para melhorar o realismo em texturas de aparência natural, adicionar realismo aos movimentos de câmera e ajudar a gerar mundos de jogo ricos.
- Use o Particionamento Espacial para particionar os dados do mundo do jogo para uma pesquisa eficiente.
- Um novo estrategista de Monte Carlo (GKMonteCarloStrategist) foi adicionado para um cálculo exaustivo de possíveis movimentos.
- Uma nova API de árvore decisória foi adicionada (GKDecisionTree e GKDecisionNode) para aprimorar a IA de construção de jogos.
- O suporte 3D foi adicionado aos comportamentos existentes de agente e localização de caminhos usando as novas classes GKAgent3D e GKGraphNode3D .
- Use a nova classe GKMeshGraph para fornecer caminhos de alto desempenho e aparência natural.
- As novas classes GKScene e GKSKNodeComponent tornam a combinação de GameplayKit e SpriteKit mais fácil do que nunca.
Aprimoramentos de Metais
Os seguintes aprimoramentos foram feitos na estrutura Metal no tvOS 10:
- Aplicativos e jogos 3D agora podem usar o Tessellation para renderizar com eficiência cenas complexas e geometria por meio da GPU.
- Use a Especialização de Função para criar uma coleção altamente otimizada de funções de combinação de material e luz para uma cena.
- Forneça controle refinado da alocação de recursos para otimizar o desempenho de aplicativos baseados em Metal usando heaps de recursos e destinos de renderização sem memória.
Para saber mais, consulte o Guia de Programação de Metais da Apple.
Aprimoramentos de sombreadores de desempenho de metal
Os seguintes aprimoramentos foram feitos na estrutura Metal Performance Shaders no tvOS 10:
- Muitos novos kernels foram adicionados à estrutura Metal Performance Shaders para permitir que o aplicativo aproveite os cálculos paralelos de dados altamente otimizados, como conversões de espaço de cores e operações de rede neural.
Aprimoramentos de ModelIO
Os seguintes aprimoramentos foram feitos para a estrutura ModelIO no tvOS 10:
- O formato de arquivo USD agora é suportado.
- Use a nova
MDLMaterialPropertyGraph
classe para oferecer suporte facilmente a alterações de tempo de execução em modelos. - O suporte a campo de distância assinado foi adicionado à classe MDLVoxelArray .
- Use a nova
MDLLightProbeIrradianceDataSource
classe para auxiliar na colocação da Sonda de Luz.
Aprimoramentos do SceneKit
Os seguintes aprimoramentos foram feitos na estrutura do SceneKit no tvOS 10:
- O SceneKit agora inclui um novo sistema de Renderização Fisicamente Baseada (PBR) para resultados mais realistas com criação de ativos mais simples.
- Use o novo modelo de sombreamento SCNLightingModelPhysicallyBased para produzir uma ampla gama de efeitos de sombreamento realistas, exigindo apenas três propriedades fundamentais (
Diffuse
eMetalness
Roughness
). - Como o sombreamento PBR funciona melhor com iluminação baseada em ambiente, use a propriedade para atribuir iluminação baseada em imagem para bronzear toda a
LightingEnvironment
cena. - Use a
IESProfileURL
propriedade para importar luminárias do mundo real que definem a base de iluminação em valores do mundo real, como intensidade (em lúmens) e temperatura de cor (em graus Kelvin). - A classe SCNCamera pode fornecer maior realismo usando recursos e efeitos HDR. Use a exposição adaptável para criar efeitos automáticos ou use vinhetas, fringing de cores e gradação de cores para adicionar efeitos filmáticos ao jogo.
- Os recursos de câmera PBR e HDR fornecem melhores resultados do que as técnicas tradicionais de renderização e, como resultado, o SceneKit agora executa todos os cálculos de cores em um espaço de cores linear (usando a gama de cores P3 em monitores de dispositivos de cores amplas).
- Agora, a cor do SceneKit corresponde a todas as cores lendo as informações do perfil de cores.
- O SceneKit interpreta valores de componentes de cores em um espaço de cores RGB linear para todos os tipos de sombreador.
- Como o SceneKit lê e ajusta as informações de perfil de cor em imagens de textura, use Catálogos de Ativos para todas as imagens para garantir que essas informações sejam fornecidas.
- Tanto a renderização de espaço de cores linear quanto a de cores amplas
Info.plist
podem ser desabilitadas especificando asSCNDisableLinearSpaceRendering
teclas eSCNDisableWideGamut
no . - Crie primatas de polígono arbitrários (carregados de arquivos ou gerados programaticamente) para especificar a geometria com a nova classe SCNGeometryPrimitiveTypePolygon .
Aprimoramentos do SpriteKit
Os seguintes aprimoramentos foram feitos na estrutura SpriteKit no tvOS 10:
- Os mapas de mosaico agora suportam formas de mosaico quadrado, hexagonal e isométrico para jogos 2D, 2.5D e de rolagem lateral usando as
SKTileMapMode
classes ,SKTileGroup
SKTileGroupRule
eSKTileSet
. - Use a nova
SKWarpGeometry
classe para esticar ou distorcer a renderização SKSpriteNode ou SKEffectNode . A nova classe SKAction pode ser usada para animar transições entre efeitos de deformação. - Os sombreadores personalizados podem fornecer atributos (
SKAttribute
) que podem ser configurados separadamente por cada nó que usa o sombreador fornecendo um Valor de Atributo (SKAttributeValue
). - A classe SKView fornece vários novos métodos para dar controle refinado sobre quando e como uma cena é renderizada.
Aprimoramentos do UIKit
Os seguintes aprimoramentos foram feitos para a estrutura UIKit no tvOS 10:
- A API de foco foi aprimorada para oferecer suporte ao foco de item não visualizado, além
UIViews
do . Os itens que suportam o foco devem implementar aIUIFocusItem
interface. - A nova
UIGraphicsRender
classe fornece um método orientado a objeto de criação de bitmaps ou PDFs a partir da renderização UIKit ou Core Graphics e substitui o método preteridoUIGraphicsBeginImageContext
. - A
UIUserInterfaceStyle
classe foi adicionada para determinar qual tema da interface do usuário (escuro ou claro) está ativo no momento. - Um novo suporte de animação totalmente interativo, baseado em objetos e interruptível foi adicionado e pode ser vinculado a gestos. Consulte UIViewAnimating Protocol Reference da Apple, UIViewPropertyAnimator Class Reference, UITimingCurveProvider Protocol Reference, UICubicTimingParameters Class Reference e UISpringTimingParameter Class Reference para obter mais informações.
- O novo
UIPreviewInteraction
eUIPreviewInteractionDelegate
permitir que o aplicativo forneça uma interface personalizada para operações de visualização e pop. - A nova
UIAccessibilityCustomRotor
classe permite que o aplicativo forneça funcionalidades personalizadas e específicas do contexto para tecnologias assistivas, como o Voice Over. - Use os símbolos e
UIAccessibilityAssistiveTouchStatusDidChangeNotification
para determinar se oUIAccessibilityIsAssistiveTouchRunning
AssistiveTouch está habilitado. - Use os
UIAccessibilityHearingDevicePairedEar
símbolos eUIAccessibilityHearingDevicePairedEarDidChangeNotification
para obter o status de qualquer aparelho auditivo MFi emparelhado. - A nova API UIPasteboard fornece novas opções (como limitações de tempo de vida) e declarará automaticamente tipos de conteúdo compatíveis para tipos de classe comuns.
- Para oferecer suporte ao Tipo Dinâmico em rótulos, campos de texto e caixas de texto, use o
UIFont
novoPreferredFontForTextStyle
método da classe. - Para decidir se um elemento deve atualizar sua fonte quando os dispositivos
UIContentSizeCategory
forem alterados, use aAdjustsFontForContentSizeCategory
propriedade doUIContentSizeCategoryAdjusting
representante. - O aplicativo agora pode controlar a aparência do selo para itens da barra de guias, como texto e cor de plano de fundo.
- O controle de atualização agora é suportado em todas as subclasses de modo de exibição de rolagem e exibição de rolagem (como
UICollectionView
). - O
OpenURL
método da classe é chamado de forma assíncronaUIApplication
agora oferece suporte a um manipulador de conclusão que é chamado após a conclusão da abertura. - Inicie o compartilhamento do CloudKit e modifique suas propriedades usando as classes new
UICloudSharingController
eUICloudSharingControllerDelegate
. - Aproveite as células pré-buscadas para melhorar a experiência de
UICollectionViews
rolagem com o novoUICollectionViewDataSourcePrefetching
delegado.