Mudanças adicionais nas estruturas do iOS 10
Este artigo aborda pequenas alterações ou aprimoramentos adicionais em estruturas existentes para iOS 10.
Adições do AV Foundation Framework
A estrutura AVFoundation inclui os seguintes aprimoramentos:
- No iOS 10, o desenvolvedor não precisa mais implementar 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 classe AVCapturePhotoOutput substitui a classe preterida
AVCaptureStillImageOutput
e fornece um método unificado para lidar com todos os fluxos de trabalho de fotografia, fornecendo controle e monitoramento sofisticados do processo de captura e suporte para novos recursos, como Live Photos e o formato de captura RAW. - A nova
AVPlayerLooper
classe facilita o loop de uma determinada mídia durante a reprodução. - A
AVAssetDownloadURLSession
classe permite o download e posterior reprodução de fluxos HLS criptografados do FairPlay. - Por padrão, a classe AVCaptureSession oferece suporte automaticamente à captura de cores largas e ampla gama quando o hardware do dispositivo a suporta. Consulte a Referência de compatibilidade de dispositivos iOS da Apple para obter mais detalhes.
Adições AVKit
A estrutura AVKit agora inclui a nova UpdatesNowPlayingInfoCenter
propriedade para indicar quando o Centro de Informações em Execução deve ser atualizado.
Aprimoramentos de dados principais
O iOS 10 inclui os seguintes aprimoramentos na estrutura de dados principais:
- 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.
- 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.
- Vários novos métodos de conveniência foram adicionados para facilitar a
NSManagedObject
realização de buscas e a criação de subclasses. - Usando o alto nível
NSPersistenceContainer
para fazer referência aoNSPersistentStoreCoordinator
, NSManagedObjectModel e outros recursos de configuração de dados principais.
Para obter mais informações, consulte a Referência do Core Data Framework da Apple.
Aprimoramentos de imagem principal
O iOS 10 faz os seguintes aprimoramentos na estrutura Core Image:
- O desenvolvedor agora pode processar imagens em um espaço de cores fora do espaço de cores de trabalho do contexto da Imagem Principal, convertendo e retirando o espaço de cores antes e depois do processamento.
- Para dispositivos iOS que usam as CPUs A8 ou A9, o formato de imagem RAW agora é suportado. O Core Image agora oferece suporte para decodificação de imagens RAW da câmera iSight integrada ou de uma câmera 3rd party. Use os
FilterWithImageData
métodos ouFilterWithImageURL
da classe CIFilter para processar imagens RAW. - 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.
- 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.
Além disso, os seguintes novos filtros de imagem principal foram adicionados:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Adições de movimento do núcleo
Novo no iOS 10, a estrutura Core Motion inclui eventos pedômetros que permitem que um aplicativo receba notificações rápidas e em tempo real do usuário pausando e retomando o rastreamento durante a execução. Use o CMPedometer para registrar eventos de pedômetro de primeiro plano ou de fundo.
Aprimoramentos da Fundação
Os seguintes aprimoramentos foram feitos na estrutura Foundation para iOS 10:
Use a nova classe NSMeasurementFormatter para formatar medidas localizadas para exibição ao usuário final.
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.
Use a nova classe NSMeasurement para converter entre diferentes Unidades de Medida (UOM) ou executar cálculos em valores em UOMs diferentes.
Use as novas classes NSUnit e NSDimension para representar UOMs específicos.
Várias novas propriedades foram adicionadas à classe NSLocal para adquirir informações locais e os formatos de exibição disponíveis.
Aprimoramentos do GameKit
Os seguintes aprimoramentos foram feitos na estrutura do GameKit no iOS 10:
- O aplicativo Game Center foi preterido e removido do iOS. Se o aplicativo usa o GameKit, ele deve apresentar sua própria interface para exibir recursos do GameKit, como placares, etc.
- 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
Os seguintes aprimoramentos foram feitos na estrutura do GameplayKit no iOS 10:
- Use a nova classe GKMeshGraph para fornecer caminhos de alto desempenho e aparência natural.
- 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.
- O suporte 3D foi adicionado aos comportamentos existentes de agente e localização de caminhos usando as novas classes GKAgent3D e GKGraphNode3D .
- As novas classes GKScene e GKSKNodeComponent tornam a combinação de GameplayKit e SpriteKit mais fácil do que nunca.
- Uma nova API de árvore decisória foi adicionada (GKDecisionTree e GKDecisionNode) para aprimorar a IA de construção de jogos.
Aprimoramentos do HealthKit
Os seguintes aprimoramentos foram feitos na estrutura HealthKit no iOS 10:
- Novas chaves de metadados foram adicionadas para tipos de clima (como
HKWeatherConditionClear
eHKWeatherConditionCloudy
) e tipos de treino (comoHKWorkoutActivityTypeFlexibility
eHKWorkoutActivityTypeWheelchairRunPace
) foram adicionadas. - A nova
HKCDADocument
classe foi adicionada para representar um documento formatado em CDA (Clinical Document Architecture). - Use a nova classe HKWorkoutConfiguration para especificar o
ActivityType
eLocationType
de um treino. - O novo HKWheelchairUseObject e o
WheelchairUse
método da classe HKHealthStore foram adicionados para trabalhar com dados de saúde relacionados a cadeiras de rodas.
Aprimoramentos do HomeKit
Os seguintes aprimoramentos foram feitos na estrutura do HomeKit no iOS 10:
- Novos serviços e características foram adicionados.
- Um iPad pode ser configurado para atuar como um HomeKit Hub para fornecer acesso remoto a acessórios, executar gatilhos de automação e habilitar permissões de usuário compartilhadas.
- Foi adicionado suporte para acessórios de câmera e campainha.
- Mais contexto e configurações foram fornecidos para os acessórios.
Consulte nossa documentação de Introdução ao HomeKit para obter mais informações.
Aprimoramentos de Metais
Os seguintes aprimoramentos foram feitos na estrutura Metal no iOS 10:
- Aplicativos e jogos 3D agora podem usar o Tessellation para renderizar com eficiência cenas complexas e geometria por meio da GPU.
- 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.
- 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.
Para saber mais, consulte o Guia de Programação de Metais da Apple.
Aprimoramentos de ModelIO
Os seguintes aprimoramentos foram feitos na estrutura ModelIO no iOS 10:
- O formato de arquivo USD agora é suportado.
- 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. - Use a nova
MDLMaterialPropertyGraph
classe para oferecer suporte facilmente a alterações de tempo de execução em modelos.
Aprimoramentos de fotos
Os seguintes aprimoramentos foram feitos na estrutura Fotos no iOS 10:
- Use as classes CIImageProcessorInput e CIImageProcessorOutput para aproveitar o novo recurso do processador Core Image para executar edições.
- A edição de fotos ao vivo agora está disponível para aplicativos compatíveis com a estrutura Fotos e para extensões de edição de fotos (para uso dentro dos aplicativos Fotos e Câmera).
- Use a nova classe PHLivePhotoEditingContext para aplicar edições ao vídeo e ao conteúdo estático do Live Photos.
Aprimoramentos do ReplayKit
Os seguintes aprimoramentos foram feitos na estrutura do ReplayKit no iOS 10:
- Use as classes RPScreenRecorder, RPBroadcastActivityViewController e RPBroadcastController para oferecer suporte à transmissão de mídia gravada através de sites de terceiros 3rd.
- As extensões Broadcast UI e Broadcast Upload são necessárias para oferecer suporte aos serviços de transmissão ReplayKit 3rd party no aplicativo.
Aprimoramentos do SceneKit
Os seguintes aprimoramentos foram feitos na estrutura do SceneKit no iOS 10:
- 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 de preenchimento ao jogo.
- 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
LightingEnvironment
propriedade para atribuir iluminação baseada em imagem a uma cena inteira. - Use a
IESProfileURL
propriedade para importar luminárias do mundo real que definem a iluminação com base em valores do mundo real, como intensidade (em lúmens) e temperatura de cor (em graus Kelvin). - 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.
- 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 .
- 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.
Aprimoramentos do SpriteKit
Os seguintes aprimoramentos foram feitos na estrutura SpriteKit no iOS 10:
- 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
). - 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. - A classe SKView fornece vários novos métodos para dar controle refinado sobre quando e como uma cena é renderizada.
Aprimoramentos do ScrollView
Os seguintes aprimoramentos foram feitos para o controle ScrollView no iOS 10.3:
UIScrollView
Agora inclua aIndexDisplayMode
propriedade para controlar como o índice é mostrado enquanto o usuário está rolando como umUIScrollViewIndexDisplayMode
de:Automatic
- A exibição do índice é controlada pelo sistema operacional.AlwaysHidden
- A exibição do índice está sempre oculta.
Aprimoramentos do UIKit
Os seguintes aprimoramentos foram feitos na estrutura UIKit no iOS 10:
- 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.
- Novo suporte de animação totalmente interativo, baseado em objeto 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 de desenvolvedor 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. - 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 o dispositivo for alterado,
UIContentSizeCategory
use aAdjustsFontForContentSizeCategory
propriedade doUIContentSizeCategoryAdjusting
representante. - O
OpenURL
método da classe é chamado de forma assíncronaUIApplication
e agora oferece suporte a um manipulador de conclusão que é chamado após a conclusão da ação aberta. - 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. - O desenvolvedor 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
).
Aprimoramentos do WebKit
Os seguintes aprimoramentos foram feitos na estrutura do WebKit no iOS 10:
- O suporte a espiada
WKWebView
e pop foi adicionado à classe. Use oShouldPreviewElement
método para determinar se um determinado modo de exibição da Web deve exibir uma visualização.