Estamos sempre em busca de novas formas de pensar, agir e desenvolver nossas inovações aqui na Invillia. E isso inclui não parar de pesquisar ferramentas que possam melhorar nossa metodologia, processos e produtividade.
Conheça de perto o Global Growth Framework™️ {aka GGF}:
uma inteligência capaz de criar
2,3 vezes mais rápido qualquer software_
Na Invillia, toda quarta-feira, ao meio dia, paramos uma hora para nos nutrir com as dicas, how-tos, boas práticas e tendências selecionadas por nossos especialistas em Product, Agile, Back e Front, Mobile, Quality, Security e Data. Uma troca de experiências vital para quem adora o novo. E essencial para que a inovação nunca pare. Se a tecnologia está no sangue, a gente faz questão de deixá-la circulando cada vez mais_
NA VEIA_ Automatização para apps iOS
10 minutos de leitura
No artigo de hoje, compartilhamos os principais aprendizados da incrível edição sobre “Fastlane para iOS”, apresentada por Iury da Rocha Miguel – desenvolvedor iOS e nosso especialista no assunto.
Introdução
Na área de automatização para apps iOS, a ferramenta Fastlane é útil desde o desenvolvimento até a submissão do app na App Store, auxiliando os desenvolvedores iOS a economizarem tempo e esforço. Neste caso, a ferramenta está sendo utilizada no contexto da SumUp em conjunto com o GitHub Actions para CI/CD.
O que é o Fastlane?
Trata-se de uma ferramenta de automação de aplicativos que facilita atividades que normalmente seriam “tediosas” como, por exemplo, a geração de certificados (que serve como prova para a Apple que o desenvolvedor tem a permissão para criar as aplicações) e provisioning profiles (que garante que a aplicação desenvolvida possa ser executada no ecossistema sem comprometer a segurança do usuário final).
Normalmente, todo esse processo seria feito pointing-and-clicking no Apple Developer Portal em conjunto com a App Store Connect. No entanto, o Fastlane faz tudo de maneira automatizada, através de suas actions dedicadas, facilitando o trabalho, economizando tempo e deixando de enfrentar erros e problemas que seriam comumente encontrados caso todo o processo fosse feito de forma manual. O Fastlane cumpre seu papel através da interação com essas duas plataformas da Apple.
Além disso, é possível gerar builds para qualquer ambiente que se deseja (development, ad-hoc, enterprise ou app store) e enviá-las para o Testflight ou para qualquer outra plataforma como o App Center da Microsoft, onde pode-se ter acesso a essas builds e realizar testes.
Por fim, para a submissão e aprovação do app, o Fastlane oferece uma action para fazer o precheck do metadata do app, garantindo que o app está dentro dos conformes estabelecidos pela Apple, afim de evitar que a aplicação seja rejeitada no processo de submissão. Após isso, é possível gerar os screenshots, que são as imagens do app que vão ser exibidas na App Store. Existe um arquivo de configurações que é possível determinar os idiomas suportados, os devices a serem exibidos, legendas, etc. Após todo esse processo, finalmente, o app é entregue ao processo de submissão juntamente com todos esses assets, atráves de uma action conhecida como deliver.
Como posso usar o Fastlane para iOS?
Exemplos de como o Fastlane pode ser utilizado:
- Criação de novos app e registro destes no Apple Developer Portal e App Store Connect;
- Registros de devices na plataforma, para rodar a aplicação em determinados devices;
- Criação e gerência de certificados e provisioning profiles para os times de desenvolvimento, através de abordagens que conferem maior confiabilidade utilizando a action match;
- Build and packaging;
- Envio para Testflight e outras plataformas como o App Center da Microsoft;
- Snapshots/Frames;
- Submissão para App Store;
- Unit Testing, Linting e criação de lanes personalizadas – possibilidade de criação da documentação com base nos comentários do código e envio de notificações para o slack ou outras plataformas;
- Integração com plataformas de qualidade e cobertura de código como o Sonarqube.
- Integração com o Git.
- Existem inúmeros plugins criados pela comunidade e é possível que cada desenvolvedor crie seu próprio conjunto de ferramentas para auxilio no dia a dia.
Utilizando a action Produce, podemos criar apps via lanes em conjunto com arquivos de configuração como o Appfile, com todas as informações necessárias para criação de apps. Informações que normalmente teríamos que inserir manualmente nas plataformas da Apple.
É possível utilizar as actions tanto pelo terminal quanto através de lanes, que são funções escritas em Ruby que vão realizar determinada tarefa. É importante destacar que nem todas actions rodam via terminal, mas apenas em lanes. Isto porque, para que seu funcionamento faça sentido, é preciso que esteja em conjunto com outras actions, e isso só é possível através dessas funções. Existe também o Gemfile que é um arquivo com todas as dependências necessárias e é excelente para manter o sistema todo com a mesma versão, evitando problemas.
É possível escrever lógica dentro das lanes e customizar suas ferramentas através da linguagem Ruby. Inclusive, é possível criar lanes privadas, que só podem ser usadas dentro de outras lanes, apenas.
Exemplos de arquivos de configuração:
- Appfile
- Gemfile (configuração das dependências)
- Matchfile (específico para criação e gerência de certificados e provisioning profiles)
- Gymfile (quando se deseja criar builds da sua aplicação)
- Entre outros.
Recomendação do curso “Kodeco”
Anteriormente conhecido como raywenderlich.com, a plataforma Kodeco oferece um curso sobre Fastlane para iOS e como utilizar a ferramenta desde o desenvolvimento até a submissão do app na loja. Todo o texto acima foi baseado no conteúdo do curso. O instrutor do curso vai realizando na prática toda a configuração necessária do fluxo que vai desde geração de certificados e profiles até a submissão do app.
A documentação do Fastlane é muito boa com opção para iOS, Android e outras plataformas como o Flutter. Na seção das actions, cada action está bem detalhada com o seu funcionamento descrito e quais parâmetros são necessários para seu funcionamento.
No contexto do parceiro SumUp, o time trabalha com vários pods, sendo que o projeto principal possui vários desses pods, que são módulos menores com funções especificas. Ou seja, para gerar versões desses módulos e atualizar no módulo principal, o Fastlane executa automaticamente actions que já faz todo o bump das novas versões. Assim, basta clicar em um botão na opção do workflow do GitHub Actions que essas lanes do Fastlane são chamadas e executam tudo o que seria feito manualmente.
Fontes: