Tutorial: Criar um aplicativo iOS que inicia a Leitura Avançada com o conteúdo de uma foto (Swift)Tutorial: Create an iOS app that launches the Immersive Reader with content from a photo (Swift)

A Leitura Avançada é uma ferramenta projetada de forma inclusiva que implementa técnicas comprovadas para melhorar a compreensão da leitura.The Immersive Reader is an inclusively designed tool that implements proven techniques to improve reading comprehension.

A API de Leitura de Serviços Cognitivos de Pesquisa Visual Computacional detecta o conteúdo de texto em uma imagem usando os modelos de reconhecimento mais recentes da Microsoft e converte o texto identificado em um fluxo de caracteres legível por computador.The Computer Vision Cognitive Services Read API detects text content in an image using Microsoft's latest recognition models and converts the identified text into a machine-readable character stream.

Neste tutorial, você criará um aplicativo iOS do zero e integrará a API de Leitura e a Leitura Avançada usando o SDK de Leitura Avançada.In this tutorial, you will build an iOS app from scratch and integrate the Read API, and the Immersive Reader by using the Immersive Reader SDK. Um exemplo de funcionamento completo deste tutorial está disponível aqui.A full working sample of this tutorial is available here.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Pré-requisitosPrerequisites

Criar um projeto do XcodeCreate an Xcode project

Criar um projeto no Xcode.Create a new project in Xcode.

Novo Projeto

Escolha Aplicativo de Modo de Exibição Único.Choose Single View App.

Novo Aplicativo de Modo de Exibição Único

Obter o SDK CocoaPodGet the SDK CocoaPod

A maneira mais fácil de usar o SDK de Leitura Avançada é por meio do CocoaPods.The easiest way to use the Immersive Reader SDK is via CocoaPods. Para instalar por meio do Cocoapods:To install via Cocoapods:

  1. Instalar CocoaPods – Siga o guia de introdução para instalar o Cocoapods.Install CocoaPods - Follow the getting started guide to install Cocoapods.
  2. Crie um Podfile executando pod init no diretório raiz do projeto Xcode.Create a Podfile by running pod init in your Xcode project's root directory.
  3. Adicione o CocoaPod ao seu Podfile adicionando pod 'immersive-reader-sdk', :path => 'https://github.com/microsoft/immersive-reader-sdk/tree/master/iOS/immersive-reader-sdk'.Add the CocoaPod to your Podfile by adding pod 'immersive-reader-sdk', :path => 'https://github.com/microsoft/immersive-reader-sdk/tree/master/iOS/immersive-reader-sdk'. Seu Podfile deve ser semelhante ao seguinte, com o nome do destino substituindo picture-to-immersive-reader-swift:Your Podfile should look like the following, with your target's name replacing picture-to-immersive-reader-swift:
 platform :ios, '9.0'

 target 'picture-to-immersive-reader-swift' do
 use_frameworks!
 # Pods for picture-to-immersive-reader-swift
 pod 'immersive-reader-sdk', :git => 'https://github.com/microsoft/immersive-reader-sdk.git'
 end
  1. No terminal, no diretório do seu projeto Xcode, execute o comando pod install para instalar o pod do SDK de Leitura Avançada.In the terminal, in the directory of your Xcode project, run the command pod install to install the Immersive Reader SDK pod.
  2. Adicione import immersive_reader_sdk a todos os arquivos que precisam referenciar o SDK.Add import immersive_reader_sdk to all files that need to reference the SDK.
  3. Abra o projeto abrindo o arquivo .xcworkspace, e não o arquivo .xcodeproj.Ensure to open the project by opening the .xcworkspace file and not the .xcodeproj file.

Adquirir um token de autenticação do Azure ADAcquire an Azure AD authentication token

Você precisará de alguns valores da etapa de pré-requisito de configuração da autenticação do Azure AD acima para esta parte.You need some values from the Azure AD authentication configuration prerequisite step above for this part. Veja novamente o arquivo de texto que você salvou dessa sessão.Refer back to the text file you saved of that session.

TenantId     => Azure subscription TenantId
ClientId     => Azure AD ApplicationId
ClientSecret => Azure AD Application Service Principal password
Subdomain    => Immersive Reader resource subdomain (resource 'Name' if the resource was created in the Azure portal, or 'CustomSubDomain' option if the resource was created with Azure CLI Powershell. Check the Azure portal for the subdomain on the Endpoint in the resource Overview page, for example, 'https://[SUBDOMAIN].cognitiveservices.azure.com/')

Na pasta do projeto principal, que contém o arquivo ViewController.swift, crie um arquivo de classe Swift chamado Constants.swift.In the main project folder, which contains the ViewController.swift file, create a Swift class file called Constants.swift. Substitua a classe pelo código a seguir, adicionando em seus valores quando aplicável.Replace the class with the following code, adding in your values where applicable. Mantenha esse arquivo como um arquivo local que só existe em seu computador e não faça commit desse arquivo no controle do código-fonte, pois ele contém segredos que não devem ser tornados públicos.Keep this file as a local file that only exists on your machine and be sure not to commit this file into source control, as it contains secrets that should not be made public. É recomendável que você não mantenha segredos em seu aplicativo.It is recommended that you do not keep secrets in your app. Em vez disso, recomendamos usar um serviço de back-end para obter o token, em que os segredos podem ser mantidos fora do aplicativo e do dispositivo.Instead, we recommend using a backend service to obtain the token, where the secrets can be kept outside of the app and off of the device. O ponto de extremidade da API de back-end deve ser protegido por alguma forma de autenticação (por exemplo, OAuth) para impedir que usuários não autorizados obtenham tokens para usar em seu serviço de Leitura Avançada e cobrança; esse trabalho está além do escopo deste tutorial.The backend API endpoint should be secured behind some form of authentication (for example, OAuth) to prevent unauthorized users from obtaining tokens to use against your Immersive Reader service and billing; that work is beyond the scope of this tutorial.

Configurar o aplicativo para ser executado sem um storyboardSet up the app to run without a storyboard

Abra AppDelegate.swift e substitua o arquivo pelo código a seguir.Open AppDelegate.swift and replace the file with the following code.

Adicionar funcionalidade para tirar e carregar fotosAdd functionality for taking and uploading photos

Renomeie ViewController.swift para PictureLaunchViewController.swift e substitua o arquivo pelo código a seguir.Rename ViewController.swift to PictureLaunchViewController.swift and replace the file with the following code.

Compilar e executar o aplicativoBuild and run the app

Defina o esquema de arquivo no Xcode selecionando um simulador ou um destino do dispositivo.Set the archive scheme in Xcode by selecting a simulator or device target. Esquema de arquivoArchive scheme
Selecionar destinoSelect Target

No Xcode, pressione Ctrl + R ou clique no botão reproduzir para executar o projeto e o aplicativo deverá ser iniciado no simulador ou dispositivo especificado.In Xcode, press Ctrl + R or click on the play button to run the project and the app should launch on the specified simulator or device.

Em seu aplicativo, você deverá ver:In your app, you should see:

Aplicativo de exemplo

Dentro do aplicativo, tire ou carregue uma foto de texto pressionando o botão 'Tirar Foto' ou 'Escolher Foto da Biblioteca' e a Leitura Avançada será iniciada exibindo o texto da foto.Inside the app, take or upload a photo of text by pressing the 'Take Photo' button or 'Choose Photo from Library' button and the Immersive Reader will then launch displaying the text from the photo.

Leitura Avançada

Próximas etapasNext steps