Desenvolvimento

29 mar, 2018

Uma breve introdução ao App Center

Publicidade

O desenvolvimento de aplicativos móveis encontra-se em alta no mercado, e a entrega de valor constantemente é um dos grandes fatores de sucesso. Aplicativos mais complexos, com ótima usabilidade e qualidade, são cada vez mais requisitados.

Possuir o apoio de uma ferramenta que centraliza e nos auxilia na geração de builds automáticos, testes na nuvem, coleta de informações analíticas, crashs e muito mais poderá ser um grande diferencial. Essa ferramenta existe, chama-se App Center, e aqui será apresentada uma pequena amostra do seu poder.

O App Center

O App Center é uma nova geração do HockeyApp, que contém mais ferramentas. Um dos grandes diferenciais é que a ferramenta não se resume, apenas, à plataforma Microsoft. É possível usar todo o seu potencial para as principais tecnologias do mercado, como:

  • Android (Java e Kotlin);
  • iOS (Objective-C e Swift);
  • Xamarin (iOS e Android);
  • React Native (iOS e Android);
  • Windows Apps (UWP);

Em breve, para MacOs, Cordova (já em Preview) e TvOs.

Dentre as principais características ou pilares do App Center, encontram-se:

  • Build – Gerar builds, automatizados ou manualmente, de suas aplicações, associadas a um repositório (Visual Studio Online, GitHub ou Bitbucket);
  • Distribute – Distribuição de releases de seus aplicativos para grupos de usuários pré-determinados através do envio automático de e-mails;
  • Test – teste sua aplicação em dispositivos reais, executando na nuvem.

Existem muitas outras ferramentas no App Center, como coleta de informações analíticas, crash, push notifications e várias outras opções, como a integração com o Azure. Além disso, possui uma ótima documentação e o seu blog sempre traz grandes novidades em primeira mão.

Escopo: O APP Center possui muitas ferramentas interessantes. Mas, para ser prático, vamos configurar as builds para Android e iOS e aprender a distribuí-las. Será utilizada uma aplicação desenvolvida em Xamarin.Forms, exclusivamente para este artigo, como projeto base para a geração das builds. Os passos a serem executados poderão ser replicados para outras tecnologias.

Acessando a ferramenta: Para acessar o App Center, acesse o link http://appcenter.ms. Nesse site, você terá várias outras informações sobre a ferramenta além da documentação.

Tela principal do app center

Clique no botão “Get Started”, localizado no canto superior direito, para acessar a tela de criação de uma conta ou efetuar o login, caso já possua cadastro. Assim como vários outros serviços disponíveis na web, você poderá se conectar utilizando uma conta do Facebook, Google, GitHub, Microsoft ou até criar uma conta, de forma simples, informando seu e-mail, nome e senha.

Tela de Login/criar usuário

Escolha a melhor opção para acesso à ferramenta.

Após efetuar o login ou criar um novo usuário, temos acesso ao Dashboard do App Center.

Tela principal do app center

Podemos notar que existem duas opções básicas: “Add new organization” e “Add new app”.

A primeira opção, add new organization, é para agrupar suas soluções. Imagine que você possua um cliente que solicitou o desenvolvimento de um app para as plataformas Android e iOS. Sendo assim, serão dois apps no mobile center, cada um para uma plataforma. Entretanto, você poderá agrupar tais apps em uma
organização, organizando melhor o seu Dashboard.

A opção “add new app” é, de fato, a adição de um app, no qual será definida, além de um nome e uma descrição, qual tecnologia será utilizada.

Configurando o projeto

Agora que conhecemos de forma básica a ferramenta, vamos iniciar a configuração do nosso projeto. Se desejar reproduzir, exatamente, os mesmos passos deste artigo, os fontes do projeto e outras informações encontram-se no link http://github.com/codefc/XFAppCenterImasters.

Primeiramente, devemos criar uma nova organização para agrupar nossos aplicativos que serão compilados para Android e iOS.

Clique em “Add new organization” e informe o nome “Imasters” no formulário que será exibido.

Após criada a organização, podemos prosseguir para a criação dos apps.

Criando os Mapps

A criação dos apps para Android e iOS é bastante similar, variando apenas as tecnologias a serem utilizadas, é claro.

A criação dos apps deverá ser feita clicando no botão “Add new app”. Configure os respectivos aplicativos de acordo com a tabela abaixo:

Android iOS
Name: Android App
Description:
Aplicação Android em Xamarin.Android
OS:
Android
Name: iOS App
Description:
Aplicação Android em Xamarin.iOS
OS:
iOS
Platform: Xamarin Platform: Xamarin
Criação de um aplicativo

Você perceberá que logo após criar um aplicativo, o App Center irá direcioná-lo para a tela principal da aplicação. Nessa tela, haverá um tutorial, de acordo com a plataforma, que demonstra como integrar nossas aplicações com o App Center para coleta de informações analíticas ou crashes.

Acessando o controle de versão

Antes de criar as builds dos nossos aplicativos, devemos, primeiramente, configurar o controle de versão onde se encontra nosso projeto. As seguintes configurações deverão ser feitas para os aplicativos Android e iOS.

Atualmente, estão disponíveis as integrações com o Visual Studio Team Service, o GitHub e o BitBucket.

Em nosso caso, vamos efetuar a integração com o GitHub. O processo é simples. Basta escolher o repositório, efetuar o login e autorizar o App Center acessar as informações de projetos.

Após as confirmações, serão exibidos os seus repositórios. Selecione o projeto desejado e pronto! Sua aplicação está associada a um repositório. Uma dica para acompanhar esse exemplo melhor: você poderá fazer o “Fork” do projeto no GitHub e selecioná-lo conforme os passos descritos acima.

Observe que ao selecionar o projeto, serão exibidas as branches, caso exista mais de uma. Para cada branch, podemos configurar builds com propósitos diferentes. Podemos possuir uma build “develop” onde estão sendo desenvolvidas as novas implementações e seu propósito é distribuir releases para sua equipe de testes interna. E na branch “master”, podemos configurar uma build com uma versão estável para um time de homologação.

Build Android

A configuração de builds para aplicativos Android é bastante simples. Porém, como pré-requisito, devemos criar um certificado para assinar nossa aplicação para permitir a instalação bem-sucedida nos dispositivos dos usuários que receberão as versões.

Para criar um certificado para aplicações Android, podemos contar com o auxílio da ferramenta “keytool.exe”, localizada no PATH do Java SDK – C:\Program Files (x86)\Java\jdkVERSION\bin\keytool.exe. Acesse o diretório do Java JDK, caso ele não esteja configurado no PATH, para digitar o comando para a geração do certificado.

O comando utilizado para criar o arquivo “keystore”, que é o certificado que irá assinar a aplicação, é:

Keytool.exe -genkeypair -v -keystore c:\keystores\MeuKeyStore.keystore -alias ArtigoImastersAppCenter -keyalg RSA -keysize 2048 -validity 10000 <ENTER>

O comando acima gera uma keystore com o nome “MeyKeyStore.keystore” no diretório “C:\keystores”, com um alias denominado “ArtigoImastersAppCenter” definido com um algoritmo RSA e uma validade de 10.000 dias.

Após digitar o comando e pressionar enter, algumas perguntas serão feitas. A primeira delas será uma senha. Preencha com uma senha de sua preferência. Para prosseguir com o exemplo, vou preencher a senha com o valor “artigoimasters.2018”.

As informações seguintes são bem intuitivas. Quando solicitada outra senha, defina um valor de sua preferência. Vou manter o padrão e prosseguir com a mesma senha definida anteriormente, “artigoimasters.2018”.

Print do certificado criado

Lembre-se: os dados informados na geração do certificado deverão ser guardados, juntamente com o keystore, em um local seguro. Vamos precisar dessas informações na definição da build.

De posse do certificado, acesse, no App Center, o aplicativo Android e, em seguida, clique no menu Build.

Clique na branch develop e, em seguida, no botão “Configure build”. Vamos nos concentrar, apenas, nas opções para geração de uma build Android sem maiores variações.

Será exibido um formulário com várias opções:

