Preparando o ambiente de desenvolvimento para o iOS 13

iOS Set 12, 2019

É verão no hemisfério norte. Época de planejar o suporte dos apps que desenvolvemos para as novas versões do Android e iOS.

Em se tratando de iOS, espera-se que a nova versão, iOS 13, seja lançada no dia 19 de setembro. A nova versão do iOS traz funcionalidades bastante esperadas pelo público geral, como o Modo Escuro, melhorias para a câmera e o app Fotos, mais segurança e privacidade com o Sign In With Apple, novo app de Atalhos, entre outros.

Algumas das funcionalidades supracitadas requerem mudanças no código-fonte dos apps, como o Sign In With Apple ou Modo Escuro, utilizando as novas APIs entregues junto ao Xcode 11.

Xcode 11

As novas APIs referentes à novas features do iOS 13 estão disponíveis junto ao Xcode 11. No momento que escrevo esse post, o Xcode 11 está na versão Golden Master, que é a última versão antes do Xcode final. Essa versão é aceita pela Apple para que desenvolvedores que pretendem ter seus apps - suportando a nova versão do iOS - disponíveis desde o "dia zero", ou seja, o dia que o iOS 13 será disponibilizado para o público.

O download do Xcode 11 GM pode ser feito ao acessar https://developer.apple.com/download/, na aba "Applications", conforme mostrado na imagem a seguir:

Seção de download do Xcode 11 GM Seed

É necessário ter uma conta de desenvolvedor da Apple para poder acessar a página de downloads.

O arquivo baixado tem a extensão .xip que basicamente é um .zip assinado. Após descompactar o .xip o arquivo Xcode.app deve aparecer. Você pode utilizar o Xcode a partir daí. Particularmente eu gosto de renomear o arquivo para Xcode-beta.app (assim eu posso ter 2 versões diferentes do Xcode no meu ambiente) e mover para a pasta Applications do macOS.

Abra o Xcode baixado, aceite os termos, e espere a instalação dos componentes necessários para a utilização, conforme a imagem abaixo.

XCode installing components screen

Uma vez que esse processo é finalizado, seu Xcode está pronto para ser utilizado.

Xamarin.iOS

Não basta somente instalar o Xcode 11 e utilizá-lo para compilar seu app. É necessário utilizar uma versão do Xamarin.iOS compatível com o novo Xcode contendo os bindings para as novas APIs.

É possível instalar a versão compatível com o Visual Studio para Mac ao verificar por atualizações e selecionando o canal Xcode 11 Preview que é especial, como mostrado abaixo.

No Windows é um pouquinho diferente. É necessário instalar um .vsix (Extensão do Visual Studio) junto ao Visual Studio 2019.

Configurando o Visual Studio

Após ter instalado todas as dependências, pode ainda ser necessário realizar um último passo para, então assim, poder usufruir das novas APIs.

Abaixo, mostrarei como realizar a configuração no Visual Studio para Mac, que não deve diferir muito do Visual Studio 2019.

Caso você tenha feito como eu e escolhido ter 2 Xcode instalados no seu sistema, é preciso "dizer" para o Visual Studio qual a versão do Xcode você quer que seja utilizada durante o desenvolvimento.

Para isso, abra as preferências do Visual Studio e abra a opção Apple, dentro de SDK Locations, em Projects. Na parte da direita, insira ou selecione o caminho completo da instalação do Xcode 11. A imagem a seguir ilustra melhor como realizar essa configuração no Visual Studio para Mac.

No caso acima eu troquei de /Applications/Xcode.app para Applications/Xcode-beta.app. Ao encontrar o Xcode, uma mensagem aparece informando qual versão do Xcode foi encontrada. No nosso caso, esperamos ver Xcode 11.0 na mensagem.

Hora de programar!

Uma vez que todos os passos foram executados com êxito, é possível começar a testar os apps no iOS 13, iPadOS e/ou macOS Catalina, bem como modificar os apps utilizando as novas APIs.

Faça um teste e tente acessar algumas das novas APIs, como a AuthenticationServices para garantir que a configuração do ambiente está correta.

Estando tudo certinho, é hora de se divertir programando.

Happy coding!

Oberdan Bitencourt Ferreira

Chapter Lead @ ArcTouch, Xamarin Developer, Monkey Nights member and metalhead 🤘