Introdução ao iOS 10

Com o novo iOS 10 SDK, a Apple incluiu novas APIs e serviços que permitem ao desenvolvedor criar novas categorias de aplicativos e recursos. Um aplicativo iOS agora pode estender os aplicativos Mensagens, Siri, Telefone e Mapas para fornecer funcionalidades avançadas e envolventes ao usuário final que antes não estavam disponíveis.

Para obter mais informações sobre o iOS 10, consulte a documentação do iOS + Apps da Apple.

O que há de novo no iOS 10

A Apple adicionou várias novas APIs e serviços no iOS 10, juntamente com muitos aprimoramentos nos recursos existentes, incluindo:

Adaptando-se ao True Tone Display

A tecnologia True Tone Display da Apple usa o sensor de luz ambiente em um dispositivo iOS para ajustar dinamicamente a cor e a intensidade da tela para corresponder às condições de iluminação atuais. O iOS 10 fornece a nova chave UIWhitePointAdaptivityStyle que pode ser adicionada ao arquivo do aplicativo e controla como o True Tone aplica a mudança de Info.plist cor padrão.

Os seguintes valores estão disponíveis:

  • UIWhitePointAdaptivityStyleStandardPadrão - Use a adaptabilidade de ponto branco padrão.
  • UIWhitePointAdaptivityStyleReading - Usado para aplicativos focados em leitura.
  • UIWhitePointAdaptivityStyleGame - Usado para aplicativos focados em jogos.
  • UIWhitePointAdaptivityStyleVideo - Usado para aplicativos focados em vídeo.
  • UIWhitePointAdaptivityStylePhoto - Usado para aplicativos focados em fotografia em que a fidelidade de cores é mais importante do que os ajustes ambientais de ponto branco.

Extensões de aplicativo

A Apple forneceu vários novos pontos de extensão de aplicativo no iOS 10:

  • Diretório de chamadas
  • Intenções e interface do usuário de intenções
  • Mensagens
  • Conteúdo da notificação
  • Notification Services
  • Pacote de adesivos

Além disso, as extensões de aplicativos de teclado de terceiros têm os seguintes aprimoramentos:

  • A nova DocumentInputMode propriedade da classe pode determinar o idioma de entrada de um documento e permitir que a extensão do UITextDocumentProxy teclado se alinhe a esse idioma.
  • O novo HandleInputModeList método permite que a extensão do teclado exiba o menu do seletor de teclado do sistema em resposta à tecla Globo que está sendo tocada.

Para obter mais informações, consulte nossa Introdução às Extensões, Integração de Aplicativos de Mensagens, Introdução às Sugestões Proativas, Introdução ao SiriKit, Introdução às Notificações do Usuário e Guia de Programação de Extensões de Aplicativos da Apple.

Aperfeiçoamentos na pesquisa de aplicativo

O Core Spotlight no iOS 10 fornece vários aprimoramentos para a Pesquisa de aplicativos, como:

  • Popularidade de links diretos de crowdsourcing (com privacidade diferencial) - Fornece uma maneira de promover o conteúdo do aplicativo com links diretos nos resultados da pesquisa.
  • Pesquisa no aplicativo - Use a nova CSSearchQuery classe para fornecer a capacidade de pesquisa do Spotlight no aplicativo semelhante à forma como os aplicativos Mail, Mensagens e Anotações funcionam.
  • Continuação da pesquisa - Permite que um usuário inicie uma pesquisa no Spotlight ou no Safari, abra um aplicativo e continue essa pesquisa.
  • Visualização dos resultados da validação - A ferramenta de validação da API de pesquisa de aplicativos da Apple agora exibe uma representação visual da marcação e dos links diretos de um site ao realizar testes.
  • Compartilhamento de imagens do aplicativo de mensagens - Permite que imagens populares no aplicativo fornecidas para compartilhamento no Mensagens (por meio de uma extensão de aplicativo de mensagens) apareçam nas pesquisas do Spotlight.

Para saber mais, consulte nosso guia de aprimoramentos de pesquisa de aplicativos.

Aprimoramentos do Apple Pay

A Apple fez várias melhorias no Apple Pay no iOS 10 que permitem ao usuário fazer pagamentos seguros em sites e por meio da interação com Siri e Maps.

Com o iOS 10, várias novas APIs foram adicionadas que funcionam com iOS e watchOS para oferecer suporte a redes de pagamento dinâmicas e um novo ambiente de teste de sandbox.

Além disso, a estrutura do PassKit foi expandida para oferecer suporte ao Apple Pay fora e permitir que os emissores de cartões apresentem seus cartões de dentro de UIKit seus aplicativos.

Para saber mais, consulte nosso guia de aprimoramentos do Apple Pay.

Ícones de aplicativos alternativos

A Apple adicionou vários aprimoramentos ao iOS 10.3 que permitem que um aplicativo gerencie seu ícone:

  • ApplicationIconBadgeNumber - Obtém ou define o emblema do ícone do aplicativo no Springboard.
  • SupportsAlternateIcons - Se true o aplicativo tiver um conjunto alternativo de ícones.
  • AlternateIconName - Retorna o nome do ícone alternativo selecionado no momento ou null se estiver usando o ícone principal.
  • SetAlternameIconName - Use este método para alternar o ícone do aplicativo para o ícone alternativo fornecido.

Para saber mais, consulte nosso guia de ícones de aplicativos alternativos .

Introdução ao CallKit

A nova API CallKit no iOS 10 fornece uma maneira de os aplicativos VOIP se integrarem à interface do usuário do iPhone e fornecerem uma interface e experiência familiares ao usuário final. Com essa API, os usuários podem visualizar e interagir com chamadas VOIP na tela de bloqueio do dispositivo iOS e gerenciar contatos usando as exibições Favoritos e Recentes do aplicativo Telefone.

Além disso, a API do CallKit fornece a capacidade de criar Extensões de Aplicativo que podem associar um número de telefone a um nome (ID do Chamador) ou informar ao sistema quando um número deve ser bloqueado (Bloqueio de Chamadas).

Para saber mais, consulte nosso guia de Introdução ao Callkit .

Integração do aplicativo de mensagens

O iOS 10 permite a inclusão de uma Extensão de Aplicativo de Mensagens na solução Xamarin.iOS que se integra ao aplicativo Mensagens e apresenta novas funcionalidades ao usuário. A extensão pode enviar texto, adesivos, arquivos de mídia e mensagens interativas. Dois tipos de Extensão de Aplicativo de Mensagem estão disponíveis:

  • Pacotes de adesivos - Contém uma coleção de adesivos que o usuário pode adicionar a uma mensagem. Os pacotes de adesivos podem ser criados sem escrever nenhum código.
  • Aplicativo iMessage - Pode apresentar uma interface de usuário personalizada no aplicativo Mensagens para selecionar adesivos, inserir texto, incluindo arquivos de mídia (com conversões de tipo opcionais) e criar, editar e enviar mensagens de interação.

Para saber mais, consulte nosso guia de integração do aplicativo Message.

Aprimoramentos do editor de notícias

Com o iOS 10, a Apple permitirá que qualquer pessoa, desde grandes revistas e novas organizações até blogueiros e editores independentes, se inscreva, produza e entregue conteúdo ao aplicativo Apple News. Para saber mais, consulte a documentação de Recursos de Notícias da Apple.

Como fornecer comentários hápticos

No iPhone 7 e iPhone 7 Plus, a Apple incluiu novas respostas táteis que fornecem maneiras adicionais de envolver fisicamente o usuário. Use as novas opções de feedback tátil para chamar a atenção do usuário e reforçar suas ações.

Vários elementos de interface do usuário integrados já fornecem feedback tátil, como Pickers, Switches e Sliders. O iOS 10 agora adiciona a capacidade de acionar programaticamente a sensação tátil usando uma subclasse concreta da UIFeedbackGenerator classe.

Para saber mais, consulte nosso guia Fornecendo feedback tátil.

Sugestões proativas

O iOS 10 apresenta novas maneiras de impulsionar o engajamento de um aplicativo, permitindo que o sistema apresente proativamente informações úteis automaticamente ao usuário em momentos apropriados. Assim como o iOS 9 forneceu a capacidade de adicionar pesquisa profunda ao aplicativo usando Spotlight, Handoff e Siri Suggestions, com o iOS 10 um aplicativo pode expor a funcionalidade que pode ser apresentada ao usuário pelo sistema nos seguintes locais:

  • O alternador de aplicativos
  • A tela de bloqueio
  • Jogo de carros
  • Mapas
  • Interações da Siri
  • Sugestões QuickType

Um aplicativo expõe essa funcionalidade ao sistema usando uma coleção de tecnologias, como NSUserActivity, marcação da Web, Core Spotlight, MapKit, Media Player e UIKit.

Para saber mais, consulte nosso guia Introdução às sugestões proativas.

Solicitação de revisão do aplicativo