Formulário de edição de build

Abaixo os detalhes de cada configuração:

Project Selecione o projeto Android do seu repositório. O App Center tentará identificar o projeto automaticamente.
Mono Version Selecione a opção mais atual. No meu caso, 5.4.1.
Configuration Release. Caso possua outro perfil de configuração que represente um RELEASE, selecione este.
Build Frequency Build this branch on every push.
Sign Builds Habilite a opção.
Faça o upload do keystore criado anteriormente.
Preencha os campos Key Alias, Key Password e Keystore password conforme as informações do certificado criado anteriormente.

Por enquanto, essa será a nossa configuração de build. Ela apenas irá gerar o artefato, mas ele não será distribuído. Pra terminar, clique no botão “Save & Build” e aguarde a conclusão.

Será exibida uma tela com todo o log de geração de build. Caso haja alguma falha ao gerar o aplicativo, o log será bem útil para diagnosticar o problema.

Se tudo ocorreu bem, nossa build gerou, com sucesso, o APK da nossa aplicação.

Build iOS

O próximo passo é configurar a build do iOS. Como sabemos, a Apple tem outro padrão de desenvolvimento e também de entrega de suas aplicações. Sendo assim, antes de distribuir aplicações para iOS, é necessário criar algumas configurações em sua conta de desenvolvedor Apple.

Além dos certificados, é preciso, é claro, um MAC OS com todo ambiente de desenvolvimento configurado e atualizado. É aí que entra o poder do App Center. Ele possui um Agent na nuvem que tem, basicamente, máquinas MAC com toda a necessidade de um ambiente de desenvolvimento para compilar nossas aplicações. Fantástico.

Para que a sua build possa funcionar corretamente, deve-se atender aos seguintes pré-requisitos:

Atenção: Os passos a seguir dependem do uso de um MAC OS. A maioria das ações pode ser feita através do portal de desenvolvedores Apple, porém, na geração de certificados e da chave privada, devem-se utilizar os recursos do Mac OS.

  • Devices que receberão o app – No painel de desenvolvedores da Apple, temos a possibilidade de cadastrar até 100 dispositivos que receberão nossas aplicações para teste.
  • APP ID – Todo aplicativo deve ter um App Id que representa a aplicação na Apple Store – o padrão utilizado.
  • Certificado de produção – Criar um certificado de produção na opção “App Store and Ad hoc”. Basicamente, precisamos criar um certificado de produção para distribuição “ADHOC”, ou seja, não será uma distribuição via Apple Store, mas distribuída diretamente para determinados dispositivos. Precisamos criar alguns certificados. Acesse o aplicativo iOS criado anteriormente e vá ao menu “Build”.
  • Certificado de provisionamento – O certificado de provisionamento deverá ser criado para distribuição Ad hoc, com o App Id criado para a sua aplicação, relacioná-lo ao certificado de produção criado anteriormente e, finalmente, selecionar todos os devices que receberão o app.
  • Chave privada do certificado de produção – Esta chave privada pode ser gerada facilmente selecionando o certificado de produção criado anteriormente na aplicação KeyChain do Mac OS, clicando com o botão direito no certificado e escolhendo a opção de “Exportação”. Defina um nome para o certificado e uma senha. Guarde bem essa senha. Ela será usada na geração da build.

Dica: é muito importante que no certificado de provisionamento existam todos os devices que receberão o aplicativo, caso contrário, ele não irá instalar em um dispositivo desconhecido.

As configurações acima podem parecer complexas para o “marinheiro de primeira viagem”. Mas não se preocupe, com o tempo, você se acostuma e, além disso, existem ótimas ferramentas, como o Fastlane, que facilitam e muito o trabalho de criação e gerenciamento de certificados.

Com os certificados em mãos, é hora de configurar a Build. Para isso, no App Center, acesse o aplicativo iOS criado anteriormente e, em seguida, acesse o menu Build.

Assim como foi feito na configuração da build Android, apenas as configurações mais importantes serão tratadas.

Clique na branch na branch develop e, em seguida, em “Configure build”. No formulário, preencha os dados de acordo com a tabela abaixo:

