Compartilhar via


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 ao NSPersistentStoreCoordinator, 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 ou FilterWithImageURL 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) em UIImageView objetos.
  • UIImage objetos marcados com ampla gama serão renderizados como cores de ampla gama em UIImageView 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 e HKWeatherConditionCloudy) e tipos de treino (como HKWorkoutActivityTypeFlexibility e HKWorkoutActivityTypeWheelchairRunPace) 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 e LocationType de um treino.
  • O novo HKWheelchairUseObject e o WheelchairUsemé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:

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 (Diffusee MetalnessRoughness).
  • 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.plistpodem ser desabilitadas especificando as SCNDisableLinearSpaceRendering teclas e SCNDisableWideGamut 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 SKTileMapModeclasses , SKTileGroupSKTileGroupRule e SKTileSet .
  • 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 a IndexDisplayMode propriedade para controlar como o índice é mostrado enquanto o usuário está rolando como um UIScrollViewIndexDisplayMode 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 e UIPreviewInteractionDelegate 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 o UIAccessibilityIsAssistiveTouchRunning AssistiveTouch está habilitado.
  • Use os UIAccessibilityHearingDevicePairedEar símbolos e UIAccessibilityHearingDevicePairedEarDidChangeNotification 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 novo PreferredFontForTextStyle método da classe.
  • Para decidir se um elemento deve atualizar sua fonte quando o dispositivo for alterado, UIContentSizeCategory use a AdjustsFontForContentSizeCategory propriedade do UIContentSizeCategoryAdjusting representante.
  • O OpenURL método da classe é chamado de forma assíncrona UIApplication 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 e UICloudSharingControllerDelegate .
  • Aproveite as células pré-buscadas para melhorar a experiência de UICollectionViews rolagem com o novo UICollectionViewDataSourcePrefetching 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 o ShouldPreviewElement método para determinar se um determinado modo de exibição da Web deve exibir uma visualização.