Novo no iOS 10.3, o RequestReview() método permite que um aplicativo iOS peça ao usuário para classificá-lo ou revisá-lo. Embora esse método possa ser chamado a qualquer momento em que faça sentido na experiência do usuário, o processo de revisão é regido e tratado pela política da App Store. Como resultado, esse método pode ou não exibir um alerta e nunca deve ser chamado em resposta a uma ação do usuário, como tocar em um botão.

Para saber mais, consulte nosso guia Solicitar revisão do aplicativo.

Aprimoramentos de segurança e privacidade

A Apple fez vários aprimoramentos na segurança e na privacidade no iOS 10 que ajudarão o desenvolvedor a melhorar a segurança de seus aplicativos e garantir a privacidade do usuário final.

Como resultado, os aplicativos em execução no iOS 10 (ou posterior) devem declarar estaticamente sua intenção de acessar recursos específicos ou informações do usuário inserindo uma ou mais chaves específicas de privacidade em seus Info.plist arquivos que explicam ao usuário por que o aplicativo deseja obter acesso.

Para saber mais, consulte nosso guia de aprimoramentos de segurança e privacidade.

SiriKit

Novidade no iOS 10, o SiriKit permite que um aplicativo Xamarin.iOS forneça serviços acessíveis ao usuário usando a Siri em um dispositivo iOS. Essa funcionalidade é fornecida em uma ou mais Extensões de Aplicativo usando as novas estruturas de interface do usuário Intenções e Intenções.

O SiriKit é compatível com os seguintes domínios de serviço:

  • Chamadas de áudio ou vídeo.
  • Reservando uma viagem.
  • Gerenciando treinos.
  • Mensagens.
  • Pesquisando fotos.
  • Envio ou recebimento de pagamentos.

Quando o usuário faz uma solicitação à Siri envolvendo um dos serviços da Extensão de Aplicativo, o SiriKit envia à extensão um objeto Intent que descreve a solicitação do usuário junto com todos os dados de suporte. Em seguida, a Extensão de Aplicativo gera o objeto de Resposta apropriado para a Intenção especificada, detalhando como a extensão pode lidar com a solicitação.

Embora a Siri geralmente lide com toda a interação do usuário, a Extensão de Aplicativo pode usar a estrutura da interface do usuário de intenção para apresentar uma interface do usuário avançada e personalizada com a identidade visual do aplicativo e informações adicionais.

Para saber mais, consulte nosso guia Introdução ao SiriKit .

Reconhecimento de fala

O iOS 10 inclui uma nova API de Fala que permite que o aplicativo dê suporte ao reconhecimento contínuo de fala e transcreva a fala (de fluxos de áudio ao vivo ou gravados) em texto.

Como o reconhecimento de fala requer a transmissão e o armazenamento temporário de dados nos servidores da Apple, o aplicativo deve solicitar a permissão do usuário para realizar o reconhecimento incluindo a NSSpeechRecognitionUsageDescription chave em seu Info.plist arquivo e chamando o SFSpeechRecognizer.RequestAutorization método.

Para saber mais, consulte nosso guia de Introdução ao Reconhecimento de Fala .

Notificações do usuário

Novidade no iOS 10, a estrutura de Notificação do Usuário permite a entrega e o tratamento de notificações locais e remotas. Usando essa estrutura, o aplicativo ou a Extensão de Aplicativo pode agendar a entrega de notificações locais especificando um conjunto de condições, como local ou hora do dia.

Além disso, o aplicativo ou extensão pode receber (e potencialmente modificar) notificações locais e remotas à medida que são entregues ao dispositivo iOS do usuário.

A nova estrutura da interface do usuário de notificação do usuário permite que o aplicativo ou a extensão de aplicativo personalize a aparência de notificações locais e remotas quando elas são apresentadas ao usuário.

Para saber mais, consulte nosso guia da Estrutura de Notificações do Usuário.

Conta de assinante de vídeo

Novidade no iOS 10, a estrutura da Conta de Assinante de Vídeo permite que aplicativos que dão suporte a streaming autenticado ou vídeo sob demanda se autentiquem com seu provedor de TV a cabo ou via satélite usando uma experiência de Logon Único para o usuário final.

Cores amplas

O iOS 10 estende o suporte para formatos de pixel de alcance estendido e espaços de cores de ampla gama em todo o sistema, incluindo estruturas como Core Graphics, Core Image, Metal e AVFoundation. O suporte para dispositivos com telas coloridas amplas é ainda mais facilitado ao fornecer esse comportamento em toda a pilha de gráficos.

