Integração e Entrega Contínua para aplicações móveis desenvolvidas em React Native Pedro José de Souza Neto Centro de Informática, Universidade federal de Pernambuco Recife, Pernambuco, Brasil pjsn@cin.ufpe.br Vinicius Cardoso Garcia Centro de Informática, Universidade federal de Pernambuco Recife, Pernambuco, Brasil vcg@cin.ufpe.br RESUMO Continuous integration and continuous delivery are not new for developers who create web applications, however in the develop- ment of mobile applications this practice is still not very common mainly because of the challenges during the process of distributing the application. In the face of the growing number of applications, a greater requirement for quality and ever-shorter delivery times, delivering a healthy code is often extremely important to keep up with the competition. The purpose of this work is to implement an integration and continuous delivery pipeline for mobile applicati- ons developed in React Native. It intends to automate the process of build and delivery of applications developed with this technology. CCS CONCEPTS · Software and its engineering Software evolution; Appli- cation specifc development environments. KEYWORDS pipeline, continuous integration, continuous delivery, react native, mobile application ACM Reference Format: Pedro José de Souza Neto and Vinicius Cardoso Garcia. 2018. Integração e Entrega Contínua para aplicações móveis desenvolvidas em React Native. In Trabalho de Conclusão de Curso (Graduação em Sistemas de Informação), Dezembro, 2018, Recife, PE. ACM, New York, NY, USA, 10 pages. 1 INTRODUÇÃO O crescente número de aplicações de software, uma exigência maior em relação a qualidade e com os prazos de entrega cada vez menores, acarretou em uma mudança que afetou o processo de desenvolvi- mento e a maneira que o software é entregue para o cliente. Diante desse cenário, vimos o surgimento de metodologias como DevOps [Ebert et al. 2016], que tem como base a prática de integração e entrega contínua no seu ciclo operacional com a fnalidade de au- mentar a capacidade de resposta às necessidades dos clientes por meio de lançamentos de software frequentes e automatizados [10]. Com a propagação dessas práticas supracitadas, muitas empresas de- senvolveram diversas soluções aplicando integração contínua [Paul Duvall and and Glover 2007; Zhao et al. 2017] e entrega contínua Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for proft or commercial advantage and that copies bear this notice and the full citation on the frst page. Copyrights for third-party components of this work must be honored. For all other uses, contact the owner/author(s). TCC BSI ’18, Dezembro, 2018, Recife, PE © 2018 Copyright held by the owner/author(s). [Chen 2017] para aplicações web, porém no mundo de aplicações móveis, a adoção dessas práticas ainda é pouco utilizada [Jacksman 2020; Klepper et al. 2015]. O objetivo deste trabalho é o estudo e a implementação de uma pipeline de integração e entrega contínua para aplicações móveis desenvolvidas em React Native [Facebook 2020] com fns de auto- matizar o processo de build e entrega destas aplicações tendo os seguintes objetivos específcos: Criação da pipeline da aplicação Estudo de ferramenta de integração e entrega contínua Estudo de ferramenta para testar aplicações React Native Implementação de uma aplicação em React Native e dos tes- tes baseados nos estudos para realizar as funções desejadas Para o desenvolvimento da pipeline, foram utilizadas as ferra- mentas Jenkins 1 , que é o principal servidor de automação open source que fornece centenas de plugins para apoiar os processos de build, implantação e automação para diversos tipos de projeto; Blue Ocean 2 , que repensa a experiência do usuário do Jenkins, reduz a desordem e aumenta a clareza para todos os membros da equipe; TestFairy 3 , que é uma plataforma de testes para aplicações móveis que fornece registros e relatórios de falhas além de ser um meio de centralizar a distribuição do aplicativo; e, fnalmente, o Slack 4 , que é uma canal de comunicação presente em quase todas as em- presas além de possuir ótimos meios de integração com as demais ferramentas utilizadas nesse trabalho. Esse documento está organizado como se segue: Seção 1 - In- trodução: Apresenta motivações e objetivos do estudo; Seção 2 - Conceitos básicos: Apresenta um contexto teórico e tecnológico para a compreensão dos capítulos seguintes; Seção 3 - Implemen- tação do aplicativo: Apresenta a escolha da tecnologia adotada, o desenvolvimento dos testes e do aplicativo; Seção 4 - A pipeline de integração e entrega contínua: Apresenta o passo a passo no processo de construção da pipeline; e, fnalmente, Seção 5 - Conclu- sões: Apresenta as conclusões obtidas durante o desenvolvimento do projeto, trabalhos futuros e limitações. 2 CONCEITOS BÁSICOS Nesta seção são apresentados e discutidos os conceitos básicos que fundamentam este trabalho. 1 https://www.jenkins.io/, último acesso em 29/03/2021 2 https://www.jenkins.io/projects/blueocean/, último acesso em 29/03/2021 3 https://www.testfairy.com/, último acesso em 29/03/2021 4 https://slack.com/, último acesso em 29/03/2021 arXiv:2103.16538v1 [cs.SE] 30 Mar 2021