Project Selecione o projeto iOS do seu repositório. O App Center tentará identificar o projeto automaticamente.
Mono Version Selecione a opção mais atual. No meu caso, 5.4.1.
Configuration Release iOS. Caso possua outro perfil de configuração que represente um RELEASE, selecione este.
XCode Version Selecione a versão mais atual. No meu caso, 9.2.
Build Type Device Build.
Build Frequency Build this branch on every push.
Sign Builds Habilite a opção.
Faça o upload do certificado de provisionamento ADHOC, criado anteriormente.
Faça o upload da chave privada, extensão .p12, criada anteriormente.
Informe a senha da chave privada que foi criada anteriormente no momento da exportação.

Agora que todos os parâmetros da build foram configurados, clique em “Save and build” para gerar a primeira versão da aplicação

Build iOS

Distribuição

A distribuição é um recurso no qual, através de um grupo, posso enviar minhas aplicações para testes, homologações ou quaisquer outras necessidades. É importante testar e coletar feedbacks de usuários antes de enviar nossas aplicações para as lojas de aplicativos.

Para criar um grupo de distribuição, acesse o menu “Distribute” de qualquer um dos aplicativos criados anteriormente.

No canto superior direito da página, clique no botão “New Group”. Em seguida, defina um nome – Homologação, por exemplo. Deixe a opção “Allow public access” desmarcada no momento. Ela habilita um link para download público da sua aplicação. Esse recurso é muito interessante em alguns casos.

No próximo campo, preencha o e-mail de algum amigo ou membro da equipe que irá efetuar a homologação da aplicação e pressione ENTER. Preencha quantos e-mails achar necessário e, em seguida, clique em “Create Group”.

Após a criação do grupo, os usuários dos e-mails que foram informados da criação do grupo receberão um invite para fazer parte do grupo da aplicação. Crie quantos grupos achar necessário.

Como em nenhuma das builds configuramos a distribuição automática, para gerar um release para um grupo de distribuição, acesse o menu “Build”, selecione a branch “develop” e em seguida uma build que foi executada com sucesso.

No canto superior direito da página, clique no botão “Distribute”, selecione o grupo para o qual deseja distribuir uma versão do seu aplicativo, clique em “Next”, informe uma nota de Release e em seguida clique em “Distribute Build”.

Todos os usuários que já aceitaram o invite do grupo de homologação receberão um e-mail informando sobre a nova versão da aplicação e um link para efetuar o download. Se desejar fazer algo mais automatizado, edite a build, habilite a opção “Distribute builds” e selecione o grupo de sua preferência. Assim, todas as vezes que uma build for bem sucedida, uma distribuição automática será gerada.

Custo

O App Center poderá ser usado gratuitamente, mas com algumas limitações. Se a sua demanda de desenvolvimento de aplicações é constante, talvez o interessante seria utilizar alguns dos planos disponíveis para possibilitar, por exemplo, builds concorrentes. Porém, mesmo na opção gratuita existem os seguintes benefícios:

  • 240 builds/mês
  • 30 dias de utilização da funcionalidade de teste na nuvem
  • Distribuições e usuários ilimitados
  • Todas as features de Analytics e Crash estão disponíveis

Os outros custos poderão ser conferidos no próprio site da plataforma.

O App Center, certamente, é uma ótima plataforma para centralizar várias necessidades que possuímos ao desenvolver nossas aplicações móveis. O processo de automatização de builds, apesar de muito simples de configurar, pode ser customizado totalmente através de scripts e outras funcionalidades.

Além disso, possuir uma plataforma de entrega de suas aplicações para avaliações, testá-la em vários dispositivos na nuvem e coletar informações importantes fazem do App Center uma plataforma indispensável para nós, desenvolvedores mobile. O mais interessante é que ela não está restrita apenas a tecnologias Microsoft. Então não tem desculpa para não utilizar.

Na documentação, que é ótima, existem muito mais informações sobre todas as ferramentas disponíveis e com exemplos.

Referências

***

Artigo publicado na revista iMasters, edição #25: https://issuu.com/imasters/docs/25