Além disso, o UIKit foi modificado para funcionar no novo espaço de cores sRGB estendido, facilitando a mistura de cores em amplas gamas de cores sem perda significativa de desempenho.

A Apple oferece as seguintes práticas recomendadas ao trabalhar com cores amplas:

  • O UIColor agora usa o espaço de cores sRGB e não fixará mais os valores no 0.0 intervalo to 1.0 . Se o aplicativo depender do comportamento de fixação anterior, ele precisará ser modificado para o iOS 10.
  • O ambiente de desenho será configurado para o espaço de cores sRGB ao executar o desenho personalizado UIView em um iPad Pro.
  • Se o aplicativo executar a renderização personalizada de UIImages, use a nova classe UIGraphicsImageRender para especificar o uso dos formatos de intervalo estendido ou padrão.
  • Ao usar uma API de baixo nível, como Core Graphics ou Metal, para fornecer processamento de imagem, o desenvolvedor deve usar um espaço de cores de intervalo estendido e um formato de pixel que dê suporte a valores de ponto flutuante de 16 bits. Quando necessário, o desenvolvedor terá que fixar manualmente os valores dos componentes de cores.
  • Core Graphics, Core Image e Metal Performance Shaders fornecem novos métodos para conversão entre os dois espaços de cores.

Para saber mais, consulte nosso guia Introdução à Wide Color .

Aprimoramentos de widgets

A Apple introduziu vários aprimoramentos no Widget System para garantir que os widgets tenham uma ótima aparência em qualquer plano de fundo que exista na nova tela de bloqueio do iOS 10. A propriedade NotificationCenterVibrancyEffect foi preterida e substituída pelas novas propriedades WidgetPrimaryVibrancyEffect ou WidgetSecondaryVibrancyEffect . Além disso, os widgets agora contêm uma propriedade NCWidgetDisplayMode que permite ao desenvolvedor descrever quanto conteúdo está disponível e permite que o usuário expanda e recolha o conteúdo.

Para saber mais, consulte nosso guia de aprimoramentos de widgets de pesquisa e tela inicial.

Mudanças adicionais na estrutura

Além das principais alterações e adições de estrutura listadas acima, a Apple fez muitas pequenas alterações adicionais na estrutura do iOS 10.

Para saber mais, consulte nosso guia de Alterações Adicionais de Estrutura .

APIs obsoletas

As seguintes APIs foram preteridas no iOS 10:

  • As CKDiscoverAllContactsOperationclasses , CKDiscoveredUserInfo, CKDiscoverUserInfosOperation e foram CKFetchRecordChangesOperation preteridas no CloudKit para iOS 10. Em vez disso, use as classes CKDiscoverAllUserIdentitiesOperation, CKUserIdentity e CKFetchRecordZoneChangesOperation (que dão suporte ao compartilhamento de registros).
  • Várias APIs CKSubscription (como assinaturas baseadas em zona e consulta) foram preteridas. Em vez disso, use as APIs CKRecordZoneSubscription e CKQuerySubscription .
  • Os símbolos NSPersistentStoreCoordinator relacionados ao conteúdo onipresente foram preteridos.
  • ADBannerViewe ADInterstitialAd os símbolos relacionados na classe UIViewController foram preteridos.
  • SKUniform símbolos relacionados a valores de ponto flutuante foram preteridos.
  • As UILocalNotificationclasses , UIMutableUserNotificationAction, UIMutableUserNotificationCategory, UIUserNotificationActione UIUserNotificationSettings UIUserNotificationCategory do UIKit foram preteridas. Em vez disso, use a estrutura de Notificações do Usuário.
  • Os HandleActionForLocalNotificationmétodos , HandleActionForRemoteNotificatione DidReceiveRemoteNotification DidReceiveLocalNotification WatchKit foram preteridos. Em vez disso, use os HandleActionForNotification métodos and DidReceiveNotification .
  • Os DidReceiveLocalNotification métodos e DidReceiveRemoteNotification do WKExtensionDelegate foram preteridos. Crie uma instância de UNUserNotificationCenterDelegate que implemente os métodos apropriados e atribua-a Delegate à propriedade do objeto UNUserNotificationCenter .
  • O aplicativo Game Center foi descontinuado e removido do iOS. Se o aplicativo usar o GameKit, ele deverá apresentar sua própria interface para exibir os recursos do GameKit, como tabelas de classificação, etc.

Consulte a documentação de diferenças de API do iOS 9.3 para iOS 10.0 da Apple para obter uma lista completa de substituições.